ESP32: Wetterdaten wie Temperatur, Luftfeuchte, Luftdruck und Kursdaten von BTC, ETC, SOL, DOGE, NANO und DUINO mit User-Wallet anzeigen

Vor 8 Jahren hatte ich schon mal über das OLED Display „Don’t give up! berichtet. Und während der Pandemie diente es als CO2 Anzeige. Das habe ich nun abgebaut und durch ein paar Abfragen per REST-Api von OpenWeatherMap und Coingecko umprogrammiert. Das Ergebnis sieht man in diesem Video:

Es werden mit dem ESP32: Wetterdaten wie Temperatur, Luftfeuchte, Luftdruck und Kursdaten von BTC, ETC, SOL, DOGE, NANO mit DUINO User-Wallet angezeigt. Das Programm sieht ungefähr so aus: „ESP32: Wetterdaten wie Temperatur, Luftfeuchte, Luftdruck und Kursdaten von BTC, ETC, SOL, DOGE, NANO und DUINO mit User-Wallet anzeigen“ weiterlesen

CO2-Ampel: Temperatur zur OLED-Anzeige des CO2-Wertes ergänzen

Zusätzlich zur CO2-Ampel auch noch die Temperatur zur Anzeige des CO2-Wertes hinzufügen. Das ist schnell gemacht, hier das Ergebnis:

Das zusätzliche Einlesen der Temperatur ist in Python auch schnell gemacht:

So sieht ja das JSon File welches per MQTT gesendet wird aus:
„CO2-Ampel: Temperatur zur OLED-Anzeige des CO2-Wertes ergänzen“ weiterlesen

Filtern eines JSON Objekt per REST Request von einem Raspberry Pi in einen Wert per NodeRed transformieren

Wenn man REST Services abfragt, bekommt man oft viele Werte. Wie kann man nur einen davon leicht per NodeRed filtern?

Diesen Flow erstellen:

Hier mal ein Beispiel eines JSON-Objekt mit mehreren Werten. Wir wollen da die Temperatur Filtern. „Filtern eines JSON Objekt per REST Request von einem Raspberry Pi in einen Wert per NodeRed transformieren“ weiterlesen

Raspberry Pi Temperatur im Jahresdurchschnitt 55,6 Grad Celsius (摄氏)

Bei mir laufen mehrere Raspberry Pi seit Jahren. Wie ist da eigentlich die Temperatur im Jahresdurchschnitt? 55,6 Grad Celsius wie auch dieses Diagramm zeigt. Es werden von mir die Temperaturen permanent in einer Round-Robin-Datenbank gespeichert.

Die Höchsttemperatur ist übrigens 61,5 Grad Celsius und das alles bei einer CPU Auslastung des Pis von 23,9%.

Sehr stabil..
„Raspberry Pi Temperatur im Jahresdurchschnitt 55,6 Grad Celsius (摄氏)“ weiterlesen

rtl_433 für den Raspberry Pi selbst compilieren um Temperatursensoren und Luftruck von Autoreifen (TPMS) uä. auf 433,92 Mhz zu empfangen

Wer eine Wetterstation hat, die auf 433,92 Mhz sendet kann die Daten empfangen. Oder wer keine hat, kann die von den Nachbarn mitbenutzen. Dazu reicht ein kleiner Raspberry Pi Zero W. Auf dem ein rtl_433 Programm läuft.

Voraussetzung:

rtl-sdr muss installiert sein, das hatte ich hier im Block aber schon mal beschrieben. Mit dem Empfänger kann man nicht nur Flugzeug-Transponder empfangen, sondern auch Kühlschränke, Wetterstationen und Autoreifen (Luftdruck, The tire pressure monitoring system (TPMS))…

Also wir müssen uns den Quellcode aus Git holen und das Programm selbst compilieren: „rtl_433 für den Raspberry Pi selbst compilieren um Temperatursensoren und Luftruck von Autoreifen (TPMS) uä. auf 433,92 Mhz zu empfangen“ weiterlesen

Wie kann die Temperatur vom Raspberry Pi mit OpenHAB an ThingSpeak.com gesendet werden? Übersicht als aufwendiges Whiteboard Video (فيديو لطيفة) !

Ich hatte schon hier mit Fhem davon berichtet. Jetzt ist alles auf openHAB umgestellt, und damit geht es auch einfach.

Habe mal ein aufwendiges Whiteboard Video für Euch erstellt, um die Zusammenhänge in 10 Sekunden darzustellen:

„Wie kann die Temperatur vom Raspberry Pi mit OpenHAB an ThingSpeak.com gesendet werden? Übersicht als aufwendiges Whiteboard Video (فيديو لطيفة) !“ weiterlesen

Raspberry Pi: Temperaturen und Luftfeuchtigkeit aus Langenhagen, aktuell 42 Grad Celsius – alle 5 Minuten neue Werte direkt von der Terrasse

Weil es heute so heiß ist, wollt ich die Temperaturen die auf der Terrasse gemessen und drahtlos zum Fhem Server gesendt werden, mal hier veröffentlichen.

Wie können die Werte an ThingSpeak gesendet werden. Einfach in der fhem.cfg diesen Eintrag machen: „Raspberry Pi: Temperaturen und Luftfeuchtigkeit aus Langenhagen, aktuell 42 Grad Celsius – alle 5 Minuten neue Werte direkt von der Terrasse“ weiterlesen

Raspberry Pi: SNMP (Simple Network Management Protocol) installation in einer Stunde und Abfrage der CPU Temperatur per SNMP

Wie kann net-snmp auf dem Raspberry Pi installiert werden? Da es noch kein fertiges Package für den Raspberry Pi (Kali) gibt, ist selbst compilieren angesagt.

Wenn diese Bestätigung kommt:
snmp
Dann weiter mit compilieren und installieren. Das kann eine Stunde dauern … „Raspberry Pi: SNMP (Simple Network Management Protocol) installation in einer Stunde und Abfrage der CPU Temperatur per SNMP“ weiterlesen

Wie wird ein #One-Wire-Server #owhttpd auf #WR-703N unter #openWrt installiert?

Die Installation wie in beschrieben ist Voraussetzung. Der Server wird mit dann wie folgt gestartet.

/usr/bin/owhttpd --debug -d /dev/ttyUSB0 -p 4444

Ausgabe:
...
DEBUG: ow_daemon.c:EnterBackground(166) main thread id = 2006708224
CONNECT: ow_avahi_link.c:OW_Load_avahi_library(72) No Avahi support. Library libavahi-client couldn't be loaded
CONNECT: ow_dnssd.c:OW_Load_dnssd_library(136) Zeroconf/Bonjour is disabled since dnssd library isn't found
CALL: ow_parsename.c:FS_ParsedName_anywhere(95) path=[]
DEBUG: owlib.c:SetupTemperatureLimits(79) Globals temp limits 0C 100C (for simulated adapters)
DEBUG: ow_ds9097U.c:DS2480_initialize_repeatedly(267) Attempt #0 to initialize the DS9097U
DEBUG: ow_ds9097U.c:DS2480_big_reset_serial(356) Send the initial reset to the bus master.
DEBUG: ow_tcp_read.c:tcp_read(64) attempt 1 bytes Time: 5.000000 seconds
DEBUG: ow_tcp_read.c:tcp_read(114) read: 1 - 0 = 1
...

Hier sieht man auch, das der USB9097 als DS9097U erkannt wird.
Der Server ist nun über Port 4444 und der IP erreichbar.

Obwohl man besser den Port 4304 verwendet, da er in der IANA (Internet Assigned Numbers Authority) für owserver registriert ist. Also ohne debug und mit den „richtigen“ Port /usr/bin/owhttpd -d /dev/ttyUSB0 -p 4304

Z.b. Eingabe im Browser http://198.2.1.1:4444 listet das Verzeichnis auf:
Bildschirmfoto 2014-02-13 um 21.12.02
Klick auf die 28… oder http://198.2.1.1:4444/28.A29D8A040000 zeigt die Temperatur in Grad Celsius an:
Bildschirmfoto 2014-02-13 um 21.10.07

Wie wird der USB 9097 unter OpenWrt auf einem WR-703N mit owfs installiert?

Der USB-Stick USB9097 mit zwei One-Wire Klinkenstecker Anschlüssen (3,5mm – 5v – Data – GND).

USB9097
USB9097

Der USB-Stick ist ein kostengünstiger Busmaster (DS2480B) mit USB-Serial-Adapter (CH341) für USB Bus (2.0) mit Konverter Chip CH341 im syncronen seriellen (SCL, SDA) Modus.

Er wird vollständig von OWFS unterstützt (… aber als serieller Busmaster S9097U-Type mit USB Port!).

Was muss getan werden um einen One-Wire Temperatursensor DS18B20 anzuschließen und die Temperatur auszugeben?

Folgende Package installieren und reboot.

opkg update
opkg install kmod-usb-serial-ch341 kmod-usb-serial
opkg install owfs owhttpd owshell owserver

OWFS wird dann in der Version 2.8p13-1 installiert, es gibt aber schon 2.9.p1 wer die haben will, muss das Package selbst compilieren und installieren.

Ein Verzeichnis erstellen:
mkdir /mnt/1wire

USB-Stick anstecken und Kernel-Meldungen checken mit dmesg ob er erkannt wurde:
dmesg
Ausgabe ua:

...
[ 36.330000] USB Serial support registered for ch341-uart
[ 36.330000] ch341 1-1.2:1.0: ch341-uart converter detected
[ 36.350000] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
...

Oder mit lsusb
Ausgabe ua:

...
Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
...

Jetzt können wir den USB-Stick an das erstellte Verzeichnis binden mit:

owfs -d /dev/ttyUSB0 -m /mnt/1wire/

Jetzt werden alle Eigenschaften und Daten als Dateisystem unter dem gemounteten Verzeichnis abgebildet.
Wenn wir dann in das /mnt/1wire Verzeichnis gehen, können wir uns von dort mit cat die Temperatur ausgeben lassen.

cd /mnt/1wire
ls

Ausgabe der Verzeichnisse:

28.A29D8A040000 bus.0 simultaneous structure uncached
alarm settings statistics system

Die Verzeichnis Nr. die mit 28…. startet ist das Verzeichnis des Temperatur Sensors.

cat 28.A29D8A040000/temperature
Ausgabe nach ca. 1 Sekunde mit 12-Bit Genauigkeit in Grad Celsius:
24.375

Oder der Type des Sensors
cat 28.A29D8A040000/type
Ausgabe:
DS18B20

Oder die einmalige ID:
cat r_address
Ausgabe z.B.
2B0000048A9DA228

Oder…

Habt ihr noch Fragen oder Anregungen?


Wie kann die Betriebstemperatur eines Raspberry Pi ausgelesen werden?

Habe den rPi nun in ein Gehäuse eingebaut. Hatte mich über die blaue Farbe gefreut. Noch besser sieht es aber aus, wenn man die blaue Folie abzieht ;-). Hatte erst gar nicht gemerkt, das die auf beiden Seiten beklebt war. So sieht es super aus:

20131022-171158.jpg
Ok, nun zu der Frage, ob es da im Gehäuse zu warm wird. Dazu kann man mit den folgenden Befehl
/opt/vc/bin/vcgencmd measure_temp
auf der Konsole die Temperatur ausgeben.
Jetzt ist es bei mir
temp=45.5'C
mal sehen wie sich das so nach ein paar Stunden entwickelt.

Berechnung der zu erwartenden Größe der Arduino Log Datei

Ausgehend von einem Eintrag, den der Arduino mit 2 Temp. Sensoren erzeugt, in dieser Form:

11-11-2013_11:11:11 Arduion.Temperatursensor_1 T: 20.12

Die Länge ist 55 Zeichen lang.
Bei einer Messung alle 10 Sekunden mit 2 Sensoren ergibt das
55 x 6 x 2 = 660 pro Minute
das sind am Tag
660 x 60 x 24 = 959.400
im Monat
959.400 x 30 = 28.512.000
im Jahr
28.512.000 x 365 = 10406880000
das sind dann in MB
10.406.880.000 / 1.000.000 = 10406,88 MB
also in GB
10.406,88 MB / 1000 = 10,40688 GB im Jahr.

Das ist zuviel für einen 8 GB USB-Stick.
Wenn die Messzeit um den Faktor 100 verlängert wird, also alle 10 x 100 = 1000 Sekunden (alle 16 Minuten), müsste im Jahr
10,40688 GB im Jahr / 100 = 0,1040688 GB im Jahr anfallen,
das sind dann pro Monat:
0,1040688 GB / 12= 0,0086724 GB oder
0,1040688 GB / 1000 = 104,0688 MB pro Monat

Gnuplot der Temperaturen im Gefrierfach und Kühlschrank.

Zuerst wurde der Temperatursensor in das Gefrierfach und dann in den Kühlschrank gelegt (grüne Kurve). Der zweite Sensor, wurde außerhalb des Kühlschranks platziert (die rote Kurve).

Temperaturverlauf im Kühlfach und Gefrierteil des Kühlschranks
Temperaturverlauf im Kühlfach und Gefrierteil des Kühlschranks

Folgende gnuplot Datei ist dafür nötig:

set title "Temperaturverlauf im Kühlschrank" font "Times,18"
set ylabel "Temperatur in Grad/Celsius"
set xlabel "Messzeitpunkt am 26.06.13"
set xdata time # x-Achse wird im Datums/Zeitformat skaliert
set timefmt "%Y.%m.%d_%H:%M:%S" # Format Zeitangaben yyyy.mm.dd_hh:mm:ss
set format x "%H:%M" # Format für die Achsenbeschriftung
set yrange [-19:26] # die y-Achse geht von:bis
set zeroaxis # eine Null Linie

# Maximum und Minimum anzeigen
max_y = GPVAL_DATA_Y_MAX
set label 1 gprintf("Maximum = %g Grad/Celsius", max_y) at "2013.06.26_17:00:00",24 font "Times,12"
min_y = GPVAL_DATA_Y_MIN
set label 2 gprintf("Minimum = %g Grad/Celsius", min_y) at "2013.06.26_17:25:00",-15 font "Times,12"

set terminal png
set output "temperaturverlauf-kuehlschrank.png"plot "temperatur-kuehlschrank.txt" using 1:2 title "Zimmer Sensor" with lines, "" using 1:3 title "Sensor im Kühlschranki" with lines

set terminal aqua
replot

Diese Grafik liegen diese, mit dem Arduino gemessenen Werte zugrunde. Die Aussetzer in der Aufzeichnung rühren daher, das sich der MacBookAir nach einiger Zeit in den Sleep-Modus schaltet, dann kommen keine Daten aus der USB-Schnittstelle an. Da muss man sich dann noch was einfallen lassen.