Мазмуну:

WiFi иштетилген Температураны көзөмөлдөгөн Smart Plug: 4 кадам
WiFi иштетилген Температураны көзөмөлдөгөн Smart Plug: 4 кадам

Video: WiFi иштетилген Температураны көзөмөлдөгөн Smart Plug: 4 кадам

Video: WiFi иштетилген Температураны көзөмөлдөгөн Smart Plug: 4 кадам
Video: Компьютерная диагностика автомобиля (ЗАЗ, Таврия, Славута) 2024, Июль
Anonim
WiFi иштетилген Температураны башкаруучу Smart Plug
WiFi иштетилген Температураны башкаруучу Smart Plug

Бул нускамада биз оор жүктү көтөрүү үчүн жөнөкөй ESP8266 жана DHT11 температура/нымдуулук сенсорун колдонуу менен WiFi иштетилген температура зондун кантип курууну карап чыгабыз. Эгерде мен сатып алууну кааласаңыз, мен түзгөн жана азыр каналдын tindie дүкөнүндө сатылып жаткан схеманы дагы колдонобуз.

Келгиле, сизге керектүү болгон материалдардын эсеби менен баштайлы:

ESP8266 WiFi модулу

amzn.to/2pkGPoa

DHT11 сенсор

amzn.to/2phwfhO

TP-Link Smart Plug

amzn.to/2GElQUz

Ошондой эле каналдын tindie дүкөнүнөн бүт модулду алып кетсеңиз болот:

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

Ошондой эле текшерүү JLCPCB үчүн PCB Fabriction. Алар мен ПХБ жасоо үчүн колдонулган адамдар:

Https://jlcpcb.com сайтында биринчи тартипте акысыз жеткирүү жана $ 2 PCB прототиптөөсү

1 -кадам: ESP8266 кодун кошуу

Эми биз ESP8266га төмөнкү кодду жаркыратышыбыз керек. Бул кодду төмөнкү github репозиторийинен тапса болот:

Төмөндөгү коддо сиз эң жогорку бир нече аныктама бөлүмдөрүн орнотушуңуз керек болот:

MQTT Server:

MQTT Колдонуучу:

MQTT сырсөзү:

MQTT_sensor_topic:

-WiFi

Айтты: сиз туташып жаткан wifi тармагы жөнүндө

Сырсөз: WiFi сырсөзү.

Төмөндөгү кодду толтургандан кийин, каталарды текшерип, 0 каталар болсо, аны ESP8266га жаркырата аласыз.

/ * * Файлдын аты: TempHumSensor.ino * * Колдонмо: HomeAssistant Space Heater Thermostat * * Description: Бул код ESP8266 WiFi иштетилген arduino * шайманы үчүн. Бул DHT11 түзмөгүнүн температурасы жөнүндө маалыматты * иштетүү үчүн HASS фронтуна өткөрүп берет. * * Автор: М. Сперри - https://www.youtube.com/misperry * Date: 03/ * Revision: 1.0 * * */

#кошуу

#кошуу #кошуу #кошуу #кошуу #кошуу

#аныктоо CON_TIME_OUT 20 // wifiга туташуу убактысы бүткөн жок

#define MQTT_TIME_OUT 10 // MQTT серверине туташуу жок

#Define DHTPIN 0 // DHT сенсоруна туташкан пин

#Define DHTTYPE DHT11 // Сенсордун түрү DHT11, аны DHT22 (AM2302), DHT21 (AM2301) кылып өзгөртө аласыз

#define mqtt_server "" // MQTT серверинин кошуусун же IPиңизди киргизиңиз. Мен бул талаада DuckDNS дарегимди (yourname.duckdns.org) колдоном

#define mqtt_user "" // MQTT колдонуучу атыңызды киргизиңиз #define mqtt_password "" // сырсөзүңүздү киргизиңиз #dequine MQTT_SENSOR_TOPIC "ha/bedroom_temp" // MQTT үчүн теманы киргизиңиз.

// Wifi: SSID жана сырсөз

const char* ssid = ""; const char* password = "";

// DHT Setup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient кардары (wifiClient);

// температура менен нымдуулукту жарыялоого чакырылган функция

void publishData (float p_temperature) {// JSON объектисин түзүү // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // ИНФО: маалыматтар сапка айландырылышы керек; сүзгүчтөрдү колдонууда көйгөй жаралат… // fahrenheitке которуу p_temperature = (p_temperature * 1.8) + 32; // фаренгейт тамырына айландыруу ["температура] = (Стринг) p_temperature; root.prettyPrintTo (Сериялык); Serial.println ("");

char маалыматтары [200];

root.printTo (маалыматтар, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, маалыматтар, чындык); }

// MQTT билдирүүсү келгенде чакырылган функция

жараксыз кайра чалуу (char* p_topic, байт* p_payload, int p_length белгисиз) {}

жараксыз кайра туташуу () {

// (! Client.connected ()) {Serial.print ("INFO: MQTT туташуусуна аракет кылууда…") кайра туташканга чейин цикл. // Кошулуу аракети эгерде (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: туташкан"); } else {Serial.print ("ERROR: fail, rc ="); Serial.print (client.state ()); Serial.println ("Мүчүлүштүктөрдү жоюу: 5 секунддан кийин кайра аракет кылыңыз"); // 5 секунд күтө туруңуз, кечигүү (5000); }}}

жараксыз орнотуу (жараксыз) {

Serial.begin (9600);

// Биз WiFi тармагына туташуудан баштайбыз

Serial.println (); Serial.println (); Serial.print ("Туташууда"); Serial.println (ssid);

WiFi.begin (ssid, сырсөз);

while (WiFi.status ()! = WL_CONNECTED) {

кечигүү (800); Serial.print ("."); }

Serial.println ("");

Serial.println ("WiFi туташты"); Serial.println ("IP дареги:"); Serial.println (WiFi.localIP ()); // init MQTT байланышы client.setServer (mqtt_server, 1883); client.setCallback (кайра чалуу);

// DHT сенсорун баштоо

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

// Температура сенсорунун чоо -жайын басып чыгаруу

sensor_t сенсор; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Температура"); Serial.print ("Сенсор:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Unique ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Минималдуу маани:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Токтом:"); Serial.print (сенсор.чечим); Serial.println (" *C"); Serial.println ("------------------------------------"); // Нымдуулук сенсорунун чоо -жайын басып чыгаруу. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Нымдуулук"); Serial.print ("Сенсор:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Unique ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Минимал:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Токтом:"); Serial.print (сенсор.чечим); Serial.println ("%"); Serial.println ("------------------------------------");

// Сенсордун деталдарынын негизинде сенсорлордун окуусунун ортосундагы кечигүүнү коюңуз

delayMS = sensor.min_delay / 1000; }

боштук цикл (жараксыз) {

сүзүү температурасы;

if (! client.connected ())

{кайра туташуу (); }

кечигүү (delayMS);

// Температура окуясын алыңыз жана анын маанисин басып чыгарыңыз.

sensors_event_t окуясы; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Температураны окуу катасы!"); температура = 0,00; } башка {температура = event.temperature; Serial.print ("Температура:"); Serial.print (температура); Serial.println (" *C"); } // MQTT -ге жарыялоо publishData (температура); }

2-кадам: TP-LINK Smart Plug орнотуу

Сиздин TP-LINK Smart Plug орнотуу
Сиздин TP-LINK Smart Plug орнотуу

Сиз TP-LINK акылдуу сайгычыңызды же ал үчүн акылдуу сайгычты өндүрүүчү сунуштаган жол менен орнотушуңуз керек.

Түзмөктөгү MAC дарегин эске алууну унутпаңыз. Эгерде сиздин түзмөгүңүз менин TP-LINK түзмөгүмө окшош болсо, анда сиз статикалык IP дарегин көрө албайсыз. Ошентип, роутериңизди DHCP резервдөө үчүн конфигурациялашыңыз керек болот. Бул сиздин түзмөгүңүздүн MAC дарегин алат жана ал түзмөк даректи сураганда, роутер ар дайым ошол даректи берет.

Бул жерде Linksys менен муну кантип орнотуу керектиги жөнүндө шилтеме бар

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

3 -кадам: Үй жардамчысын орнотуу

Эми Үй жардамчысын орнотуу. Бул үчүн сиз аны орноткон түзмөктө /home/homeassistant/.homeassistant папкасынын структурасында жайгашкан configuration.yaml файлына төмөнкү конфигурацияларды кошушуңуз керек болот.

Муну үйдүн жардамчысынын конфигурациясына кошуп бүткөндөн кийин, өзгөрүүлөр таасир этиши үчүн, үйдүн жардамчысы программасын кайра баштооңуз керек болот.

Ошондой эле мен TP-LINK акылдуу сайгычын которуштуруучу түзмөктө колдоном жана аныктамасы конфигурация файлында төмөндө. Түзмөк үчүн колдонулган IP дареги мурунку кадамда DHCP ээлөө үчүн койгон адрес.

Бул конфигурацияны дагы төмөнкү github репоунан тапса болот:

mqtt: switch: - платформа: tplink аты: Bedroom Heater хост: 192.168.2.11

сенсор 1:

платформа: mqtt state_topic: 'ha/bedroom_temp' аты: Уктоочу бөлмө температурасынын бирдиги_ 'өлчөө:' ° F 'маани_темплети:' {{value_json.temperature}} '

автоматташтыруу:

- каймана аты: _Temp Bedroom Temp High trigger: - платформа: numeric_state entity_id: sensor. Bedroom_Temp жогоруда: 73

аракет:

кызмат: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- каймана аты: _Temp Bedroom Temp Low

триггер: - платформа: numeric_state entity_id: sensor. Bedroom_Temp төмөндө: 73 аракет: кызмат: homeassistant.turn_on entity_id: switch. Bedroom_Heater

4 -кадам: Акыркы кадамдар

Image
Image
Акыркы кадамдар
Акыркы кадамдар
Акыркы кадамдар
Акыркы кадамдар

Эми сиздин үй жардамчыңыздын конфигурациясы жана Arduino кодуңуз орнотулганда, сиз бүт системаны активдештирүүгө даяр болосуз. Ошентип, жылыткычты/желдеткичти/муздатуучу сайгычты акылдуу сайгычка салып, акылдуу сайгычка сайыңыз. Ал даяр болгондон кийин кичинекей USB кубаттагычын, анан WiFi иштетилген Температура иликтөөчүсүн сайышыңыз керек болот. Бардыгы онлайн болгондон кийин, сиз үйүңүздүн жардамчысынын тактасынан карап, жаңы температуранын кабарланганын көрө алышыңыз керек.

Бардык жардамыңыз жана колдоонуз үчүн чоң рахмат. жактыруу калтырып, https://www.youbue.com/misperry дарегине келип, бизде эмне бар экенин көрүңүз. Жазылууну унутпаңыз жана каналга жардам берүү үчүн досторуңуз менен бөлүшүңүз.

Сунушталууда: