Съдържание:

Интелигентен щепсел с активиран WiFi, 4 стъпки
Интелигентен щепсел с активиран WiFi, 4 стъпки

Видео: Интелигентен щепсел с активиран WiFi, 4 стъпки

Видео: Интелигентен щепсел с активиран WiFi, 4 стъпки
Видео: DISTRIBUTE WIFI MONITORING PERSON 4G surveillance camera 2024, Юли
Anonim
Интелигентен щепсел с контролирана температура WiFi
Интелигентен щепсел с контролирана температура WiFi

В този набор от инструкции ще разгледаме как да изградим температурна сонда с активиран WiFi с помощта на обикновен ESP8266 за тежко повдигане и DHT11 сензор за температура/влажност. Също така ще използваме печатната платка, която създадох и също се продава сега в магазина на tindie на канала, ако искате да закупите.

Нека започнем с набора от материали, от които ще се нуждаете:

ESP8266 WiFi модул

amzn.to/2pkGPoa

Сензор DHT11

amzn.to/2phwfhO

Интелигентен щепсел TP-Link

amzn.to/2GElQUz

Можете също да вземете целия модул в магазина на tindie за канала:

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

Вижте също JLCPCB за изработка на печатни платки. Те са тези, които използвах за направата на печатни платки:

Безплатна доставка при първа поръчка и $ 2 PCB прототипиране на

Стъпка 1: Добавяне на кода към ESP8266

Сега ще трябва да прехвърлим следния код на ESP8266. Този код може да бъде намерен в следното хранилище на github:

В кода по -долу ще трябва само да настроите първите няколко раздели за дефиниция:

MQTT сървър:

Потребител на MQTT:

Парола за MQTT:

MQTT_sensor_topic:

-WiFi

Каза: казаното за wifi мрежата, към която се свързвате

Парола: паролата за WiFi.

След като попълните това в кода по -долу, можете да го компилирате и да проверите за грешки и ако 0 грешки можете да го прехвърлите на ESP8266.

/ * * Име на файла: TempHumSensor.ino * * Приложение: Термостат за отопление на космоса HomeAssistant * * Описание: Този код е за съвместимо с arduino * устройство с ESP8266 WiFi. Това ще препредава информацията за температурата * на устройството DHT11 към интерфейса на HASS за обработка. * * Автор: M. Sperry - https://www.youtube.com/misperry * Дата: 03/ * Ревизия: 1.0 * * */

#включва

#включи #включи #включи #включи #включи

#define 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 "" // Въведете добавката или IP адреса на вашия MQTT сървър. Използвам моя DuckDNS адрес (yourname.duckdns.org) в това поле

#define mqtt_user "" // въведете вашето потребителско име за MQTT #define mqtt_password "" // въведете паролата си #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Въведете тема за вашия MQTT

// Wifi: SSID и парола

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

// DHT НАСТРОЙКА

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t забавянеMS;

WiFiClient wifiClient;

PubSubClient клиент (wifiClient);

// функция, извикана да публикува температурата и влажността

void publishedData (float p_temperature) {// създаване на JSON обект // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // ИНФОРМАЦИЯ: данните трябва да бъдат преобразувани в низ; възниква проблем при използване на поплавъци … // преобразуване във Фаренхайт 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) {}

void повторно свързване () {

// Цикъл, докато не се свържем отново докато (! Client.connected ()) {Serial.print ("INFO: Опит за MQTT връзка …"); // Опит за свързване if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: свързано"); } else {Serial.print ("ГРЕШКА: неуспешна, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: опитайте отново след 5 секунди"); // Изчакайте 5 секунди, преди да опитате отново забавяне (5000); }}}

void setup (void) {

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 ()); // инициализираме връзката MQTT client.setServer (mqtt_server, 1883); client.setCallback (обратно повикване);

// Инициализиране на DHT сензора

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

// Отпечатване на подробности за сензора за температура

sensor_t сензор; dht.temperature (). getSensor (& сензор); Serial.println ("------------------------------------"); Serial.println ("Температура"); Serial.print ("Сензор:"); Serial.println (сензор.име); Serial.print ("Driver Ver:"); Serial.println (сензор.версия); Serial.print ("Уникален идентификатор:"); Serial.println (sensor.sensor_id); Serial.print ("Максимална стойност:"); 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 (& сензор); Serial.println ("------------------------------------"); Serial.println ("Влажност"); Serial.print ("Сензор:"); Serial.println (сензор.име); Serial.print ("Driver Ver:"); Serial.println (сензор.версия); Serial.print ("Уникален идентификатор:"); Serial.println (sensor.sensor_id); Serial.print ("Максимална стойност:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Минимална стойност:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Резолюция:"); Serial.print (сензор.разделителна способност); Serial.println ("%"); Serial.println ("------------------------------------");

// Задайте закъснение между показанията на сензора въз основа на подробности за сензора

забавянеMS = сензор.min_delay / 1000; }

void loop (void) {

плаваща температура;

if (! client.connected ())

{повторно свързване (); }

забавяне (delayMS);

// Вземете температурно събитие и отпечатайте неговата стойност.

sensors_event_t събитие; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Грешка при четене на температура!"); температура = 0,00; } else {температура = event.temperature; Serial.print ("Температура:"); Serial.print (температура); Serial.println (" *C"); } // публикуване в MQTT publishedData (температура); }

Стъпка 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 Assistant

Сега да настроите Home Assistant. За това ще трябва да добавите следните конфигурации към файла configuration.yaml, който се намира в /home/homeassistant/.homeassistant структурата на папките на устройството, на което сте го инсталирали.

След като приключите с добавянето на това към конфигурацията на вашия домашен асистент, ще трябва да рестартирате софтуера на домашния си помощник, за да влязат в сила промените.

Също така ще използвам интелигентния щепсел TP-LINK за превключващото устройство и определението е по-долу в конфигурационния файл. IP адресът, който се използва за устройството, е този, който сте настроили за DHCP резервацията в предишната стъпка.

Тази конфигурация може да бъде намерена и на следното github репо:

mqtt: превключвател: - платформа: име на tplink: Нагревател за спалня хост: 192.168.2.11

сензор 1:

платформа: mqtt state_topic: 'ha/bedroom_temp' име: Температура на спалня единица_измерване: '° F' value_template: '{{value_json.temperature}}'

автоматизация:

- псевдоним: _Temp Температура на спалня Високо задействане: - платформа: 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 действие: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Стъпка 4: Последни стъпки

Image
Image
Заключителни стъпки
Заключителни стъпки
Заключителни стъпки
Заключителни стъпки

Сега с конфигурацията на вашия домашен асистент и с кода на Arduino ще бъдете готови да активирате цялата система. По този начин поставете вашия нагревател/вентилатор/охладител в интелигентния щепсел и включете интелигентния щепсел. След като е готов, ще трябва да включите малко USB зарядно устройство и след това сонда за температура с активирана WiFi. След като всичко е онлайн, трябва да можете да потърсите в таблото за управление на домашния си асистент и да видите отчитането на новата температура.

Благодаря ви много за цялата ви помощ и подкрепа. не забравяйте да оставите харесване и да посетите канала на https://www.youbue.com/misperry и да видите какво имаме за вас. Абонирайте се и споделете с приятелите си, за да помогнете на канала.

Препоръчано: