Mam jedno arduino ktore meria napatia zdroja a zalozneho zdroja, a posiela to do DB
Inspiroval som sa https://www.tweaking4all.com/hardware/a ... data-push/
Stacilo by mi ak data posle raz za minutu ale nefunguje to
Ked skratim interval napr na 10s na posielanie funguje to
Akosi nejde mi to dohlavy preco.
Kód: Vybrat vše
#include <UIPEthernet.h> //ENC28J60
#define Z12 A0
#define B12 A1
#define Z5 A2
#define B5 A3
//hodnoty napati
float b12;
float z12;
float b5;
float z5;
float analog_value;
//hodnoty pouzitych rezistorov
float R1 = 20000.0;
float R2 = 10000.0;
float R3 = 1000.0;
float R4 = 4700.0;
unsigned long last_record;
boolean napajanie;
//ENC28j60
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0x01 };
EthernetClient client;
char server[] = "192.168.0.10";
void setup()
{
Serial.begin(9600);
msgs(1,"**********************************");
msgs(1,"Akcia: Nastavujem vstupne porty");
pinMode(B12, INPUT);
pinMode(B5, INPUT);
pinMode(Z12, INPUT);
pinMode(Z5, INPUT);
msgs(1,"Akcia: Inicializujem ethernetovy modul");
// start Ethernet and UDP
Ethernet.begin(mac);
if (Ethernet.begin(mac) == 0)
{
msgs(1,"Modul sa nepodarilo nakonfigurovat, nedostal IP");
for(;;);
}
msgs(0,"Pridelena IP Addresa: ");
Serial.println(Ethernet.localIP());
msgs(1,"**********************************");
last_record = millis();
}
void loop()
{
nacitanie_napati();
if (millis()-last_record > 10000)
{
posli_data();
last_record = millis();
}
}
void nacitanie_napati()
{
//zistenie napatia zdroja
analog_value = analogRead(Z12);
z12 = (analog_value*5.0/1024.0)/(R2/(R1+R2));
analog_value = analogRead(Z5);
z5 = (analog_value*5.0/1024.0)/(R4/(R3+R4));
//zistenie napatia baterie
analog_value = analogRead(B12);
b12 = (analog_value*5.0/1024.0)/(R2/(R1+R2));
analog_value = analogRead(B5);
b5 = (analog_value*5.0/1024.0)/(R4/(R3+R4));
}
void vypis()
{
msgs(0,"Napatie zdroja: ");
msgs(0,String(z12));
msgs(0,"V/");
msgs(0,String(z5));
msgs(1,"V");
msgs(0,"Napatie baterie: ");
msgs(0,String(b12));
msgs(0,"V/");
msgs(0,String(b5));
msgs(1,"V");
}
void posli_data()
{
if (client.connect(server, 80))
{
// Make a HTTP request:
client.print( "GET /monitoring/monitoring_power.php?");
client.print("z12=");
client.print(z12);
client.print("&&");
client.print("z5=");
client.print(z5);
client.print("&&");
client.print("b12=");
client.print(b12);
client.print("&&");
client.print("b5=");
client.print(b5);
client.println( " HTTP/1.1");
client.print( "Host: " );
client.println(server);
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
}
else msgs(1,"SPOJENIE NEUSPESNE");
last_record = millis();
vypis();
}
void msgs(boolean type, String msg)
{
if(type == 0) Serial.print(msg);
if(type == 1) Serial.println(msg);
}