Sisällysluettelo:
- Vaihe 1: Koodin lisääminen ESP8266: een
- Vaihe 2: Määritä TP-LINK Smart Plug
- Vaihe 3: Home Assistantin käyttöönotto
- Vaihe 4: Viimeiset vaiheet
Video: WiFi käytössä Lämpötilaohjattu älypistoke: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tässä ohjesarjassa tarkastelemme kuinka rakentaa WiFi -yhteensopiva lämpötila -anturi käyttämällä yksinkertaista ESP8266 -laitetta raskaaseen nostamiseen ja DHT11 -lämpötila-/kosteusanturia. Käytämme myös luomani piirilevyä, joka on myös myynnissä nyt kanavan tindie -myymälässä, jos haluat ostaa.
Aloitetaan tarvitsemasi materiaaliluettelon kanssa:
ESP8266 WiFi -moduuli
amzn.to/2pkGPoa
DHT11 -anturi
amzn.to/2phwfhO
TP-Link Smart Plug
amzn.to/2GElQUz
Voit myös noutaa koko moduulin kanavan tindie -myymälästä:
www.tindie.com/products/misperry/wifi-enab…
Katso myös JLCPCB PCB Fabriction. He ovat niitä, joita käytin piirilevyn valmistamiseen:
Ilmainen toimitus ensimmäisen tilauksen yhteydessä ja 2 dollarin PCB -prototyyppien luominen osoitteessa
Vaihe 1: Koodin lisääminen ESP8266: een
Meidän on nyt vilkuttava seuraava koodi ESP8266: een. Tämä koodi löytyy seuraavasta github -arkistosta:
Alla olevassa koodissa sinun on määritettävä vain muutama tärkein määrittelyosa:
MQTT -palvelin:
MQTT -käyttäjä:
MQTT -salasana:
MQTT_anturi_aihe:
-Wi -Fi
Sanoi: sanottu wifi -verkosta, johon muodostat yhteyden
Salasana: WiFi -salasana.
Kun olet täyttänyt tämän alla olevassa koodissa, voit kääntää ja tarkistaa virheet ja jos virheitä ei ole 0, voit vilkaista sen ESP8266: een.
/ * * Tiedostonimi: TempHumSensor.ino * * Sovellus: HomeAssistant Space Heater Thermostat * * Kuvaus: Tämä koodi koskee ESP8266 WiFi -yhteensopivaa arduino * -yhteensopivaa laitetta. Tämä välittää DHT11 -laitteen lämpötilatiedot * HASS -käyttöliittymään käsiteltäväksi. * * Tekijä: M. Sperry - https://www.youtube.com/misperry * Päivämäärä: 03/ * Versio: 1.0 * * */
#sisältää
#Sisällytä #Sisällytä #Sisällytä #Sisällytä #Sisällytä
#define CON_TIME_OUT 20 // Wi -Fi -yhteyden puuttumisen aikakatkaisu
#define MQTT_TIME_OUT 10 // Aikakatkaisu, kun yhteyttä MQTT -palvelimeen ei ole
#define DHTPIN 0 // DHT -anturiin liitetty nasta
#define DHTTYPE DHT11 // Anturin tyyppi on DHT11, voit muuttaa sen DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Anna MQTT -palvelimen lisäykset tai IP -osoite. Käytän DuckDNS -osoitetta (nimesi.duckdns.org) tällä alalla
#define mqtt_user "" // kirjoita MQTT -käyttäjätunnuksesi #define mqtt_password "" // syötä salasanasi #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Anna aihe MQTT: lle
// Wifi: SSID ja salasana
const char* ssid = ""; const char* salasana = "";
// DHT SEtup
DHT_Yhdistetty dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
PubSubClient -asiakas (wifiClient);
// toimintoa kutsutaan julkaisemaan lämpötila ja kosteus
void publisData (float p_temperature) {// luo JSON -objekti // asiakirja: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: tiedot on muunnettava merkkijonoksi; ongelma ilmenee käytettäessä kellukkeita… // muuntaa fahrenheitiksi p_temperature = (p_temperature * 1.8) + 32; // muuntaa fahrenheit -juureksi ["lämpötila"] = (String) p_temperature; root.prettyPrintTo (sarja); Serial.println ("");
char -tiedot [200];
root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, true); }
// -toiminto kutsuttiin, kun MQTT -viesti saapui
mitätön takaisinsoitto (char* p_topic, tavu* p_payload, unsigned int p_length) {}
void reconnect () {
// Kierrä kunnes muodostamme yhteyden uudelleen (! Client.connected ()) {Serial.print ("INFO: Yritetään MQTT -yhteyttä…"); // Yritä muodostaa yhteys, jos (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("ERROR: failed, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: yritä uudelleen 5 sekunnin kuluttua"); // Odota 5 sekuntia ennen viiveen uudelleen yrittämistä (5000); }}}
void setup (void) {
Sarja.alku (9600);
// Aloitamme muodostamalla yhteyden WiFi -verkkoon
Sarja.println (); Sarja.println (); Serial.print ("Yhdistäminen"); Sarja.println (ssid);
WiFi.begin (ssid, salasana);
while (WiFi.status ()! = WL_CONNECTED) {
viive (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("WiFi -yhteys"); Serial.println ("IP -osoite:"); Serial.println (WiFi.localIP ()); // aloita MQTT -yhteys client.setServer (mqtt_server, 1883); client.setCallback (takaisinsoitto);
// Alusta DHT -anturi
dht.begin (); Serial.println ("DHT11 Unified Sensor Data");
// Tulosta lämpötila -anturin tiedot
sensor_t anturi; dht. lämpötila (). getSensor (& anturi); Serial.println ("------------------------------------"); Serial.println ("Lämpötila"); Serial.print ("Sensor:"); Serial.println (anturin nimi); Serial.print ("Driver Ver:"); Serial.println (anturi.versio); Serial.print ("Ainutlaatuinen tunnus:"); Serial.println (sensor.sensor_id); Serial.print ("Suurin arvo:"); Serial.print (sensor.max_value); Sarja.println (" *C"); Serial.print ("Min. Arvo:"); Serial.print (sensor.min_value); Sarja.println (" *C"); Serial.print ("Resoluutio:"); Sarjajälki (anturin resoluutio); Sarja.println (" *C"); Serial.println ("------------------------------------"); // Tulosta kosteusanturin tiedot. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Kosteus"); Serial.print ("Sensor:"); Serial.println (anturin nimi); Serial.print ("Driver Ver:"); Serial.println (anturi.versio); Serial.print ("Ainutlaatuinen tunnus:"); Serial.println (sensor.sensor_id); Serial.print ("Suurin arvo:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min. Arvo:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resoluutio:"); Sarjajälki (anturin resoluutio); Serial.println ("%"); Serial.println ("------------------------------------");
// Aseta viive anturin lukemien välillä anturin tietojen perusteella
delay MS = anturi.min_viive / 1000; }
void loop (void) {
kellukkeen lämpötila;
jos (! client.connected ())
{yhdistä uudelleen (); }
viive (delayMS);
// Hae lämpötilatapahtuma ja tulosta sen arvo.
sensor_event_t tapahtuma; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Virhe lämpötilan lukemisessa!"); lämpötila = 0,00; } else {lämpötila = tapahtuma.lämpötila; Serial.print ("Lämpötila:"); Sarjajälki (lämpötila); Sarja.println (" *C"); } // julkaista MQTT: lle publicData (lämpötila); }
Vaihe 2: Määritä TP-LINK Smart Plug
Sinun on määritettävä TP-LINK-älypistokkeesi tai mikä tahansa älypistoke kyseiselle materiaalille valmistajan suosittelemalla tavalla.
Muista huomioida laitteen MAC -osoite. Jos laitteesi on kuin TP-LINK-laitteeni, et voi tallentaa staattista IP-osoitetta. Sinun on siis määritettävä reitittimesi DHCP -varausta varten. Tämä ottaa laitteesi MAC -osoitteen ja kun laite pyytää osoitetta, reititin antaa sille aina saman osoitteen.
Tässä on linkki tämän määrittämiseen Linksysin kanssa
www.linksys.com/us/support-article?article…
Vaihe 3: Home Assistantin käyttöönotto
Asenna nyt Home Assistant. Tätä varten sinun on lisättävä seuraavat kokoonpanot config.yaml -tiedostoon, joka sijaitsee /home/homeassistant/.homeassistant -kansiorakenteessa laitteessa, johon olet asentanut sen.
Kun olet lisännyt tämän kodin avustajan kokoonpanoon, sinun on käynnistettävä kotiapuohjelmisto uudelleen, jotta muutokset tulevat voimaan.
Käytän myös TP-LINK-älypistoketta kytkentälaitteeseen ja määritelmä on alla määritystiedostossa. Laitteessa käytetty IP -osoite on se, jonka olet määrittänyt DHCP -varaukselle edellisessä vaiheessa.
Tämä kokoonpano löytyy myös seuraavasta github -reposta:
mqtt: kytkin: - alusta: tplinkin nimi: Makuuhuoneen lämmittimen isäntä: 192.168.2.11
anturi 1:
platform: mqtt state_topic: 'ha/bedroom_temp' name: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'
automaatio:
- alias: _Temp Makuuhuoneen lämpötila Korkea liipaisin: - alusta: numeerinen_tilayksikkö_tunnistin: Makuuhuone_Temp yllä: 73
toiminta:
service: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp makuuhuoneen lämpötila matala
trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp alla: 73 toiminto: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Vaihe 4: Viimeiset vaiheet
Nyt kun kotiassistentin kokoonpano ja Arduino -koodi on määritetty, olet valmis aktivoimaan koko järjestelmän. Aseta lämmittimen/tuulettimen/jäähdyttimen pistoke älypistokkeeseen ja kytke älypistoke pistorasiaan. Kun se on valmis, sinun on kytkettävä pieni USB -laturi ja sitten WiFi -yhteensopiva lämpötila -anturi. Kun kaikki on online -tilassa, sinun pitäisi voida katsoa kotiassistentin kojelautaan ja nähdä raportoitava uusi lämpötila.
Kiitos paljon kaikesta avusta ja tuesta. muista jättää tykkäys ja tule käymään kanavalla osoitteessa https://www.youbue.com/misperry ja katsomaan mitä kaikkea meillä on sinulle. Varmista, että tilaat ja jaat ystäviesi kanssa auttaaksesi kanavaa.
Suositeltava:
DIY Lämpötilaohjattu kammiorasia Peltier TEC -moduulilla: 4 vaihetta (kuvilla)
DIY Lämpötilaohjattu kammiorasia Peltier TEC -moduulilla: Olen koonnut lämpötilakontrolloidun kammion laatikon pienten elektronisten levyjen testaamiseen. Tässä opetusohjelmassa olen jakanut projektini, joka sisältää lähdetiedostot ja linkin Gerbers -tiedostoihin PCB: n valmistamiseksi. Olen käyttänyt vain halpoja yleisesti saatavia materiaaleja
Lämpötilaohjattu järjestelmä L293D: llä: 19 vaihetta (kuvien kanssa)
Lämpötilaohjattu järjestelmä L293D: llä: Lämpötilaherkkä järjestelmä on laite, joka ohjaa ja ylläpitää kohteen lämpötilaa tietyllä ympäristöön liittyvällä alueella. Tämäntyyppisiä ohjattavia järjestelmiä käytetään pääasiassa ilmastointilaitteissa
Lämpötilaohjattu tuuletin!: 4 vaihetta
Lämpötilaohjattu tuuletin!: Asuminen trooppisessa maassa, kuten Singaporessa, on turhauttavaa hikoilla koko päivän ja samalla sinun on keskityttävä opiskeluun tai työskentelyyn tällaisessa tukossa ympäristössä. Jotta ilma virtaa ja jäähtyy, keksin ajatuksen lämpötilasta
Lämpötilaohjattu Tupperware: 4 vaihetta
Lämpötilaohjattu Tupperware: Halusimme saada jäähdytetyn säiliön erilaisten tavaroiden säilyttämiseen. Päätimme käyttää MSP432: ta järjestelmän virran ja ohjauksen tarjoamiseen sen monipuolisuuden vuoksi. Käytimme transistoria, jotta voimme käyttää PWM: ää tuulettimen virran saamiseen. Jos sinulla on 3-johtiminen PWM-tuuletin
Lämpötilaohjattu rokote- ja insuliinijäähdytin: 9 vaihetta (kuvilla)
Lämpötilaohjattu rokote- ja insuliinijäähdytin: viileänä pitäminen säästää ihmishenkiä Kehitysmaissa rokotteet ovat eturintamassa vaarallisia sairauksia, kuten ebolaa, influenssaa, koleraa, tuberkuloosia ja denguea vastaan. Rokotteiden ja muiden hengenpelastavien materiaalien kuljettaminen