LoRaWAN-Workshop

Temperatur-Sensor DS18B20

Das Beispielprogramm liest den Temperatur-Sensor zyklisch aus und zeigt den Messwert auf dem Display an. 

Zusätzlich werden die Messwerte auch über die serielle Schnittstelle ausgegeben. 

1-Wire bzw. One-Wire oder Eindraht-Bus beschreibt eine serielle Schnittstelle der Firma Dallas Semiconductor Corp. (heute Maxim Integrated)

In unserer Schaltung verwenden wir drei Leitungen:

  • VDD
  • DQ
  • GND

VDD wird an +3,3V angeschlossen. DQ nutzt den GPIO13 als Datenbusleitung. 

Weitere Infos zum 1-Wire-Bus:  https://de.wikipedia.org/wiki/1-Wire

Datenblatt des Temperatursensors: https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

Der Temperatur-Sensor DS18B20 von Maxim wird über einen 1-Wire-Bus an den TTGO angeschlossen:

Aufbau auf einem Steckbrett  (Dieses Bild nicht als Referenz für die Anschlüsse am TTGO verwenden - die Perspektive ist etwas verzerrt)

 

Für die Nutzung des Temp-Sensors benötigt man zwei Librarys. Diese kann man über die Bibliotheks-Verwaltung installieren:

OneWire Libary

siehe auch: https://www.pjrc.com/teensy/td_libs_OneWire.html

DallasTemperature Libary

siehe auch: https://github.com/milesburton/Arduino-Temperature-Control-Library

Die OneWire Library ist für die Datenkommunikation über den 1-Wire-Bus zuständig. Die DallasTemperature Libary übernimmt die direkte Kommunkation mit dem Temperatursensor und liefert die aufbereitete Messwerte

Das Sensor-Test-Programm findet in unserem Github-Repository:

https://github.com/DO6FP/hamgroup_lorawan/tree/main/code/LoRaWAN_Temperatur_DS18B20_Test

Wenn dieses Testprogramm läuft und die aktuellen Temperaturwerte auf dem Display und über die serielle Schnittstelle ausgibt ist die Hardware für den LoRaWAN-Temperatur-Node fertig aufgebaut. 

Erweiterung:

Für die Darstellung der Temperaturwerte als Kurve in einem Diagramm kann man auch den Funktionsplotter der Arduino-IDE verwenden:

Dazu muss man im Quellcode eine kleine Änderung durchführen:

Serial.print(temperatur);             // Temperaturwert über die serielle Schnittstelle ausgeben

Serial.println("ºC");

in 

Serial.print(temperatur);             // Temperaturwert über die serielle Schnittstelle ausgeben

Serial.println( );

ändern. Über die serielle Schnittstelle darf nur der Messwert ohne "ºC" ausgegeben werden.

Den Funktionsplotter ruft man in der Arduino IDE dann unter Werkzeuge -> Serieller Plotter auf. 

 

Den LoRaWAN-Node mit dem Temperatursensor auf der Basis dieser Schaltung werden wir beim nächsten Workhop-Termin am 17.01.2022 in Betrieb nehmen.

Weitere Informationen zum Temperatur-Sensor DS 18B20:

https://beelogger.de/sensoren/temperatursensor-ds18b20

https://randomnerdtutorials.com/esp8266-ds18b20-temperature-sensor-web-server-with-arduino-ide/

https://makesmart.net/ds18b20-temperaturfuhler-esp8266-d1-mini/

 

 

 

...

powered by webEdition CMS