EmonHUB (EmonBase) slouží jako komunikační rozhraní. Arduino Nano v EmonHUBu řídí komunikaci jednotlivých zařízení (nodu) na sběrnici RS485 a vydává požadavky jednotlivým zařízením na data.
Přijata data zpracuje, vybrané údaje zobrazí na připojeném LCD a přes RS komunikaci odešle do Raspberry Pi, které data upraví a odešle na server EmonCMS kde jsou data archivována zpracována a zobrazena do grafů. V Raspberry Pi je na SD kartě nahrána a nakonfigurovaná aplikace EmonSD. Návod jak zprovoznit odesílání dat na EmonCMS jsem vytvořil zde.
Arduino v EmonHUB komunikuje po RS485 s monitorovací jednotkou kotle, EmonTx což je jednotka pro sledování aktuální spotřebu elektrické energie domu a měničem fotovoltaického ohřevu bojleru. V Raspberry Pi se musí upravit konfigurační soubor emonhub.conf v sekci Nodes kde musí být uvedeno číslo nodu a přesná struktura dat, která jsou připravena Arduinem a v sekci Reporters adresa serveru Emoncms a API Key přidělený při registraci na serveru. Pro zasílaní dat přes seriový port Arduina je potřeba změnit úroveň napětí z 5V na 3,3V vstup Raspberry Pi. Pro zobrazení vypraných hodnot je použitý 2×16 znakový LCD s přidaným převodníkem I2C a přepínaní hodnot na LCD pomocí tlačítka.
Původně jsem napájení 5V= celého EmonHUBu a Raspberry Pi řešil z vestavěného stabilizátoru v Arduinu, ale ten se hodně přehříval, tak jsem raději zvolil externí modul se spínaným stabilizátorem.
Download:
emonHub_rs485_v4.ino
Pingback: Monitorovací jednotka automatického kotle | TN Web
Pingback: Fotovoltaický MPPT měnič pro bojler | TN Web
Pingback: Zasílaní dat na server EmonCMS přes Raspberry Pi | TN Web
Pingback: Odesílání dat na server EmonCMS přes Raspberry Pi | TN Web
Dobrý den,
chtěl bych se zeptat jak bych měl upravit kód abych byl schopen „přenášet“ desetinou čárku a dvě místa za ní. Využívám část Vašeho kódu pro dálkový odečet proudu.
Děkuji
Nevím jestli knihovna EasyTransfer umí přenášet i float, už jsem s tím dlouho nedělal, musel byste vyzkoušet.
Jinak bych to řešil vynásobením požadovaného čísla 100 přenesení a pak vydělení 100.