Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
In dieser Anleitung sehen wir uns an, wie man einen WiFi-fähigen Temperaturfühler mit einem einfachen ESP8266 für das schwere Heben und einem DHT11 Temperatur- / Feuchtigkeitssensor baut. Wir werden auch die von mir erstellte Platine verwenden, die jetzt auch im Tindie-Store des Senders erhältlich ist, wenn Sie sie kaufen möchten.
Beginnen wir mit der Stückliste, die Sie benötigen werden:
ESP8266 WLAN-Modul
amzn.to/2pkGPoa
DHT11-Sensor
amzn.to/2phwfhO
TP-Link Smart Plug
amzn.to/2GElQUz
Sie können das gesamte Modul auch im Tindie-Laden für den Kanal abholen:
www.tindie.com/products/misperry/wifi-enab…
Sehen Sie sich auch JLCPCB für PCB Fabriction an. Sie sind die, mit denen ich die Platine gemacht habe:
Kostenloser Versand bei Erstbestellung & 2 USD PCB-Prototyping auf
Schritt 1: Hinzufügen des Codes zu ESP8266
Wir müssen nun den folgenden Code auf den ESP8266 flashen. Dieser Code ist im folgenden Github-Repository zu finden:
Im folgenden Code müssen Sie nur die obersten Definitionsabschnitte einrichten:
MQTT-Server:
MQTT-Benutzer:
MQTT-Passwort:
MQTT_sensor_topic:
-W-lan
Said: das Sagen des WLAN-Netzwerks, mit dem Sie sich verbinden
Passwort: das WLAN-Passwort.
Sobald Sie dies im folgenden Code ausgefüllt haben, können Sie es kompilieren und auf Fehler überprüfen. Wenn 0 Fehler auftreten, können Sie es auf den ESP8266 flashen.
/* * Dateiname: TempHumSensor.ino * * Anwendung: HomeAssistant Raumheizungsthermostat * * Beschreibung: Dieser Code ist für das ESP8266 WiFi-fähige Arduino * kompatible Gerät. Dadurch werden die Temperaturinformationen * des DHT11-Geräts zur Verarbeitung an das HASS-Frontend weitergeleitet. * * Autor: M. Sperry - https://www.youtube.com/misperry * Datum: 03/* Revision: 1.0 * * */
#enthalten
#einschließen #einschließen #einschließen #einschließen #einschließen
#define CON_TIME_OUT 20 //Timeout keine Verbindung zum WLAN
#define MQTT_TIME_OUT 10 //Timeout keine Verbindung zum MQTT-Server
#define DHTPIN 0 // Pin, der mit dem DHT-Sensor verbunden ist
#define DHTTYPE DHT11 // Der Sensortyp ist der DHT11, Sie können ihn in DHT22 (AM2302), DHT21 (AM2301) ändern
#define mqtt_server "" // Geben Sie Ihre MQTT-Serveradresse oder IP ein. Ich verwende meine DuckDNS-Adresse (yourname.duckdns.org) in diesem Feld
#define mqtt_user "" //Geben Sie Ihren MQTT-Benutzernamen ein #define mqtt_password "" //Geben Sie Ihr Passwort ein #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" //Geben Sie ein Thema für Ihr MQTT ein
// Wifi: SSID und Passwort
const char* ssid = ""; const char* Passwort = "";
//DHT-Setup
DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
PubSubClient-Client (wifiClient);
// Funktion aufgerufen, um die Temperatur und die Luftfeuchtigkeit zu veröffentlichen
void publishData(float p_temperature) { // JSON-Objekt erstellen // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); // INFO: die Daten müssen in einen String umgewandelt werden; ein Problem tritt bei der Verwendung von Floats auf… //in Fahrenheit umwandeln p_temperature = (p_temperature * 1,8) + 32; // in Fahrenheit umwandeln root["temperature"] = (String)p_temperature; root.prettyPrintTo(Seriell); Serial.println("");
Zeichendaten[200];
root.printTo(data, root.measureLength() + 1); client.publish(MQTT_SENSOR_TOPIC, Daten, wahr); }
// Funktion beim Eintreffen einer MQTT-Nachricht aufgerufen
void callback(char* p_topic, byte* p_payload, unsigned int p_length) { }
Void erneut verbinden () {
// Schleife, bis wir wieder verbunden sind, während (!client.connected()) {Serial.print("INFO: Attempting MQTT connection…"); // Verbindungsversuch if (client.connect("ESPBlindstl", mqtt_user, mqtt_password)) { Serial.println("INFO: connected"); } else { Serial.print ("FEHLER: fehlgeschlagen, rc="); Serial.print (client.state ()); Serial.println ("DEBUG: versuchen Sie es in 5 Sekunden erneut"); // 5 Sekunden warten, bevor es erneut versucht wird delay(5000); } } }
Leere Einrichtung (void) {
Serial.begin (9600);
// Wir beginnen mit der Verbindung mit einem WiFi-Netzwerk
Serial.println(); Serial.println(); Serial.print ("Verbinden mit"); Serial.println (ssid);
WiFi.begin(ssid, Passwort);
while (WiFi.status() != WL_CONNECTED) {
Verzögerung (800); Serial.print("."); }
Serial.println("");
Serial.println ("WiFi verbunden"); Serial.println("IP-Adresse:"); Serial.println (WiFi.localIP()); // Initieren der MQTT-Verbindung client.setServer(mqtt_server, 1883); client.setCallback (Rückruf);
// DHT-Sensor initialisieren
dht.begin(); Serial.println ("DHT11 Unified Sensor Data");
// Temperatursensordetails drucken
sensor_t-Sensor; dht.temperature().getSensor(&sensor); Serial.println("------------------------------------------------"); Serial.println ("Temperatur"); Seriendruck ("Sensor: "); Serial.println (sensor.name); Serial.print ("Treiberversion: "); Serial.println (sensor.version); Serial.print ("Eindeutige ID: "); Serial.println (sensor.sensor_id); Serial.print ("Maximalwert: "); Serial.print (sensor.max_value); Serial.println(" *C"); Serial.print ("Min-Wert: "); Serial.print (sensor.min_value); Serial.println(" *C"); Serial.print ("Auflösung: "); Serial.print (sensor.resolution); Serial.println(" *C"); Serial.println("------------------------------------------------"); // Details zum Feuchtigkeitssensor drucken. dht.humidity().getSensor(&sensor); Serial.println("------------------------------------------------"); Serial.println ("Luftfeuchtigkeit"); Seriendruck ("Sensor: "); Serial.println (sensor.name); Serial.print ("Treiberversion: "); Serial.println (sensor.version); Serial.print ("Eindeutige ID: "); Serial.println (sensor.sensor_id); Serial.print ("Maximalwert: "); Serial.print (sensor.max_value); Serial.println("%"); Serial.print ("Min-Wert: "); Serial.print (sensor.min_value); Serial.println("%"); Serial.print ("Auflösung: "); Serial.print (sensor.resolution); Serial.println("%"); Serial.println("------------------------------------------------");
// Verzögerung zwischen Sensormesswerten basierend auf Sensordetails einstellen
delayMS = sensor.min_delay / 1000; }
Leere Schleife (Leere) {
Schwimmertemperatur;
if (!client.connected())
{ erneut verbinden (); }
Verzögerung (VerzögerungMS);
// Temperaturereignis abrufen und seinen Wert ausgeben.
sensor_event_t-Ereignis; dht.temperature().getEvent(&event); if (isnan (event.temperature)) { Serial.println ("Fehler beim Lesen der Temperatur!"); Temperatur = 0,00; aufrechtzuerhalten. Sonst { Temperatur = event.temperature; Serial.print ("Temperatur: "); Serial.print (Temperatur); Serial.println(" *C"); } // in MQTT veröffentlichen publishData(temperature); }
Schritt 2: Einrichten Ihres TP-LINK Smart Plug
Sie müssen Ihren TP-LINK Smart Plug oder einen anderen Smart Plug entsprechend den Empfehlungen des Herstellers einstellen.
Notieren Sie sich unbedingt die MAC-Adresse auf dem Gerät. Wenn Ihr Gerät wie mein TP-LINK-Gerät ist, können Sie keine statische IP-Adresse angeben. Daher müssen Sie Ihren Router für die DHCP-Reservierung konfigurieren. Dies nimmt die MAC-Adresse Ihres Geräts und wenn dieses Gerät eine Adresse anfordert, gibt der Router ihm jedes Mal dieselbe Adresse.
Hier ist ein Link, um dies mit Linksys einzurichten
www.linksys.com/us/support-article?article…
Schritt 3: Home Assistant einrichten
Nun richten Sie den Home Assistant ein. Dazu müssen Sie der Datei configuration.yaml, die sich in der Ordnerstruktur /home/homeassistant/.homeassistant auf dem Gerät befindet, auf dem Sie es installiert haben, die folgenden Konfigurationen hinzufügen.
Nachdem Sie dies zu Ihrer Home Assistant-Konfiguration hinzugefügt haben, müssen Sie Ihre Home Assistant-Software neu starten, damit die Änderungen wirksam werden.
Außerdem werde ich den TP-LINK Smart Plug für das Schaltgerät verwenden und die Definition befindet sich unten in der Konfigurationsdatei. Die für das Gerät verwendete IP-Adresse ist diejenige, die Sie im vorherigen Schritt für die DHCP-Reservierung eingerichtet haben.
Diese Konfiguration ist auch im folgenden Github-Repo zu finden:
mqtt:switch: - Plattform: tplink-Name: Schlafzimmer-Heizungshost: 192.168.2.11
Sensor 1:
Plattform: mqtt state_topic: 'ha/bedroom_temp' Name: Schlafzimmer Temp unit_of_measurement: '°F' value_template: '{{ value_json.temperature }}'
Automatisierung:
- Alias: _Temp Bedroom Temp High Trigger: - Plattform: numeric_state entity_id: sensor. Bedroom_Temp oben: 73
Handlung:
service: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- Alias: _Temp Schlafzimmer Temp niedrig
Trigger: - Plattform: Numerical_state Entity_id: sensor. Bedroom_Temp unten: 73 Aktion: Service: homeassistant.turn_on Entity_id: switch. Bedroom_Heater
Schritt 4: Letzte Schritte
Mit Ihrer Home Assistant-Konfiguration und Ihrem Arduino-Code-Setup sind Sie nun bereit, das gesamte System zu aktivieren. Stecken Sie daher Ihren Heizungs-/Gebläse-/Kühlerstecker in den Smart Plug und stecken Sie den Smart Plug ein. Sobald es fertig ist, müssen Sie ein kleines USB-Ladegerät und dann den WiFi-fähigen Temperaturfühler anschließen. Sobald alles online ist, sollten Sie in Ihrem Home Assistant-Dashboard nachsehen und die neue Temperatur sehen können, die gemeldet wird.
Vielen Dank für all Ihre Hilfe und Unterstützung. Lasst ein Like da und besucht den Kanal unter https://www.youbue.com/misperry und seht, was wir alles für euch da haben. Stellen Sie sicher, dass Sie den Kanal abonnieren und mit Ihren Freunden teilen, um den Kanal zu unterstützen.
Empfohlen:
Smart B.A.L (verbundene Mailbox): 4 Schritte
Smart B.A.L (Connected Mailbox): Sie haben es satt, jedes Mal Ihre Mailbox zu überprüfen, während sich nichts darin befindet. Sie möchten wissen, ob Sie während einer Reise Ihre Post oder ein Paket erhalten. Es benachrichtigt Sie, wenn der Postbote eine Post oder eine Par
So reparieren Sie ein Plug-and-Play-Satellitenradio.: 6 Schritte
So reparieren Sie ein Plug-and-Play-Satellitenradio.: Bevor Sie beginnen, müssen Sie den besten Standort für die Montage des Satellitenradios auf Ihrem Armaturenbrett oder Ihrer Säule bestimmen, und Sie benötigen einen Sockeltreiber. Schraubendreher und Drahtschneider
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
DIY WiFi Smart Security Light mit Shelly
DIY WiFi Smart Security Light mit Shelly 1: Diese Anleitung wird sich mit der Erstellung eines DIY Smart Security Light mit dem Shelly 1 Smart Relais von Shelly befassen. Wenn Sie ein Sicherheitslicht intelligent machen, haben Sie viel mehr Kontrolle darüber, wann es aktiviert wird und wie lange es eingeschaltet bleibt. Es kann aktiv sein
So bauen Sie einen Smart Mirror mit Raspberry Pi 4: 10 Schritte
So bauen Sie einen Smart Mirror mit Raspberry Pi 4: In dieser Anleitung sehen wir, wie Sie einen Smartmirror aus recycelten Teilen wie einem Bilderrahmen, einem alten Monitor und einem Bilderglas bauen. Für die elektronischen Komponenten, die ich hier gekauft habe www.lcsc .com