Tartalomjegyzék:

WiFi engedélyezett hőmérséklet -szabályozott intelligens dugó: 4 lépés
WiFi engedélyezett hőmérséklet -szabályozott intelligens dugó: 4 lépés

Videó: WiFi engedélyezett hőmérséklet -szabályozott intelligens dugó: 4 lépés

Videó: WiFi engedélyezett hőmérséklet -szabályozott intelligens dugó: 4 lépés
Videó: 3000+ Common Spanish Words with Pronunciation 2024, December
Anonim
WiFi engedélyezett hőmérsékletvezérelt intelligens dugó
WiFi engedélyezett hőmérsékletvezérelt intelligens dugó

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

A TP-LINK Smart Plug beállítása
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

Image
Image
Utolsó lépések
Utolsó lépések
Utolsó lépések
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: