Tartalomjegyzék:
- 1. lépés: A kód hozzáadása az ESP8266 -hoz
- 2. lépés: A TP-LINK Smart Plug beállítása
- 3. lépés: A Home Assistant beállítása
- 4. lépés: Utolsó lépések
Videó: WiFi engedélyezett hőmérséklet -szabályozott intelligens dugó: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ebben az utasításkészletben megvizsgáljuk, hogyan lehet felépíteni egy WiFi -kompatibilis hőmérsékleti szondát egy egyszerű ESP8266 segítségével a nehéz teherhez és egy DHT11 hőmérséklet/páratartalom érzékelővel. Az általam készített áramköri lapot is használni fogjuk, és jelenleg is kapható a csatorna tindie boltjában, ha vásárolni szeretne.
Kezdjük a szükséges anyagokkal:
ESP8266 WiFi modul
amzn.to/2pkGPoa
DHT11 érzékelő
amzn.to/2phwfhO
TP-Link intelligens dugó
amzn.to/2GElQUz
A teljes modult a csatorna tindie boltjában is átveheti:
www.tindie.com/products/misperry/wifi-enab…
Nézze meg a JLCPCB -t is a PCB gyártáshoz. Ők azok, akiket a NYÁK készítéséhez használtam:
Ingyenes szállítás az első rendelésnél és 2 dolláros NYÁK prototípus készítése a https://jlcpcb.com oldalon
1. lépés: A kód hozzáadása az ESP8266 -hoz
Most a következő kódot kell villogtatnunk az ESP8266 -ra. Ez a kód a következő github -lerakatban található:
Az alábbi kódban csak a felső néhány meghatározási részt kell beállítania:
MQTT szerver:
MQTT felhasználó:
MQTT jelszó:
MQTT_érzékelő_téma:
-Wi -Fi
Azt mondta: az a wifi hálózat, amelyhez csatlakozik
Jelszó: a WiFi jelszó.
Miután kitöltötte ezt az alábbi kódot, lefordíthatja és ellenőrizheti a hibákat, és ha nincs hiba, akkor villoghat az ESP8266 -ra.
/ * * Fájlnév: TempHumSensor.ino * * Alkalmazás: HomeAssistant Space Heater Thermostat * * Leírás: Ez a kód az ESP8266 WiFi kompatibilis arduino * kompatibilis eszközre vonatkozik. Ez továbbítja a DHT11 eszköz hőmérséklet -információit * a HASS kezelőfelületre feldolgozásra. * * Szerző: M. Sperry - https://www.youtube.com/misperry * Dátum: 03/ * Felülvizsgálat: 1.0 * * */
#befoglalni
#befoglalás #befoglalás #befoglalás #befoglalás #befoglalás
#define CON_TIME_OUT 20 // Időtúllépés a wifi -kapcsolat hiányában
#define MQTT_TIME_OUT 10 // Időtúllépés, amikor nincs kapcsolat az MQTT szerverrel
#define DHTPIN 0 // Tű, amely a DHT érzékelőhöz van csatlakoztatva
#define DHTTYPE DHT11 // Az érzékelő típusa a DHT11, megváltoztathatja DHT22 (AM2302), DHT21 (AM2301) értékre
#define mqtt_server "" // Írja be az MQTT szerver hozzáadását vagy IP -címét. Ebben a mezőben a DuckDNS címemet (a te neved.duckdns.org) használom
#define mqtt_user "" // írja be MQTT felhasználónevét #define mqtt_password "" // írja be jelszavát #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Írja be az MQTT témáját
// Wifi: SSID és jelszó
const char* ssid = ""; const char* jelszó = "";
DHT SEtup
DHT_Egységes dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
PubSubClient kliens (wifiClient);
// függvény a hőmérséklet és a páratartalom közzétételére
void publisData (float p_temperature) {// hozzon létre egy JSON objektumot // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: az adatokat karakterlánccá kell konvertálni; probléma merül fel úszók használatakor… // konvertálás fahrenheitre p_temperature = (p_temperature * 1.8) + 32; // konvertálás fahrenheit gyökérré ["hőmérséklet"] = (String) p_temperature; root.prettyPrintTo (soros); Serial.println ("");
char adatok [200];
root.printTo (adatok, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, adatok, igaz); }
// függvény hívva, amikor MQTT üzenet érkezett
érvénytelen visszahívás (char* p_topic, byte* p_payload, unsigned int p_length) {}
void reconnect () {
// Loop, amíg újra nem kapcsolódunk, amíg (! Client.connected ()) {Serial.print ("INFO: MQTT connection …"); // Csatlakozási kísérlet, ha (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("HIBA: nem sikerült, rc ="); Serial.print (kliens.állapot ()); Serial.println ("DEBUG: 5 másodperc múlva próbálja újra"); // Várjon 5 másodpercet a késleltetés újrapróbálása előtt (5000); }}}
void setup (void) {
Sorozat.kezdet (9600);
// Kezdjük azzal, hogy csatlakozunk egy WiFi hálózathoz
Sorozat.println (); Sorozat.println (); Serial.print ("Csatlakozás"); Soros.println (ssid);
WiFi.begin (ssid, jelszó);
while (WiFi.status ()! = WL_CONNECTED) {
késleltetés (800); Soros.nyomtatás ("."); }
Serial.println ("");
Serial.println ("WiFi csatlakoztatva"); Serial.println ("IP -cím:"); Serial.println (WiFi.localIP ()); // kezdeményezze az MQTT kapcsolati klienst.setServer (mqtt_server, 1883); client.setCallback (visszahívás);
// Inicializálja a DHT érzékelőt
dht.begin (); Serial.println ("DHT11 Unified Sensor Data");
// Hőmérséklet -érzékelő részleteinek nyomtatása
sensor_t szenzor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Hőmérséklet"); Serial.print ("Érzékelő:"); Serial.println (érzékelő.neve); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Egyedi azonosító:"); Serial.println (sensor.sensor_id); Serial.print ("Maximális érték:"); Serial.print (sensor.max_value); Soros.println (" *C"); Serial.print ("Min Value:"); Serial.print (szenzor.min_érték); Soros.println (" *C"); Serial.print ("Felbontás:"); Soros.nyomat (érzékelő.felbontás); Soros.println (" *C"); Serial.println ("------------------------------------"); // Nedvességérzékelő részleteinek nyomtatása. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Páratartalom"); Serial.print ("Érzékelő:"); Serial.println (érzékelő.neve); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Egyedi azonosító:"); Serial.println (sensor.sensor_id); Serial.print ("Maximális érték:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min Value:"); Serial.print (szenzor.min_érték); Serial.println ("%"); Serial.print ("Felbontás:"); Soros.nyomat (érzékelő.felbontás); Serial.println ("%"); Serial.println ("------------------------------------");
// Az érzékelő részletei alapján késleltetés beállítása az érzékelők leolvasása között
delayMS = sensor.min_delay / 1000; }
void loop (void) {
úszó hőmérséklet;
ha (! client.connected ())
{reonnect (); }
késleltetés (delayMS);
// Hőmérséklet -esemény lekérése és értékének kinyomtatása.
sensors_event_t esemény; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Hiba a hőmérséklet olvasásakor!"); hőmérséklet = 0,00; } else {hőmérséklet = esemény.hőmérséklet; Serial.print ("Hőmérséklet:"); Soros.nyomtatás (hőmérséklet); Soros.println (" *C"); } // közzététel az MQTT -nél publicData (hőmérséklet); }
2. lépés: A TP-LINK Smart Plug beállítása
Be kell állítania a TP-LINK intelligens csatlakozóját, vagy bármilyen intelligens csatlakozót az adott anyaghoz, a gyártó által javasolt módon.
Ügyeljen arra, hogy vegye figyelembe az eszköz MAC -címét. Ha az Ön készüléke olyan, mint az én TP-LINK eszközöm, akkor nem rögzíthet statikus IP-címet. Így konfigurálnia kell az útválasztót a DHCP -lefoglaláshoz. Ez elveszi az eszköz MAC -címét, és amikor az eszköz címet kér, az útválasztó minden alkalommal ugyanazt a címet adja meg.
Itt egy link a Linksys beállításához
www.linksys.com/us/support-article?article…
3. lépés: A Home Assistant beállítása
Most állítsa be az Otthoni asszisztenst. Ehhez a következő konfigurációkat kell hozzáadnia a configuration.yaml fájlhoz, amely az eszközön, amelyre telepítette, a /home/homeassistant/.homeassistant mappastruktúrában található.
Miután hozzáadta ezt az otthoni asszisztens konfigurációjához, újra kell indítania az otthoni asszisztens szoftvert, hogy a módosítások érvénybe lépjenek.
Továbbá a TP-LINK intelligens csatlakozót fogom használni a kapcsolóeszközhöz, és a definíció az alábbiakban található a konfigurációs fájlban. Az eszközhöz használt IP -címet az előző lépésben beállította a DHCP -foglaláshoz.
Ez a konfiguráció a következő github repóban is megtalálható:
mqtt: kapcsoló: - platform: tplink neve: Hálószobai fűtés hosztja: 192.168.2.11
1. érzékelő:
platform: mqtt state_topic: 'ha/bedroom_temp' név: Hálószoba hőmérséklet mértékegysége: '° F' value_template: '{{value_json.temperature}}'
automatizálás:
- álnév: _Temp hálószoba hőmérséklet Magas trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp fenti: 73
akció:
service: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- más néven: _Temp hálószoba hőmérséklet alacsony
trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp alább: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
4. lépés: Utolsó lépések
Az otthoni asszisztens konfigurációjával és az Arduino kód beállításával készen áll az egész rendszer aktiválására. Ezért helyezze a fűtő/ventilátor/hűtő dugóját az intelligens csatlakozóba, és dugja be az intelligens dugót. Ha kész, csatlakoztatnia kell egy kis USB -töltőt, majd a WiFi -kompatibilis hőmérséklet -érzékelőt. Miután minden online állapotban van, be kell néznie az otthoni asszisztens műszerfalába, és látni kell az új hőmérsékletet.
Nagyon köszönök minden segítséget és támogatást. hagyj egy lájkot, és látogass el a csatornára a https://www.youbue.com/misperry címen, és nézd meg, mi mindent kínálunk neked. Feltétlenül iratkozz fel és oszd meg barátaiddal, hogy segítsenek a csatornán.
Ajánlott:
WiFi engedélyezett mátrix lámpa: 6 lépés (képekkel)
WiFi engedélyezett mátrixlámpa: Ki ne szeretne lenyűgöző lámpát, amely képes animációkat megjeleníteni és szinkronizálni a ház többi lámpájával? Igaz, senki. Ezért készítettem egyedi RGB lámpát. A lámpa 256 egyedileg címezhető LED -ből áll, és az összes LED -et lehet szabályozni
Hőmérséklet leolvasása az LM35 hőmérséklet -érzékelő használatával Arduino Uno segítségével: 4 lépés
Hőmérséklet leolvasása az LM35 hőmérséklet -érzékelő használatával az Arduino Uno segítségével: Sziasztok, srácok, ebben az útmutatóban megtanuljuk, hogyan kell használni az LM35 -öt az Arduino -val. Az Lm35 egy hőmérséklet -érzékelő, amely -55 ° C és 150 ° C közötti hőmérséklet -értékeket képes leolvasni. Ez egy 3 kivezetésű eszköz, amely analóg feszültséget biztosít a hőmérséklettel arányosan. Hig
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: 5 lépés
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: Sziasztok srácok, a legtöbb projektben ESP8266 -ot használunk, és a legtöbb projektben ESP8266 -ot használunk webszerverként, így az adatok hozzáférhetők bármilyen eszköz wifi -n keresztül az ESP8266 által üzemeltetett webszerver elérésével, de az egyetlen probléma az, hogy működő útválasztóra van szükségünk
Intelligens dugó ESP8266: 6 lépés
Smart Plug ESP8266: Bienvenue sur cet article qui a pour but de vous montrer un projet de domotique que j'ai réalisé. Ayant toujours adoré les choses automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées. Celles-ci sont parancsnokok WiFi-n keresztül. La
ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással: 7 lépés (képekkel)
ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással: Még mindig úton van egy "közelgő projekt" befejezéséhez, "ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással" egy utasítás, amely bemutatja, hogyan adhatok hozzá NTP hőmérséklet -szondát, piezo b