#include <HX711.h>
#include <TinyDebug.h>
#include <IRremote.h>
#include <MySQL_Connection.h>
#include <Ethernet.h>
#define LED_PIN 3
#define RECEIVER_PIN 4
#define DATA_PIN 5
#define CLOCK_PIN 6
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(127,0,0,1); // IP of the MySQL *server* here
IPAddress ethernet_addr(192,168,0,109);
char user[] = "root"; // MySQL user login username
char password[] = "secret"; // MySQL user login password
EthernetClient client;
MySQL_Connection conn((Client *)&client);
IRrecv receiver(RECEIVER_PIN);
HX711 hx711;
volatile float units;
float gate = 20.0;
int Hz = 433;
void setup() {
receiver.enableIRIn();
Serial.begin(9600);
while (!Serial); // Ждем пока serial port будет подключен
Ethernet.begin(mac_addr, ethernet_addr);
hx711.begin(DATA_PIN, CLOCK_PIN);
hx711.tare();
}
void loop() {
hx711.set_scale(420.0983);
if(receiver.decode()){
switch (receiver.decodedIRData.command) {
case 2:
gate = gate + 1;
break;
case 152:
gate = gate + 1;
break;
case 48:
Hz = 433;
break;
case 24:
Hz = 868;
break;
case 122:
Hz = 2400;
break;
default:
break;
}
receiver.resume();
}
output();
}
void output(){
units = hx711.get_units();
Serial.print(Hz);
Serial.print(" Hz / ");
Serial.print(units);
Serial.println(" kg");
if(units > gate){
Serial.println("ALARM!");
digitalWrite(LED_PIN, HIGH);
delay(200);
digitalWrite(LED_PIN, LOW);
delay(200);
}
}