Sadržaj:
- Korak 1: Dodavanje koda u ESP8266
- Korak 2: Postavljanje vašeg TP-LINK pametnog priključka
- Korak 3: Postavljanje kućnog pomoćnika
- Korak 4: Završni koraci
Video: Pametni utikač s kontroliranom temperaturom i Wi -Fi funkcijom: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U ovom setu uputa ćemo pogledati kako izgraditi temperaturnu sondu s omogućenim WiFi -om pomoću jednostavnog ESP8266 za teške terete i DHT11 osjetnika temperature/vlažnosti. Koristit ćemo i tiskanu ploču koju sam stvorio i koja se sada prodaje u prodavaonici tindie na kanalu 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 kod možete pronaći na sljedećem spremištu github -a:
U donjem kodu samo ćete morati postaviti prvih nekoliko odjeljaka definicija:
MQTT server:
MQTT korisnik:
MQTT lozinka:
MQTT_senzor_topic:
-WiFi
Rečeno: rečeno o WiFi mreži na koju se povezujete
Lozinka: lozinka za WiFi.
Nakon što ovo popunite u donjem kodu, tada možete kompajlirati i provjeriti ima li grešaka, a ako ima 0 grešaka, možete ih 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 sa ESP8266 WiFi -jem. Ovo će prenijeti informacije o temperaturi * uređaja DHT11 na HASS sučelje za obradu. * * Autor: M. Sperry - https://www.youtube.com/misperry * Datum: 03/ * Revizija: 1.0 * * */
#include
#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 MQTT poslužiteljem
#define DHTPIN 0 // Pin koji je spojen na DHT senzor
#define DHTTYPE DHT11 // Tip senzora je DHT11, možete ga promijeniti u DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Unesite sabirnik ili IP adresu vašeg MQTT servera. Ja koristim svoju DuckDNS adresu (vaše ime.duckdns.org) u ovom polju
#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 = "";
// DHT POSTAVLJANJE
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
PubSubClient klijent (wifiClient);
// funkcija pozvana za objavljivanje temperature i vlažnosti
void publishedData (float p_temperature) {// kreiranje JSON objekta // 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; // pretvara se u fahrenheit root ["temperature"] = (String) p_temperature; root.prettyPrintTo (serijski); Serial.println ("");
char podaci [200];
root.printTo (podaci, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, podaci, tačno); }
// funkcija pozvana kada je stigla MQTT poruka
void povratni poziv (char* p_topic, byte* p_payload, unsigned int p_length) {}
void reconnect () {
// Ponavljamo sve dok se ponovo 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 ("GREŠKA: neuspjelo, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: pokušajte ponovo 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 sa"); Serial.println (ssid);
WiFi.begin (ssid, lozinka);
while (WiFi.status ()! = WL_CONNECTED) {
kašnjenje (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("WiFi povezan"); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); // iniciranje MQTT veze client.setServer (mqtt_server, 1883); client.setCallback (povratni poziv);
// Inicijalizacija DHT senzora
dht.begin (); Serial.println ("DHT11 Unified Sensor Data");
// Ispis detalja senzora temperature
sensor_t senzor; dht.temperature (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("Temperatura"); Serial.print ("Senzor:"); Serial.println (ime senzora); Serial.print ("Verzija upravljačkog programa:"); Serial.println (sensor.version); 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:"); Serial.print (senzorsko razrješenje); Serial.println (" *C"); Serial.println ("------------------------------------"); // Ispis detalja senzora vlažnosti. dht.humidity (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("Vlažnost"); Serial.print ("Senzor:"); Serial.println (ime senzora); Serial.print ("Verzija upravljačkog programa:"); Serial.println (sensor.version); 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:"); Serial.print (senzorsko razrješenje); Serial.println ("%"); Serial.println ("------------------------------------");
// Podesite kašnjenje između očitanja senzora na osnovu detalja senzora
delayMS = sensor.min_delay / 1000; }
void loop (void) {
temperatura plovka;
if (! client.connected ())
{ponovo spojiti (); }
kašnjenje (delayMS);
// Dobijanje temperaturnog događaja i ispis njegove vrijednosti.
sensors_event_t događaj; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Greška pri očitavanju temperature!"); temperatura = 0,00; } else {temperatura = događaj.temperatura; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println (" *C"); } // objavi u MQTT publishedData (temperatura); }
Korak 2: Postavljanje vašeg TP-LINK pametnog priključka
Morat ćete postaviti svoj TP-LINK pametni utikač ili bilo koji pametni utikač za tu materiju, na način koji proizvođač preporučuje.
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 morati konfigurirati usmjerivač za DHCP rezervaciju. Ovo će uzeti MAC adresu vašeg uređaja i 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.
Kada završite s dodavanjem ovoga u konfiguraciju kućnog pomoćnika, morat ćete ponovo pokrenuti softver kućnog pomoćnika da bi promjene stupile na snagu.
Također ću koristiti TP-LINK pametni utikač za preklopni 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:
mqtt: switch: - platforma: tplink naziv: Bedroom Heater host: 192.168.2.11
senzor 1:
platforma: mqtt state_topic: 'ha/bedroom_temp' naziv: Temp. spavaće sobe_mjera_mjerenja: '° F' value_template: '{{value_json.temperature}}'
automatizacija:
- alias: _Temp Temp. spavaće sobe Visoki okidač: - platforma: numeric_state entity_id: sensor. Bedroom_Temp iznad: 73
akcija:
usluga: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp Temp. spavaće sobe niska
okidač: - platforma: numeric_state entity_id: sensor. Bedroom_Temp ispod: 73 akcija: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Korak 4: Završni koraci
Sada s konfiguracijom kućnog pomoćnika i postavljenim Arduino kodom bit ćete spremni za aktiviranje cijelog sistema. 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 izvještava.
Hvala vam puno na vašoj pomoći i podršci. ostavite lajk i posjetite kanal na https://www.youbue.com/misperry i pogledajte šta sve imamo za vas. Pretplatite se i podijelite sa svojim prijateljima kako biste pomogli kanalu.
Preporučuje se:
GoBabyGo: Napravite auto za vožnju kontroliranom ručicom: 10 koraka (sa slikama)
GoBabyGo: Napravite auto za vožnju kontrolisan džojstikom: GoBabyGo je globalna inicijativa koja je osnovana od strane profesora sa Univerziteta u Delawareu, a koja pokazuje laicima kako da modifikuju automobile sa igračkama kako bi ih mogla koristiti mala djeca sa ograničenom pokretljivošću. Projekt koji uključuje zamjenu nožne pedale za
Hardver i softver Hakirajte pametne uređaje, Tuya i Broadlink LED žarulju, Sonoff, BSD33 pametni utikač: 7 koraka
Hardverski i softverski hakirajte pametne uređaje, Tuya i Broadlink LED žarulju, Sonoff, BSD33 pametni utikač: U ovom uputstvu pokazat ću vam kako sam bljesnuo nekoliko pametnih uređaja sa vlastitim firmverom, tako da ih mogu kontrolirati putem MQTT -a putem svojih postavki Openhaba. Dodati ću novi uređaji kad sam ih hakirao. Naravno da postoje i druge softverske metode za fleširanje prilagođenih f
ESP8266 NodeMCU pristupna tačka (AP) za web poslužitelj s senzorom temperature DT11 i temperaturom i vlažnošću ispisa u pregledniku: 5 koraka
ESP8266 NodeMCU pristupna točka (AP) za web poslužitelj s senzorom temperature DT11 i temperaturom i vlažnošću ispisa u pregledniku: Zdravo momci, u većini projekata koristimo ESP8266, au većini projekata koristimo ESP8266 kao web poslužitelj pa se podacima može pristupiti bilo koji uređaj preko WiFi -a pristupajući web -poslužitelju na ESP8266, ali jedini problem je što nam treba radni usmjerivač za
Pametni utikač ESP8266: 6 koraka
Smart Plug ESP8266: Bienvenue sur cet article qui a pour, ali 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 commandees putem WiFi-a. La
Alexa Echo + ESP 8266 = Pametni utikač: 4 koraka (sa slikama)
Alexa Echo + ESP 8266 = Pametni utikač za napajanje: Ova instrukcija koristi ALEXA ECHO direktnu kontrolu ESP8266.Moj server samo podržava autorizaciju ESP8266 na Amazon serveru. Moj server ne pravi sigurnosnu kopiju vaših podataka.Glasujte za mene: D Hvala