Sadržaj:

Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom: 4 koraka
Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom: 4 koraka

Video: Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom: 4 koraka

Video: Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom: 4 koraka
Video: JOALI Maldives, ультра-роскошный островной курорт, 3700 долларов США за ночь (полный тур в 4K) 2024, Studeni
Anonim
Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom
Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom

U ovom setu uputa ćemo pogledati kako izgraditi temperaturnu sondu s omogućenim WiFi -om pomoću jednostavnog ESP8266 za teške terete i senzora temperature/vlažnosti DHT11. Također ćemo koristiti ploču koju sam stvorio i koja je sada na prodaju u trgovini indijskih tindie kanala ako želite kupiti.

Započnimo s popisom materijala koji će vam trebati:

ESP8266 WiFi modul

amzn.to/2pkGPoa

Senzor DHT11

amzn.to/2phwfhO

Pametni utikač TP-Link

amzn.to/2GElQUz

Također možete preuzeti cijeli modul u trgovini tindie za kanal:

www.tindie.com/products/misperry/wifi-enab…

Također provjerite JLCPCB za izradu PCB -a. Oni su oni koje sam koristio za izradu PCB -a:

Besplatna dostava za prvu narudžbu i 2 dolara za izradu prototipa PCB -a na

Korak 1: Dodavanje koda u ESP8266

Sada ćemo morati prenijeti sljedeći kod na ESP8266. Ovaj kôd možete pronaći na sljedećem spremištu github -a:

U donjem kodu morat ćete postaviti samo nekoliko gornjih odjeljaka definicija:

MQTT poslužitelj:

MQTT korisnik:

Lozinka za MQTT:

MQTT_senzor_topic:

-WiFi

Rečeno: rečeno o WiFi mreži s kojom se povezujete

Lozinka: lozinka za WiFi.

Nakon što ispunite ovaj kôd u nastavku, možete ga sastaviti i provjeriti ima li pogrešaka, a ako ima 0 pogrešaka, možete ga prenijeti na ESP8266.

/ * * Naziv datoteke: TempHumSensor.ino * * Primjena: Termostat grijača prostora za pomoć sa kućnim pomoćnikom * * Opis: Ovaj kôd je za arduino * kompatibilan uređaj s ESP8266 WiFi -jem. To će prenijeti podatke o temperaturi * uređaja DHT11 na sučelje HASS radi obrade. * * Autor: M. Sperry - https://www.youtube.com/misperry * Datum: 03/ * Revizija: 1.0 * * */

#uključi

#include #include #include #include #include

#define CON_TIME_OUT 20 // Vremensko ograničenje bez veze s WiFi mrežom

#define MQTT_TIME_OUT 10 // Istek vremena bez veze s poslužiteljem MQTT

#define DHTPIN 0 // Pin koji je spojen na DHT osjetnik

#define DHTTYPE DHT11 // Tip senzora je DHT11, možete ga promijeniti u DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Unesite zbrojnike ili IP poslužitelja MQTT poslužitelja. U ovom polju koristim svoju adresu DuckDNS (vaše ime.duckdns.org)

#define mqtt_user "" // unesite svoje korisničko ime za MQTT #define mqtt_password "" // unesite svoju lozinku #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Unesite temu za svoj MQTT

// Wifi: SSID i lozinka

const char* ssid = ""; const char* lozinka = "";

// Postavljanje DHT -a

DHT_Unificirani dht (DHTPIN, DHTTYPE); uint32_t odgodaMS;

WiFiClient wifiClient;

PubSubClient klijent (wifiClient);

// funkcija pozvana za objavljivanje temperature i vlažnosti

void publishedData (float p_temperature) {// stvoriti JSON objekt // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: podaci se moraju pretvoriti u niz; problem nastaje pri korištenju plovki … // pretvori u fahrenheit p_temperature = (p_temperature * 1.8) + 32; // pretvoriti u fahrenheitov korijen ["temperatura"] = (String) p_temperature; root.prettyPrintTo (serijski); Serial.println ("");

char podaci [200];

root.printTo (podaci, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, podaci, istina); }

// funkcija pozvana kada je stigla MQTT poruka

void povratni poziv (char* p_topic, byte* p_payload, unsigned int p_length) {}

void reconnect () {

// Petlja dok se ponovno ne povežemo while (! Client.connected ()) {Serial.print ("INFO: Pokušaj MQTT veze …"); // Pokušaj povezivanja if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: povezano"); } else {Serial.print ("POGREŠKA: nije uspjela, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: pokušajte ponovno za 5 sekundi"); // Pričekajte 5 sekundi prije ponovnog pokušaja odgode (5000); }}}

void setup (void) {

Serial.begin (9600);

// Počinjemo povezivanjem na WiFi mrežu

Serial.println (); Serial.println (); Serial.print ("Povezivanje s"); Serijski.println (ssid);

WiFi.započni (ssid, lozinka);

while (WiFi.status ()! = WL_CONNECTED) {{100} {101}

kašnjenje (800); Serial.print ("."); }

Serial.println ("");

Serial.println ("WiFi povezan"); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); // init MQTT veze client.setServer (mqtt_server, 1883); client.setCallback (povratni poziv);

// Inicijalizacija DHT osjetnika

dht.begin (); Serial.println ("DHT11 Unified Sensor Data");

// Ispis pojedinosti senzora temperature

sensor_t senzor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatura"); Serial.print ("Senzor:"); Serial.println (ime senzora); Serial.print ("Upravljački program Ver:"); Serial.println (senzorska.verzija); Serial.print ("Jedinstveni ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimalna vrijednost:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Minimalna vrijednost:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Rezolucija:"); Serijski.ispis (senzor.razlučivost); Serial.println (" *C"); Serial.println ("------------------------------------"); // Ispis detalja senzora vlažnosti. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Vlažnost"); Serial.print ("Senzor:"); Serial.println (ime senzora); Serial.print ("Upravljački program Ver:"); Serial.println (senzorska.verzija); Serial.print ("Jedinstveni ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimalna vrijednost:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Minimalna vrijednost:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Rezolucija:"); Serijski.ispis (senzor.razlučivost); Serial.println ("%"); Serial.println ("------------------------------------");

// Postavljanje kašnjenja između očitanja senzora na temelju pojedinosti senzora

delayMS = senzor.min_delay / 1000; }

void loop (void) {

temperatura plovka;

if (! client.connected ())

{ponovno spojiti (); }

kašnjenje (delayMS);

// Dobivanje temperaturnog događaja i ispis njegove vrijednosti.

sensors_event_t događaj; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Pogreška očitavanja temperature!"); temperatura = 0,00; } else {temperatura = događaj.temperatura; Serial.print ("Temperatura:"); Serijski.tisak (temperatura); Serial.println (" *C"); } // objavi u MQTT publishedData (temperatura); }

Korak 2: Postavljanje vašeg TP-LINK pametnog utikača

Postavljanje vašeg TP-LINK pametnog utikača
Postavljanje vašeg TP-LINK pametnog utikača

Morat ćete postaviti svoj pametni utikač TP-LINK ili bilo koji pametni utikač za tu materiju, onako kako preporučuje proizvođač.

Vodite računa o MAC adresi na uređaju. Ako je vaš uređaj poput mog TP-LINK uređaja, ne možete postaviti statičku IP adresu. Stoga ćete svoj ruter morati konfigurirati za DHCP rezervaciju. To će uzeti MAC adresu vašeg uređaja, a kada taj uređaj zatraži adresu, usmjerivač će mu svaki put dati istu adresu.

Evo veze kako to postaviti s Linksysom

www.linksys.com/us/support-article?article…

Korak 3: Postavljanje kućnog pomoćnika

Sada za postavljanje kućnog pomoćnika. Za to ćete morati dodati sljedeće konfiguracije u datoteku configuration.yaml koja se nalazi u /home/homeassistant/.homeassistant strukturi mapa na uređaju na koji ste je instalirali.

Kad dodate ovo u konfiguraciju kućnog pomoćnika, morat ćete ponovno pokrenuti softver kućnog pomoćnika da bi promjene stupile na snagu.

Također ću koristiti TP-LINK pametni utikač za sklopni uređaj, a definicija je dolje u konfiguracijskoj datoteci. IP adresa koja se koristi za uređaj je ona koju ste postavili za DHCP rezervaciju u prethodnom koraku.

Ova se konfiguracija može pronaći i na sljedećem github repo -u:

mqtt: switch: - platforma: tplink naziv: Bedroom Grijanje host: 192.168.2.11

senzor 1:

platforma: mqtt state_topic: 'ha/bedroom_temp' naziv: Temp. jedinice spavaće sobe_mjera: '° F' value_template: '{{value_json.temperature}}'

automatizacija:

- alias: _Temp Temperatura spavaće sobe Visoki okidač: - platforma: numeric_state entity_id: sensor. Bedroom_Temp iznad: 73

akcijski:

usluga: kućni pomoćnik.isključivanje_obave_identifikatora: prekidač. Grijač u spavaćoj sobi

- alias: _Temp Bedroom Temp Low

okidač: - platforma: numeric_state entity_id: sensor. Bedroom_Temp ispod: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Korak 4: Završni koraci

Image
Image
Završni koraci
Završni koraci
Završni koraci
Završni koraci

Sada s konfiguracijom kućnog pomoćnika i postavljenim Arduino kodom bit ćete spremni za aktiviranje cijelog sustava. Stoga, utikač grijača/ventilatora/hladnjaka umetnite u pametni utikač i uključite pametni utikač. Kad bude spreman, morat ćete priključiti mali USB punjač, a zatim i temperaturnu sondu s omogućenim WiFi -jem. Kad sve bude na mreži, trebali biste moći pogledati na nadzornoj ploči kućnog pomoćnika i vidjeti novu temperaturu koja se bilježi.

Hvala vam puno na vašoj pomoći i podršci. ostavite lajk i posjetite kanal na https://www.youbue.com/misperry i pogledajte što sve imamo za vas. Pretplatite se i podijelite sa svojim prijateljima kako biste pomogli kanalu.

Preporučeni: