Sadržaj:
- Korak 1: Dodavanje koda u ESP8266
- Korak 2: Postavljanje vašeg TP-LINK pametnog utikača
- 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 promjena: 2024-01-30 09:37
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
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
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:
GoBabyGo: Napravite auto za vožnju kontroliranom ručicom: 10 koraka (sa slikama)
GoBabyGo: Napravite upravljački auto s upravljačkom palicom: Osnovan od strane profesora sa Sveučilišta u Delawareu, GoBabyGo je globalna inicijativa koja laicima pokazuje kako izmijeniti igračke na vozilima kako bi ih mogla koristiti mala djeca s ograničenom pokretljivošću. Projekt koji uključuje zamjenu nožne pedale za
Izgled željezničke pruge kontroliranom tipkovnicom V2.5 - PS/2 sučelje: 12 koraka
Izgled željezničke pruge kontroliranom tipkovnicom V2.5 | PS/2 sučelje: Koristeći Arduino mikrokontrolere, postoji mnogo načina za kontrolu rasporeda željezničkih modela. Tipkovnica ima veliku prednost jer ima puno tipki za dodavanje mnogo funkcija. Evo da vidimo kako možemo početi s jednostavnim rasporedom s lokomotivom i
Hardversko i softversko hakiranje pametnih uređaja, Tuya i Broadlink LED žarulja, Sonoff, BSD33 pametni utikač: 7 koraka
Hardversko i softversko hakiranje pametnih uređaja, Tuya i Broadlink LED žarulja, Sonoff, BSD33 pametni utikač: U ovom uputstvu pokazat ću vam kako sam bljesnuo nekoliko pametnih uređaja s 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 točka (AP) za web poslužitelj s senzorom temperature DT11 i temperaturom i vlagom 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: Pozdrav, momci, u većini projekata koristimo ESP8266, a u većini projekata koristimo ESP8266 kao web poslužitelj tako da se može pristupiti podacima na bilo koji uređaj preko WiFi -a pristupom web -poslužitelju na ESP8266, ali jedini problem je što nam treba radni usmjerivač za
Alexa Echo + ESP 8266 = Pametni utikač za napajanje: 4 koraka (sa slikama)
Alexa Echo + ESP 8266 = Pametni utikač napajanja: Ovaj instruktor koristi ALEXA ECHO izravnu kontrolu ESP8266.Moj poslužitelj samo podržava autorizaciju ESP8266 na Amazon poslužitelju. Moj poslužitelj ne izrađuje sigurnosnu kopiju vaših podataka.Glasujte za mene: D Hvala