Odesílání dat na server EmonCMS přes Raspberry Pi

CMS3Napsal jsem tento návod (také pro sebe), protože při zprovozňování této verze jsem se dost potrápil. Největší potíž byla zjistit jak nově správně nastavit údaje v konfiguračním souboru emonhub.conf. Používám nově verzi low-write 8.5, která je určena pro lokální EmonCMS server běžící na Rasberry Pi s SD kartou, na který je také možné logovat data.
Funguje to tak, že Arduno (u mě EmonHUB) posílá data ve formátu JeeLib paketů přes sériový port do Raspberry Pi, na kterém běží lokální verze EmonCMS, který data zpracuje a podle nastavení odešle na internetový EmonCMS nebo uloží v lokálním EmonCMS nebo provede obojí.

Schéma zapojení

ECtest

Postup zprovoznění:

Stáhnout image pro SD kartu : emonSD-17June2015-updateconf.img
Nahrát image na SD kartu vhodným programem pro vytvoření boot SD karty, já používám program Rufus.
Kartu vložit do Raspberry a to připojit síťovým kabelem k domácí síti a připojit napájení.
Zjistit lokální IP adresu Raspberry. Buď programem Advanced IP Scanner.

ip-scaner

Nebo se přihlásit se do domácího Wifi AP routeru a v sekci DHCP Clients List zjistit IP adresu. U mého AP to vypadá takto:

DHCP client list

Lepší je v nastavení IP reservation nastavit IP adresu trvale stejnou.

DHCP addr reserv

Restartovat AP router.
Do prohlížeče zadat zjištěnou adresu Raspberry např. 192.168.14.110.
Zobrazí se přihlašovací okno, zde si vytvořit účet pro přístup do lokální verze EmonCMS.
Po přihlášení se přepnout na záložku EmonHub a upravit v okně editoru konfigurační soubor emonhub.conf.

EmonHub editor

Příklad:
z Arduina posílám po sériovém portu do Raspberry data ze tři nodů (zařízení)

Elektřina
nod:10
int power1
int power2
int power3
int powerAll
int Vrms
int tarif

Kotel
nod:11
int TempKotel
int TempOut
int TempBojler
boolean PodStav
boolean VentStav
boolean TermStav
boolean CerpUTStav
boolean CerpTUVStav
unsigned long PodM
unsigned long VentM

Fotovoltaika
nod:12
int napeti
int proud
int vykon
unsigned long vyroba

Úprava souboru emonhub.conf:
Editovat v sekci [[RFM2Pi]] položku com_baud = 38400 a nastavit na stejnou rychlost sériového portu jako v Arduinu, tedy 9600.

Editovat v sekci [nodes] formát dat jednotlivých použitých nodů, tedy 10, 11 a 12
a nahradit je tímto:

[[10]]
 nodename = Elektrina # nazev nodu
 firmware = ""
 hardware = ""
 [[[rx]]]
 names = power1, power2, power3, powerAll, Vrms, tarif # nazvy dat
 datacodes = h,h,h,h,h,h # format dat z Arduina
 scales = 1,1,1,1,1,1 # moznost zmeny nasobku
 units = W,W,W,W,V,stav #jednotky dat
[[11]]
 nodename = Kotel
 firmware = ""
 hardware = ""
 [[[rx]]]
 names = TempKotel, TempOut, TempBojler, PodStav, VentStav, TermStav, CerpUTStav, CerpTUVStav, PodM, VentM
 datacodes = h,h,h,?,?,?,?,?,L,L
 scales = 1,1,1,1,1,1,1,1,1,1
 units = C,C,C,stav,stav,stav,stav,stav,min,min
[[12]]
 nodename = Fotovoltaika
 firmware = ""
 hardware = ""
 [[[rx]]]
 names = napeti, proud, vykon, vyroba
 datacodes = h,h,h,L
 scales = 1,1,1,1
 units = V,A,W,Wh

Položka datacodes určuje formát zasílaných dat a musí se shodovat s tím, co je posíláno z Arduina.
h – int
H – unsigned int
l – long
L – unsigned long
? – boolean
f – float

Pokud chceme data odesílat na internetový server EmonCMS vytvoříme si podobně účet na emoncms.org a pak z nastavení účtu Setup – My Account zkopírujeme přidělený Write API Key a ten zkopírujeme v sekci [[emoncmsorg]] do položky apikey = xxxxxxxxxxxxxxxxxxx

Změny uložit tlačítkem Save a Raspberry restartovat.

Přepnutím na záložku Nodes, bychom měli začít vidět přicházející data.

Nodes
Pokud si nejsme jistí, jestli nám vůbec, případně jaká data chodí do Raspberry, je možné si toto ověřit přes konzoli.
Stáhneme si telnet klienta PuTTy, program se neinstaluje, jen se spustí. Do políčka „Host Name ( or IP address)“ zadáme IP adresu Raspberry ostatní nastavení necháme původní a stiskneme tlačítko Open. Otevře se nám okno konzole, kde se přihlásíme:
Login: pi; Password: raspberry
Spustíme monitor sériového portu příkazem:

 sudo minicom –b9600 –D/dev/ttyAMA0

Nyní bychom měli vidět data, která přicházejí po sériovém portu z Arduina.

minicom

Jednotlivé data můžeme na lokálním serveru uložit do Feedu a pak si vytvořit v záložce Dashboard jednotlivé stránky kde se budou data zobrazovat jako čísla ukazatele nebo v grafech.

Feed save

Data by se nám měla objevit za chvíli i v záložce Setup – Inputs na internetovém EmonCMS serveru kde je rovněž můžeme uložit do Feedu a zpracovat jejich zobrazení.

Inputs CMS

Když chceme provozovat raspberry přes Wifi stačí do jedno z USB slotů zapojit externí wifi modul.
Modul je potřeba vybrat podle kompatibility na http://elinux.org/RPi_USB_Wi-Fi_Adapters , já mám externí Wifi modul LB-LINK s anténou a chipsetem Realtek RTL8188CUS koupenou na eBay za asi 11$, funguje perfektně.

Modul LB-LINK
Po zapojení modulu, Raspberry restartovat a přihlásit se do lokálního EmonCMS. Pak v záložce Wifi stisknout Scan a do nalezené vlastní sítě zadat heslo, stisknout tlačítko Connect a pak Refresh.
IP adresa, přes kterou je nyní přístupný server přes Wifi je zobrazen dole vlevo na stránce.

Wifi setting

Doporučuji rovněž nastavit rezervovanou IP adresu v Wifi AP routeru. Pak již můžeme síťový kabel odpojit a přistupovat na server přes Wifi.

Download:
testovací program pro Arduino
emonHub_test.ino

Příspěvek byl publikován v rubrice Arduino, Elektronika, Nezařazené se štítky , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

2 komentáře u Odesílání dat na server EmonCMS přes Raspberry Pi

  1. Pingback: EmonHUB RS485 | TN Web

  2. Ivan Fluder napsal:

    Odkaz na stažení image pro SD kartu : emonSD-17June2015-updateconf.img neplatí pro Raspberry Pi verze 3. Je zapotřebí stáhnout novější verzi image: http://files.openenergymonitor.org/emonSD-26Oct17.img.zip.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *