Vor einigen Wochen stieß ich über einen Umweg auf openHAB. Auf Kickstarter bin ich bei PineA64 eingestiegen und eines der von diesem Mini-Computer unterstützten Software-Projekte war openHAB. Nach dem Lesen von ein paar Erfahrungen zu openHAB war ich hin und weg. Das hätte ich gerne zur Arduino-Zeit gehabt. Also setzte ich openHAB auf einem RasPi 2 um, den meine Tochter gerade nicht in Benutzung hatte.
Hier ein erstes Ergebnis der grafischen Auswertung der Temerature, die mein Arduino Mega nicht mehr nur an Cosm meldet, sondern auch an den openHAB-RasPi.(Die Unterbrechungen stammen vom Reboot des Rasberry Pi bei dessen Konfiguartion als Access Point.)
Bevor ich die Schaltungsregeln ganz auf den openHAB Rechner übertrage (falls überhaupt), binde ich andere IoT-Geräte ein. In dem Bild ist die Temperatur des Arbeitszimmers aufgeführt. Diese meldet ein Sensor, der an einem ESP8266 hängt per WLAN an den RasPi (Access Point) weiter.
Heizduino
Die Heizungssteuerung mit dem Arduino Mega 2560 befindet sich im produktiven Einsatz. Der Mega sendet die erfassten Daten zur grafischen Darstellung an Cosm. Es ist möglich, die Daten überall von der Ferne abzufragen.Diese Angaben werden auch lokal auf einem 4-zeiligen Display angezeigt (20x4). Eine manuelle Steuerung ist mit einem Keypad möglich (PCF8574). Sonst steuert der Mega über die Relaiskarte (Solid State Relais) Pumpen und Ventile vollautomatisch. Das System ist 24/7 sicher (Watchdog)
Sonntag, 20. März 2016
Donnerstag, 29. Mai 2014
Neuster Code für die Heizungssteuerung
Hier kommt der neue Code für die Heizungssteuerung.
Es steuert zwei WW-Boiler, die je nach Temperatur mit einem Dreiwege-Ventil umgeswitcht werden.
Nun ist bei 40°C und mehr der Wechsel eingerichtet, damit das Wasser nicht zu lange stehen bleibt.
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Ethernet.h>
#include <EthernetUdp.h> // für die NTP-Abfrage
#include <LCD.h>
#include <Keypad.h>
Es steuert zwei WW-Boiler, die je nach Temperatur mit einem Dreiwege-Ventil umgeswitcht werden.
Nun ist bei 40°C und mehr der Wechsel eingerichtet, damit das Wasser nicht zu lange stehen bleibt.
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Ethernet.h>
#include <EthernetUdp.h> // für die NTP-Abfrage
#include <LCD.h>
#include <Keypad.h>
Samstag, 17. Mai 2014
Neuer Code der Heizungssteuerung mit Fehlerkorrekturen, neuem Timeserver und Sommerzeitumstellung
Letztes Ärgernis, die angezeigte Zeit zwei Mal im Jahr umstellen zu müssen, ist nun behoben.
Ein paar kleinere Bugfixes sind auch dabei.
Der Time-Server ist nun meine FritzBox: 192.168.178.106
/*
/*
Bei der 2. Version des Arduino Ethernet Shields beachten:
"Yes, but when you reset the device before uploading, you can still upload the sketch WITH the shield attached, so it's quick and convenient."
aus
http://arduino.cc/forum/index.php/topic,67777.45.html#msg711073
Bei der 2. Version des Arduino Ethernet Shields beachten:
"Yes, but when you reset the device before uploading, you can still upload the sketch WITH the shield attached, so it's quick and convenient."
aus
http://arduino.cc/forum/index.php/topic,67777.45.html#msg711073
*/
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Ethernet.h>
#include <EthernetUdp.h> // für die NTP-Abfrage
#include <LCD.h>
#include <Keypad.h>
#include <Keypad_I2C.h>
#include <SPI.h>
#include <SD.h> // für die SD-Kartennutzung
#include <avr/wdt.h> // für den Watchdog vgl. (http://tushev.org/articles/arduino/item/46-arduino-and-watchdog-timer)
#include <Time.h>
Ein paar kleinere Bugfixes sind auch dabei.
Der Time-Server ist nun meine FritzBox: 192.168.178.106
/*
/*
Bei der 2. Version des Arduino Ethernet Shields beachten:
"Yes, but when you reset the device before uploading, you can still upload the sketch WITH the shield attached, so it's quick and convenient."
aus
http://arduino.cc/forum/index.php/topic,67777.45.html#msg711073
Bei der 2. Version des Arduino Ethernet Shields beachten:
"Yes, but when you reset the device before uploading, you can still upload the sketch WITH the shield attached, so it's quick and convenient."
aus
http://arduino.cc/forum/index.php/topic,67777.45.html#msg711073
*/
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Ethernet.h>
#include <EthernetUdp.h> // für die NTP-Abfrage
#include <LCD.h>
#include <Keypad.h>
#include <Keypad_I2C.h>
#include <SPI.h>
#include <SD.h> // für die SD-Kartennutzung
#include <avr/wdt.h> // für den Watchdog vgl. (http://tushev.org/articles/arduino/item/46-arduino-and-watchdog-timer)
#include <Time.h>
Sonntag, 22. September 2013
Grund für Neustarts des Arduino Watchdogs
Tatsächlich scheint der Watchdog den Arduino hin und wieder neu zu starten. Bemerkenswerterweise in den letzten zwei Wochen so gegen 3 Uhr nachts. Auf Cosm, wo die Daten hingeschoben werden, steht die Statistik dann für ein paar Minuten still.
Grund nach der Recherche: Die DSL-Verbindung wird dann zwangsunterbrochen und der Arduino kann nicht senden (und die Uhrzeit - jede 10 Minuten empfangen).
Dies führt dazu, dass die entsprechende Funktion im Code für so lange hängt und der Watchdog (8 Sekunden Überwachungszeit) auslöst.
Also werde ich mich in den nächsten Wochen auf die Suche im Code machen, um das Problem zu lösen.
Grund nach der Recherche: Die DSL-Verbindung wird dann zwangsunterbrochen und der Arduino kann nicht senden (und die Uhrzeit - jede 10 Minuten empfangen).
Dies führt dazu, dass die entsprechende Funktion im Code für so lange hängt und der Watchdog (8 Sekunden Überwachungszeit) auslöst.
Also werde ich mich in den nächsten Wochen auf die Suche im Code machen, um das Problem zu lösen.
Sonntag, 15. September 2013
und läuft und läuft und läuft... und die Sonne scheint :-D
Um das letzte Foto auf- und abzuwerten hier noch ein Foto.
Mein handwerkliches Geschick ist sichtbar begrenzt. Mal schauen, wie ich das Kästchen schick kriege.
Und wie deutlich im rechten Boilerteil zu sehen (Temperatur oben und unten), scheint in Hannover heute die Sonne: 39,8°C im 500l-Boiler, der an der Solaranlage hängt. Der kleine 300l Boiler hat davon noch nichts abbekommen, weil die Tempretur im Großen noch zu niedrig zum Umwälzen (zwischen den beiden) ist.
Der Vollständigkeit halber:
M4472 steht für den freien Speicher des Arduino Mega 2560.
T142:41 steht für 142 unterbrechungsfreie Stunden des µC plus 41 Minuten :-D.
Mein handwerkliches Geschick ist sichtbar begrenzt. Mal schauen, wie ich das Kästchen schick kriege.
Und wie deutlich im rechten Boilerteil zu sehen (Temperatur oben und unten), scheint in Hannover heute die Sonne: 39,8°C im 500l-Boiler, der an der Solaranlage hängt. Der kleine 300l Boiler hat davon noch nichts abbekommen, weil die Tempretur im Großen noch zu niedrig zum Umwälzen (zwischen den beiden) ist.
Der Vollständigkeit halber:
M4472 steht für den freien Speicher des Arduino Mega 2560.
T142:41 steht für 142 unterbrechungsfreie Stunden des µC plus 41 Minuten :-D.
und läuft und läuft
Es scheint gute Nachrichten zu geben. Der Heizduino läuft seit 123 Stunden und 46 Minuten (Stand heute 9:08 Uhr) ohne Probleme und Abstürze! Das letzte Mal habe ich den Sketch auf den neusten Stand gebracht und die Laufzeit mittels millis() eingebaut, s. Foto.
Wird nun alles gut? :-D
Wird nun alles gut? :-D
Samstag, 7. September 2013
Bootloader
Der Arduino Mega 2560 ist nun uptodate: Der Bootloader ist v2 und unterstützt damit den Watchdog richtig. Auch ist das !!!-Problem vom Tisch - hat mich vor einem Jahr auch ein paar Tage Nerven und Sucherei gekostet :-)
Auch mein Backup-Arduino Mega, allerdings 1280, ist mit dem Optiboot ausgestattet (aber noch nicht getestet).
Samstag, 31. August 2013
Watchdog Problem gelöst?
Habe gerade den Mega 2560 gegen den Kleinen Mega ausgetauscht. Hoffung ist, dass der Watchdog hier funktioniert. Der große Mega hat ein Bootloader-Problem, vgl.
http://www.gammon.com.au/forum/?id=11635 (erst damit klappte später das Update, die 120 Ohm Variante aus http://www.youtube.com/watch?v=GMt4hLaKjAc war nicht erfolgreich) und
http://forum.arduino.cc/index.php?topic=115531.0
Das Updaten des Bootloader mit dem Duemillanova scheiterte zuerst, daher habe ich kurzen Prozess gemacht. Der Sketch läuft bisher einwandfrei.
http://www.gammon.com.au/forum/?id=11635 (erst damit klappte später das Update, die 120 Ohm Variante aus http://www.youtube.com/watch?v=GMt4hLaKjAc war nicht erfolgreich) und
http://forum.arduino.cc/index.php?topic=115531.0
Das Updaten des Bootloader mit dem Duemillanova scheiterte zuerst, daher habe ich kurzen Prozess gemacht. Der Sketch läuft bisher einwandfrei.
Donnerstag, 29. August 2013
Und wieder grüßt das Murmeltier
Worauf läßt das folgende Bild schließen?
Genau, erneuter Ausfall. Und warum?
Das Display war einfach eingefroren. Arduino gab kein Lebenszeichen von sich. Dabei habe ich den Watchdog doch installiert! Beim Reset machte der Arduino keine Anstalten, neu zu starten, erst nach längerer Stromunterbrechung sprang er wieder an.
Und die Erklärung und Konsequenz?
- die zu lange (5m) I2C-Verbindung wieder außer Betrieb nehmen
- den Watchdog überprüfen - dazu gibt es eine versuchte Hilfeanfrage bei http://forum.arduino.cc/index.php?topic=184897.0
OK, am Wochenende wird's versucht...
1) LCD wieder zurück in den Keller
2) Zweites Display im Wohnzimmer über den Raspberry Pi und einer seriellen 433MHz-Schnittstelle
3) Bootloader updaten
Oder?
Genau, erneuter Ausfall. Und warum?
Das Display war einfach eingefroren. Arduino gab kein Lebenszeichen von sich. Dabei habe ich den Watchdog doch installiert! Beim Reset machte der Arduino keine Anstalten, neu zu starten, erst nach längerer Stromunterbrechung sprang er wieder an.
Und die Erklärung und Konsequenz?
- die zu lange (5m) I2C-Verbindung wieder außer Betrieb nehmen
- den Watchdog überprüfen - dazu gibt es eine versuchte Hilfeanfrage bei http://forum.arduino.cc/index.php?topic=184897.0
OK, am Wochenende wird's versucht...
1) LCD wieder zurück in den Keller
2) Zweites Display im Wohnzimmer über den Raspberry Pi und einer seriellen 433MHz-Schnittstelle
3) Bootloader updaten
Oder?
Dienstag, 27. August 2013
Ein Hoch auf SSR
Es scheint zu laufen! Bisher sind keine Probleme mit dem Display aufgetaucht.
Irgendetwas hat heute das Board aber zum Stillstand gebracht. Nach der Analyse der geg. Temperaturen wird es kein Schaltungvorgang gewesen sein. Und der Mega lief seit 3-4 Tagen ohne Reset o.ä.
Daher habe ich den letzten Schritt unternommen und das System langzeit-tauglich gemacht mit dem Einsatz des Watchdogs.
Die Umsetzung ist trivial und kann nach 5 Sekunden von Google herausgeholt werden. Bei mir wird der Mega jede 8 Sekunden auf den Herzschlag abgehört.
Und da das LCD nun wieder ein paar Meter im Wohnzimmer steht, auch gleich ein Foto...
Es funktioniert auf diese 5m auch prima ohne den P82B715 Extender.
Zur Wand führt nun ein einfaches Telefonkabelchen mit vier Adern. Das Keypad und LCD werden in das Holzkistchen eingebaut, wenn 'mal Zeit ist.
Irgendetwas hat heute das Board aber zum Stillstand gebracht. Nach der Analyse der geg. Temperaturen wird es kein Schaltungvorgang gewesen sein. Und der Mega lief seit 3-4 Tagen ohne Reset o.ä.
Daher habe ich den letzten Schritt unternommen und das System langzeit-tauglich gemacht mit dem Einsatz des Watchdogs.
Die Umsetzung ist trivial und kann nach 5 Sekunden von Google herausgeholt werden. Bei mir wird der Mega jede 8 Sekunden auf den Herzschlag abgehört.
Und da das LCD nun wieder ein paar Meter im Wohnzimmer steht, auch gleich ein Foto...
Es funktioniert auf diese 5m auch prima ohne den P82B715 Extender.
Zur Wand führt nun ein einfaches Telefonkabelchen mit vier Adern. Das Keypad und LCD werden in das Holzkistchen eingebaut, wenn 'mal Zeit ist.
Abonnieren
Posts (Atom)