Arduino monitoring pre smartphony
Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
-
- Příspěvky: 489
- Registrován: stř říj 10, 2012 6:11 pm
- Bydliště: Bratislava
Arduino monitoring pre smartphony
Ahojte,
tymto sa pridavam k bastlicom v Arduine a s radostou vam ponukam svoje minidielko. Umožňuje zobrazovať v smartphone aktualne napatie baterii a zaznamenane minimalne a maximalne napatie v ramci dna, aj s uvedenim casu. Cas sa natiahne z NTP servera pri starte arduina. Realizacia celeho riesenia vyzera v telefone takto:
![Obrázek](https://lh6.googleusercontent.com/-8ZCEvmZWsq0/UcNMeOSKOLI/AAAAAAACES0/BZihhcS6Y_8/s640/Screenshot_2013-06-20-20-32-06.jpg)
Samotna Android appka, ktora zabezpecuje zobrazenie HTML arduinom generovanej stranky v automaticky refreshovanom widgete sa da stiahnut tu:
https://play.google.com/store/apps/deta ... S53ZzAxIl0.
Tu je arduino kod:
V kode je na prepocet hodnot z A/D prevodnika pouzita konstanta 0.03193172626682720, bude potrebne si ju upravit v zavislosti od konfiguracie vasho napatoveho delica. Napatie mi prepocitava bud presne na desatinu volta, pripadne o jednu desatinu volta viac (len preto, ze som nemal presny multimeter pri vypocte konstanty). S kodom si samozrejme robte, co len chcete, za pripadne skody samozrejme nerucim. ![Smile :)](./images/smilies/icon_e_smile.gif)
A treba mat samozrejme od internet providera verejnu IP a know-how, ako si ju preroutovat na IP arduina. Komu sa casto meni verejna IP, moze si zriadit ucet na no-ip.com a pristupovat k arduinu cez domenovy nazov, napriklad (nejakynazov.no-ip.info).
Este fotka nasho hi-tech satnika:
![Obrázek](https://lh6.googleusercontent.com/-kXEYjVafErE/UcNMcugYS0I/AAAAAAACESs/FGpJ69mY1LU/s640/DSC01476.JPG)
Zlava hore doprava dole:
Skatulka, v ktorej je skryte Arduino. Ma vetracie otvory, vobec sa neprehrieva. Hrubsi cierny kabel v sebe skryva napatovy delic;
PWM regulator;
Hasiaci pristroj;![Smile :)](./images/smilies/icon_e_smile.gif)
Mechanicky prepinac siete;
Elektromer solarneho okruhu;
Zasuvka "silna" - vzdy je v nej prud z verejnej siete;
Zasuvka prepinana - bud prepnuta verejna siet, alebo solarna;
Napajanie arduina;
WiFi repeater - don je kablom pripojene Arduino.
tymto sa pridavam k bastlicom v Arduine a s radostou vam ponukam svoje minidielko. Umožňuje zobrazovať v smartphone aktualne napatie baterii a zaznamenane minimalne a maximalne napatie v ramci dna, aj s uvedenim casu. Cas sa natiahne z NTP servera pri starte arduina. Realizacia celeho riesenia vyzera v telefone takto:
![Obrázek](https://lh6.googleusercontent.com/-8ZCEvmZWsq0/UcNMeOSKOLI/AAAAAAACES0/BZihhcS6Y_8/s640/Screenshot_2013-06-20-20-32-06.jpg)
Samotna Android appka, ktora zabezpecuje zobrazenie HTML arduinom generovanej stranky v automaticky refreshovanom widgete sa da stiahnut tu:
https://play.google.com/store/apps/deta ... S53ZzAxIl0.
Tu je arduino kod:
Kód: Vybrat vše
#include <Time.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
//TCP/IP konfiguracia
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,2,177);
EthernetServer server(80);
EthernetClient client02;
// NTP konfiguracia
IPAddress timeServer(132, 163, 4, 101); // time-a.timefreq.bldrdoc.gov
const int timeZone = 2;
EthernetUDP Udp;
unsigned int localPort = 8888; // local port to listen for UDP packets
const int NTP_PACKET_SIZE = 48; // NTP time is in the first 48 bytes of message
byte packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming & outgoing packets
// Premenne widgetu
float maximum = 0;
int max_hod;
int max_min;
float minimum = 100;
int min_hod;
int min_min;
int den = 0;
float napatie;
// Setup
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Udp.begin(localPort);
setSyncProvider(getNtpTime);
}
//A rob dokola
void loop() {
EthernetClient client = server.available();
if (client) {
// Serial.println("Novy klient");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("</head>");
client.println("<body style='background-color:#FFEBD7;'>");
int scitavane = 0;
for (int a = 1; a<=20; a++) {
int sensorReading = analogRead(3);
delay(100);
scitavane = scitavane + sensorReading;
}
client.print("<div><span style='font:100px arial,sans-serif;'>");
float napatie = (float)(round((((float)scitavane/(float)20)) * (float)0.03193172626682720 * (float)10)/(float)10);
client.println((float)napatie,1);
client.println("V</span>");
// Ak je aktualne cislo mensie ako minimum, updatni minimum
if ((float)napatie < (float)minimum) {
minimum = (float)napatie;
min_hod = (int)hour();
min_min = (int)minute();
Serial.print("Preniesol som nacitane: ");
Serial.println(min_min);
}
// Ak je aktualne cislo vacsie ako maximum, updatni maximum
if ((float)napatie > (float)maximum) {
maximum = (float)napatie;
max_hod = (int)hour();
max_min = (int)minute();
}
client.print("<br>");
client.print("<span style='font:16px arial,sans-serif; width:200px;padding-left:10px;'>");
client.println("Min: <b>");
client.print(minimum,1); client.print("V</b> ");
client.print((min_hod));client.print(":");
if (min_min < 10) {client.print("0");}
client.print((min_min));
client.print("; ");
client.println("Max: <b>");
client.print(maximum,1);client.print("V</b> ");
client.print(max_hod);client.print(":");
if (max_min < 10) {client.print("0");}
client.print(max_min);
client.println("</span></div>");
// Ak sa zmenilo cislo dna, nuluj
if ((int)den != (int)day()) {
minimum = 100;
maximum = 0;
den = (int)day();
}
client.println("</body>");
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
// Dajme browseru trochu casu
delay(1);
client.stop();
// Serial.println("client disonnected");
}
}
time_t getNtpTime()
{
while (Udp.parsePacket() > 0) ; // discard any previously received packets
Serial.println("Transmit NTP Request");
sendNTPpacket(timeServer);
uint32_t beginWait = millis();
while (millis() - beginWait < 1500) {
int size = Udp.parsePacket();
if (size >= NTP_PACKET_SIZE) {
Serial.println("Receive NTP Response");
Udp.read(packetBuffer, NTP_PACKET_SIZE); // read packet into the buffer
unsigned long secsSince1900;
// convert four bytes starting at location 40 to a long integer
secsSince1900 = (unsigned long)packetBuffer[40] << 24;
secsSince1900 |= (unsigned long)packetBuffer[41] << 16;
secsSince1900 |= (unsigned long)packetBuffer[42] << 8;
secsSince1900 |= (unsigned long)packetBuffer[43];
return secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR;
}
}
Serial.println("No NTP Response :-(");
return 0; // return 0 if unable to get the time
}
// send an NTP request to the time server at the given address
void sendNTPpacket(IPAddress &address)
{
// set all bytes in the buffer to 0
memset(packetBuffer, 0, NTP_PACKET_SIZE);
// Initialize values needed to form NTP request
// (see URL above for details on the packets)
packetBuffer[0] = 0b11100011; // LI, Version, Mode
packetBuffer[1] = 0; // Stratum, or type of clock
packetBuffer[2] = 6; // Polling Interval
packetBuffer[3] = 0xEC; // Peer Clock Precision
// 8 bytes of zero for Root Delay & Root Dispersion
packetBuffer[12] = 49;
packetBuffer[13] = 0x4E;
packetBuffer[14] = 49;
packetBuffer[15] = 52;
// all NTP fields have been given values, now
// you can send a packet requesting a timestamp:
Udp.beginPacket(address, 123); //NTP requests are to port 123
Udp.write(packetBuffer, NTP_PACKET_SIZE);
Udp.endPacket();
}
![Smile :)](./images/smilies/icon_e_smile.gif)
A treba mat samozrejme od internet providera verejnu IP a know-how, ako si ju preroutovat na IP arduina. Komu sa casto meni verejna IP, moze si zriadit ucet na no-ip.com a pristupovat k arduinu cez domenovy nazov, napriklad (nejakynazov.no-ip.info).
Este fotka nasho hi-tech satnika:
Zlava hore doprava dole:
Skatulka, v ktorej je skryte Arduino. Ma vetracie otvory, vobec sa neprehrieva. Hrubsi cierny kabel v sebe skryva napatovy delic;
PWM regulator;
Hasiaci pristroj;
![Smile :)](./images/smilies/icon_e_smile.gif)
Mechanicky prepinac siete;
Elektromer solarneho okruhu;
Zasuvka "silna" - vzdy je v nej prud z verejnej siete;
Zasuvka prepinana - bud prepnuta verejna siet, alebo solarna;
Napajanie arduina;
WiFi repeater - don je kablom pripojene Arduino.
1900 Wp, LiFePo 8x200Ah + 123\SmartBMS, Tristar MPPT 60A, Meanwell 1 kW, PowerJack 5kW, Bratislava
Monitoring systému: https://panel.homeinfo.sk/?id_objekt=15 ... elektraren
(Ne)návratnosť systému: https://tinyurl.com/cx74hkv
Zdieľaná databáza meničov: https://tinyurl.com/mx6gvsj
Monitoring systému: https://panel.homeinfo.sk/?id_objekt=15 ... elektraren
(Ne)návratnosť systému: https://tinyurl.com/cx74hkv
Zdieľaná databáza meničov: https://tinyurl.com/mx6gvsj
-
- Příspěvky: 3142
- Registrován: ned led 29, 2012 3:59 pm
- Lokalita: Žabčice
- Systémové napětí: 48V
- Výkon panelů [Wp]: 29139
- Kapacita baterie [kWh]: 12
- Chci prodávat energii: ANO
- Chci/Mám dotaci: NE
Re: Arduino monitoring pre smartphony
Tak toto je naprosto fenomenalni....
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Arduino monitoring pre smartphony
Vynikajúce. Vidím v tom využitie a uplatnenie keď sa raz pustím do urobenia akejsi stanice o informácii o mojej FVE. Kde sa budú zobrazovať data na displej, mobile, a možno aj na webe. Dúfam to bude čoskoro. Teraz riešim bezdrátový prenos pomocou 433mhz a arduina mini. Len akosi keď to zavriem v rozvádzači tak signál je fuč. Jedno arduino mega bude akási ústredňa a arduino mini pro(tých bude asi aj viac) bude odosielať na megu.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 544
- Registrován: stř led 02, 2013 4:28 pm
Re: Arduino monitoring pre smartphony
Vypadá to tak, že "Faradayova klec" a tím i fyzikální zákony, vskutku fungují.007ToMMaS píše: Len akosi keď to zavriem v rozvádzači tak signál je fuč
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Arduino monitoring pre smartphony
Tak tak. Čo človek zavre do plechového rozvádzača a potrebuje to signál tak je to nereálne. Problém vyviesť nejakú anténku von neni problém .
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 3142
- Registrován: ned led 29, 2012 3:59 pm
- Lokalita: Žabčice
- Systémové napětí: 48V
- Výkon panelů [Wp]: 29139
- Kapacita baterie [kWh]: 12
- Chci prodávat energii: ANO
- Chci/Mám dotaci: NE
Re: Arduino monitoring pre smartphony
Zdravim.
Nevite nekdo kde by sly stahnout ty soubory time.h a ethernetudp.h ? Nejak se mi nedari najit funkcni download ....
Nevite nekdo kde by sly stahnout ty soubory time.h a ethernetudp.h ? Nejak se mi nedari najit funkcni download ....
-
- Příspěvky: 820
- Registrován: pon led 21, 2013 6:36 pm
- Lokalita: Doubravička
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8700
- Kapacita baterie [kWh]: 25
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Doubravička
Re: Arduino monitoring pre smartphony
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
http://95.85.214.80, viewtopic.php?t=4809
-
- Příspěvky: 3142
- Registrován: ned led 29, 2012 3:59 pm
- Lokalita: Žabčice
- Systémové napětí: 48V
- Výkon panelů [Wp]: 29139
- Kapacita baterie [kWh]: 12
- Chci prodávat energii: ANO
- Chci/Mám dotaci: NE
-
- Příspěvky: 3142
- Registrován: ned led 29, 2012 3:59 pm
- Lokalita: Žabčice
- Systémové napětí: 48V
- Výkon panelů [Wp]: 29139
- Kapacita baterie [kWh]: 12
- Chci prodávat energii: ANO
- Chci/Mám dotaci: NE
Re: Arduino monitoring pre smartphony
Zkousel to nekdo? funguje vam to nastaveni casu?
me to porad pise toto
Transmit NTP Request
No NTP Response![Sad :-(](./images/smilies/icon_e_sad.gif)
me to porad pise toto
Transmit NTP Request
No NTP Response
![Sad :-(](./images/smilies/icon_e_sad.gif)
-
- Příspěvky: 123
- Registrován: pát dub 29, 2022 9:35 am
- Lokalita: Kadaň
- Systémové napětí: 48V
- Výkon panelů [Wp]: 1680
Re: Arduino monitoring pre smartphony
Pokud někdo používá "Mobilní internet" LTE od operátorů a funguje mu to, at mi rekne jak na to. Mě to u Vodafonu nefungujeixo píše: Komu sa casto meni verejna IP, moze si zriadit ucet na no-ip.com a pristupovat k arduinu cez domenovy nazov, napriklad (nejakynazov.no-ip.info).
![Smile :-)](./images/smilies/icon_e_smile.gif)
6x 280 Wp AmeriSolar| Axpert King I 5000-48V | 4x Sonnenschein SRP 12V 175 A RAIL
-
- Příspěvky: 655
- Registrován: pon lis 08, 2021 9:10 pm
- Lokalita: Posázaví
- Systémové napětí: 48V
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Posázaví
Re: Arduino monitoring pre smartphony
Na to bys potřeboval veřejnou IP nebo vlastní VPN. Teď jsi za NAT operátora, což je na druhou stranu i trochu výhoda v bezpečnosti.
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 16 Odpovědi
- 888 Zobrazení
-
Poslední příspěvek od TomHC
-
- 1 Odpovědi
- 796 Zobrazení
-
Poslední příspěvek od glottis
-
- 327 Odpovědi
- 21840 Zobrazení
-
Poslední příspěvek od NOPARasito
-
- 1 Odpovědi
- 674 Zobrazení
-
Poslední příspěvek od smartyn34
-
- 3 Odpovědi
- 728 Zobrazení
-
Poslední příspěvek od kodl69