Buggfix Plus
Aktuellt datum och tid: 17.19 2019-09-22

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 2 inlägg ] 
Författare Meddelande
InläggPostat: 23.40 2019-03-16 
Användarvisningsbild

Blev medlem: 17.51 2007-12-13
Inlägg: 648
Ort: Stockholm
Ett bidrag till Arduino-tävligen 2019

Jag börjar med resultatet,

Bilaga:
Screenshot 2019-03-16 at 23.36.19.png

Bilaga:
IMG_0321.jpg

Levande data, http://213.65.212.32:8080/dashboard/snapshot/hRwed0GoC4jZSgjxIeDF9utYKepw43mj


Mitt projekt möjliggör alltså loggning av alla parametrar i en Nibe Fighter 1235 och troligen alla andra modeller som Nibes tillbehör RCU passar till.
Incitamentet för projektet kan man läsa här, https://elektronikforumet.com/forum/viewtopic.php?t=94118

Principen är att en Arduino agerar RCU och skickar vidare insamlade parametrar till en MQTT-broker.
Bilaga:
Screenshot 2019-03-24 at 18.10.25.png


Hårdvara
RJ45 Nätverkskabel
RS485 till RS232-modul (https://www.sparkfun.com/products/10124) som även finns att hitta på eBay.
Bilaga:
Screenshot 2019-03-11 at 20.32.02.png

ESP-01 (Går lika bra andra ESP8266-moduler)
Bilaga:
esp8266-esp-01-remote-serial-port-wifi-transceiver-500x500.jpg

Raspberry Pi Zero W (eller någon annan passande linuxplattform)

Mjukvara
MQTT-server (jag använder mosquitto, https://mosquitto.org/)
InfluxDB (databasen där jag sparar all data, https://www.influxdata.com/)
Grafana (Läser data från InfluxDB och presenterar fina grafer, https://grafana.com/)

Koden jag skrivit är implementerad i C i Arduino IDE. Jag har även lite kod skriven i python (glue_script/mqttToInfluxdb.py) för att få in mqtt-topics till influxdb. All kod finns här, https://bitbucket.org/foogadgets/bvptograf

ESP-01 agerar alltså som om den vore en Nibe RCU, och ACKar så fort RCUn adresseras. För att Styrkortet ska adressera RCUn behöver man aktivera detta i menyn 9.2.15. När ESPn ACKat skickar Styrkortet några få antal parametrar. ACKar man igen så skickar den fler parametrar osv. tills alla 97 parametrar är skickade. Sedan växlar styrkortet och “pratar” med andra adressater en stund, för att sedan återkomma till RCU:n igen.
Parameterlistan skickas väldigt ofta, och för att minska Wifi-trafiken skriver jag ner alla parametrar i en array, och skickar det som finns i arrayen med lite längre mellanrum. Just nu ungefär en gång var 30:e sekund.

Parametrarna skickas till en MQTT-broker. Det är första gången jag använder MQTT, och det är en mycket lättviktig och smidig lösning för att dirigera data.
En mqtt-broker har ingen databas utan är bara en förmedlare av data. För att kontinuerligt lagra data så har jag skrivit ett python-script där jag prenumererar på de parametrar jag är intresserad av att logga, och som skickas vidare till en Influx-databas. Att jag valde InfluxDB var för att jag gillade Grafana som i sin tur var lätt att integrera med InfluxDB.

Arduino-koden implementerar en öppen UDP-port (9898) där jag lyssnar efter inkommande paket med parametrar som ska sättas. Detta har jag än så länge inte fått att fungera. Tycker mig ha gjort enligt det som finns beskrivet på nätet och i SEF-tråden här i forumet, men jag får inte det svar jag förväntar mig från Styrkortet. Detta skulle kunna vara så enkelt som att 3,3V-nivån på modulkortet inte räcker till för att kommunicera med Styrkortet. Dock verkar det ju fungera att skicka ACK:ar så jag behöver titta lite närmare på detta.

Elektrisk beskrivning
Busenkelt. RJ45-porten på Nibe innehåller förutom RS485-signaler, även GND, 5V och 12V.
För att kunna koppla signalerna från Niben till ESPn behöver den differentiella signalen omvandlas till RS232 (0V-3,3V) då ESP-01 bara klarar 3,3V på GPIO-portar.
Eftersom Arduino-klonen ESP-01 inte har en spänningsstabilisator som omvandlar 5V till 3,3V så har jag använt en LM1117-3.3.
För att omvandla utsignalen från RS485-modulen använder jag en resistor och en Zenerdiod. På så sätt blir spänningsnivån in till ESP-01 aldrig över 3,3V.
Bilaga:
Screenshot 2019-03-24 at 18.09.59.png


Det man behöver se upp med är så klart att man inte kortsluter någon av de ingående stiften i RJ45-kontakten och att polariteten på RS485 är rätt.

Konfigurering och installation
Konfigurera först rätt ip-adress, SSID, lösenord etc i Arduino-koden. Kompilera och ladda ner på ESPn-kortet.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
const char* mqttServer = "192.168.1.3";   // Insert MQTT server IP
const int mqttPort = 1883;
const char* mqtt_user = "mqtt";            // MQTT user
const char* mqtt_pass = "mqtt";            // MQTT password
const char* mqtt_client_name = "Nibe1235";
const char* wifi_SSID = "SSID";
const char* wifi_PASSWD = "PASS";


Installera Raspbian på din Raspberry Pi Zero W om du tänker använda en sån som server. Det är en sån jag kör och den klarar enkelt att köra Mosquitto, InfluxDB samt Grafana.
Installera sedan MQTT, InfluxDB samt Grafana enligt någon guide på nätet. Det går att använda standardinställningar nästan rakt igenom.

Referenser
Min kod finns på Github, https://bitbucket.org/foogadgets/bvptograf
Inspirationstråd, https://elektronikforumet.com/forum/viewtopic.php?t=13714
Parameterlista, https://www.nibe.hu/Pages/98176/RCU_Parameterlista_F1135_1235.pdf
Nibe RCU, http://www.nibeonline.com/pdf/031194-3.pdf
Raspbian, https://www.raspberrypi.org/downloads/raspbian/


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
InläggPostat: 23.40 2019-08-31 

Blev medlem: 13.00 2009-01-16
Inlägg: 596
Ort: Eslöv
Hej!
Jag har byggt en sån här pryl och försöker få den att lira med min VP, men har inte nån tur.
Kollar jag debugutskrift med nc så får jag bara:
Started
Connecting to CloudMQTT..
Connected

Sen dröjer det lite och samma sak igen. Verkar som om ESP:n startar om.
I mqtt-brokern publiceras också Connected, men inget mer.

Har LED:ar på Rx/Tx så ser det blinka lite sporadiskt på Rx, medan Tx ser jag bara tändas upp en ganska lång stund vid omstart (det sprutar ut något).
Har kollat med skåpet också, och signalerna är helt ok.

Någon idé om vad som händer, eller känns igen?
Exakt vilka bibliotek har använts förresten? Fick leta runt och prova diverse innan kompileringen gick igenom, så det är kanske något fel där.

Har det gjorts någon mer utveckling i övrigt?

/J
Bilaga:
espNibe.jpg


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 2 inlägg ] 

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010