Der HC-SR04 ist ein Ultraschall-Entfernungsmesser, der sich gut mit dem Wemos D1 Mini integrieren lässt. Er wird von Tasmota unterstützt.

Es handelt sich um ein 5V-Modul, d.h. der 'Echo'-Ausgang muss über einen Spannungsteiler an den Wemos-Eingang angeschlossen werden.

Er eignet sich für Abstands- oder Füllstandsmessungen (z.B. Zisterne). Die Pinbelegung von links nach rechts:

  • Vcc
  • Trig
  • Echo
  • GND

 

Verbindungen

Wemos D1 Mini HC-SR04
5V Vcc
GND GND
D6 (GPIO12) Echo (via voltage divider)
D7 (GPIO13) Trigger

 

Der Aufbau der Schaltung auf dem Steckbrett:

BILD fehlt Der Schaltplan des Moduls mit dem Entfernungssensor.
Aufbau auf dem Steckbrett.

 

Tasmota-Konfiguration

Für den Wemos D1 Mini wird wieder der Gerätetyp 'Generic' gewählt und gespeichert.

Der Sensor wird über D6 und D7 wie gezeigt konfiguriert und gespeichert.
Beim Zeitplan erfolgt keine Eingabe, weil das Modul keinen Schaltausgang hat.
Im WLAN-Menü wird der Hostname des Moduls eingegeben.
Hier erfolgt die Eingabe des MQTT-Hostnamens, sowie von Topic und Full Topic.
Für Tests kann die Telemetrieperiode auf 30..60 Sekunden eingestellt werden. Im Regelbetrieb sollten 900 Sekunden gewählt werden, um den Datenverkehr zu minimieren.
Der Messwert kann nicht über Amazon Alexa abgefragt werden, deshalb bei Emulation "keine" auswählen. Als "Friendly Name" wird der Sensorname verwendet, damit der auf den Modulseiten angezeigt wird.
In der Konsole prüft man, ob die Daten an MQTT geliefert werden.
Auf der Hauptseite des Moduls wird der Messwert angezeigt.

OpenHAB Items

Folgende Items werden definiert:


//=======================================================================================//
// File: items/HC-SR04.items  Rev. 16.09.2018 / 15:45                                    //
// (C) 2018 IoT-Systems, D-83043 Bad Aibling                                             //
// Author: Andreas Kriwanek                                                              //
//=======================================================================================//
// Project: Wemos D1 Mini with distance sensor HC-SR04                                   //
//=======================================================================================//

// Chart time range:
Number chartPeriodHCSR04  "Auswahl"

// Items for HC-SR04:
Number dataDistance "Distance [%.0f cm]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/SENSOR:state:JSONPATH($.SR04.Distance)]" }

// Sonoff THxx 1 (Tasmota) Administration data:
String bootModuleHCSR04 "Modul [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO1:state:JSONPATH($.Module)]" }
String bootVersionHCSR04 "Version [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO1:state:JSONPATH($.Version)]" }
String bootFallbackHCSR04 "Fallback Topic [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO1:state:JSONPATH($.FallbackTopic)]" }
String bootGroupHCSR04 "Group Topic [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO1:state:JSONPATH($.GroupTopic)]" }
String bootWSModeHCSR04 "Webserver Mode [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO2:state:JSONPATH($.WebServerMode)]" }
String bootHostnameHCSR04 "Hostname [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO2:state:JSONPATH($.Hostname)]" }
String bootIPAddressHCSR04 "IP-Adresse [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO2:state:JSONPATH($.IPAddress)]" }
String bootRestartReasonHCSR04 "Restart Grund [%s]" 
    { mqtt="<[mosquitto:Test/HCSR04/tele/INFO3:state:JSONPATH($.RestartReason)]" }
String parUpdateHCSR04 "Letzter Update [%s]" 

 

OpenHAB Sitemap

Die minimale Sitemap für den Aufbau:


//=======================================================================================//
// File: sitemaps/HCSR04.sitemap  Rev. 16.09.2018 / 15:45                                //
// (C) 2018 IoT-Systems, D-83043 Bad Aibling                                             //
// Author: Andreas Kriwanek                                                              //
//=======================================================================================//
// Project: Wemos D1 Mini with distance sensor HCC-SR04		                             //
//=======================================================================================//
sitemap HCSR04 label="HC-SR04"
{
	Frame {
		Text item=actDate icon="time"
	}
	Frame label="HCSR04" {
        Text item=dataDistance
	}
	Frame label="Status Wemos D1 Mini" {
		Text label="Wemos D1 Mini" icon="ak_info" {
			Frame label="Wemos D1 Mini" {
				Text item=bootModuleHCSR04
				Text item=bootVersionHCSR04
				Text item=bootFallbackHCSR04
				Text item=bootGroupHCSR04
				Text item=bootWSModeHCSR04
				Text item=bootHostnameHCSR04
				Text item=bootIPAddressHCSR04
				Text item=bootRestartReasonHCSR04
				Text item=parUpdateHCSR04
				Text item=parUptimeHCSR04
				Text item=parVccHCSR04
				Text item=parWiFiAPHCSR04
				Text item=parWiFiSSIDHCSR04
				Text item=parWiFiRSSIHCSR04
				Text item=parWiFiMacHCSR04
			}
		}
	}
}

// vim: syntax=Xtend

 

In der BASIC-UI sieht die Anzeige so aus:

Der Abstand wird in der Sitemap in Zentimetern angezeigt.
Klickt man auf das Status-Untermenü, werden die Details des Wemos D1 Mini angezeigt. Insbesondere für die Fehlersuche wichtig.

Links

Tasmota Wiki: https://github.com/arendst/Sonoff-Tasmota/wiki/Wemos-D1-Mini-and-HC-SR04-Ultrasonic-Sensor