Мазмұны:
- 1 -қадам: ESP8266 кодын қосу
- 2-қадам: TP-LINK ақылды штепсельін орнату
- 3 -қадам: Үй көмекшісін орнату
- 4 -қадам: Қорытынды қадамдар
Бейне: WiFi қосылған температуралық басқарылатын ақылды штепсель: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл нұсқаулықта біз ауыртпалықты көтеру үшін қарапайым ESP8266 және DHT11 температура/ылғалдылық сенсоры көмегімен WiFi қосылған температуралық зондты қалай құруға болатынын қарастырамыз. Біз сондай -ақ мен жасаған тақтаны қолданатын боламыз және егер сіз сатып алғыңыз келсе, қазір теледидардың дүкенінде сатылады.
Сізге қажет материалдардың есебінен бастайық:
ESP8266 WiFi модулі
amzn.to/2pkGPoa
DHT11 сенсоры
amzn.to/2phwfhO
TP-Link ақылды штепселі
amzn.to/2GElQUz
Сіз сондай -ақ арнаның tindie дүкенінен бүкіл модульді ала аласыз:
www.tindie.com/products/misperry/wifi-enab…
Сондай -ақ, PCB фабрикасы үшін JLCPCB қараңыз. Олар мен бұрын ПХД жасаған:
Бірінші тапсырыс бойынша ақысыз жеткізу және $ 2 PCB прототипі https://jlcpcb.com сайтында
1 -қадам: ESP8266 кодын қосу
Енді біз келесі кодты ESP8266 -ге жыпылықтауымыз керек. Бұл кодты келесі github репозиторийінен табуға болады:
Төмендегі кодта сізге тек бірнеше анықтамалық бөлімдерді орнату қажет болады:
MQTT сервері:
MQTT пайдаланушысы:
MQTT құпия сөзі:
MQTT_sensor_topic:
-Сымсыз дәлдiк
Айтты: сіз қосылып жатқан Wi -Fi желісі туралы
Құпия сөз: WiFi құпия сөзі.
Төмендегі кодты толтырғаннан кейін сіз қателерді жинап, тексере аласыз, егер 0 қате болса, сіз оны ESP8266 -ге жыпылықтай аласыз.
/ * * Файл атауы: TempHumSensor.ino * * Қолданба: HomeAssistant ғарыш жылытқышының термостаты * * Сипаттама: Бұл код ESP8266 WiFi қосылған arduino * үйлесімді құрылғыға арналған. Бұл DHT11 құрылғысының температурасы туралы ақпаратты * өңдеу үшін HASS фронталына жібереді. * * Автор: М. Сперри - https://www.youtube.com/misperry * Күні: 03/ * Қайта қарау: 1.0 * * */
#қосу
#қосу #қосу #қосу #қосу #қосу
#анықтаңыз CON_TIME_OUT 20 // Wi -Fi желісіне қосылудың күту уақыты
#dquine MQTT_TIME_OUT 10 // MQTT серверіне қосылудың күту уақыты
#define DHTPIN 0 // DHT сенсорына қосылған түйреуіш
#DHTTYPE DHT11 анықтаңыз // Сенсор түрі - DHT11, оны DHT22 (AM2302), DHT21 (AM2301) етіп өзгертуге болады
#define mqtt_server «» // MQTT серверінің қосқыштарын немесе IP мекенжайын енгізіңіз. Мен бұл өрісте DuckDNS адресін қолданамын (yourname.duckdns.org)
#define mqtt_user «» // MQTT пайдаланушы атын енгізіңіз #mqtt_password «анықтаңыз» // құпия сөзіңізді енгізіңіз #MQTT_SENSOR_TOPIC «ha/bedroom_temp» анықтаңыз // MQTT үшін тақырыпты енгізіңіз.
// Wifi: SSID және құпия сөз
const char* ssid = «»; const char* пароль = «»;
// DHT реттеу
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 (); // INFO: мәліметтер жолға түрлендірілуі керек; флоаттарды қолданған кезде мәселе туындайды… // 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 қосылымы әрекет етуде …») кезінде қайта қосылғанша айналдырыңыз; // Қосылу әрекеті if (client.connect («ESPBlindstl», mqtt_user, mqtt_password)) {Serial.println («INFO: қосылған»); } else {Serial.print («ERROR: сәтсіз, 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 сенсорының бірыңғай деректері»);
// Температура сенсорының мәліметтерін басып шығару
sensor_t сенсоры; dht.temperature (). getSensor (& sensor); 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.println (« *C»); Serial.println («------------------------------------»); // Ылғалдылық датчигінің мәліметтерін басып шығарыңыз. dht.humidity (). getSensor (& sensor); 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.println («%»); Serial.println («------------------------------------»);
// Сенсор мәліметтері негізінде сенсор көрсеткіштері арасындағы кідірісті орнатыңыз
delayMS = sensor.min_delay / 1000; }
жарамсыз цикл (жарамсыз) {
қалқу температурасы;
if (! client.connected ())
{қайта қосылу (); }
кешігу (кідіріс ММ);
// Температура оқиғасын алыңыз және оның мәнін басып шығарыңыз.
sensors_event_t оқиғасы; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println («Температураны оқу қатесі!»); температура = 0,00; } else {температура = оқиға.температура; Serial.print («Температура:»); Сериялық баспа (температура); Serial.println (« *C»); } // MQTT -ке жариялау publishData (температура); }
2-қадам: TP-LINK ақылды штепсельін орнату
Сізге 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: қосқыш: - платформа: tplink атауы: Жатын бөлме жылытқышы: 192.168.2.11
сенсор 1:
платформа: mqtt state_topic: 'ha/bedroom_temp' атауы: Жатын бөлме температурасының өлшем бірлігі: '° F' мәні_темплейні: '{{value_json.temperature}}'
автоматтандыру:
- бүркеншік ат: _Temp Bedroom Temp High триггері: - платформа: 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 -қадам: Қорытынды қадамдар
Енді сіздің үй көмекшіңіздің конфигурациясы мен Arduino коды орнатылған кезде сіз бүкіл жүйені белсендіруге дайын боласыз. Осылайша, жылытқыш/желдеткіш/салқындатқышты ақылды штепсельдік розеткаға қосыңыз. Дайын болғаннан кейін сізге шағын USB зарядтағышын қосу керек, содан кейін WiFi қосылған температура датчигі. Барлығы желіге қосылғаннан кейін сіз үй көмекшісінің бақылау тақтасынан қарап, жаңа температураның хабарлануын көре аласыз.
Барлық көмегіңіз бен қолдауыңыз үшін үлкен рахмет. лайк қалдыруды ұмытпаңыз және https://www.youbue.com/misperry мекен -жайындағы арнаға кіріңіз және бізде сіз үшін не бар екенін көріңіз. Каналға көмектесу үшін жазылуды және достарыңызбен бөлісуді ұмытпаңыз.
Ұсынылған:
Ақылды штепсель ESP8266: 6 қадам
Ақылды штепсель ESP8266: Bienvenue суретті мақала мақұлдау үшін өте маңызды болып табылады, бірақ бұл сіздің бизнесіңізге де әсер етеді. Автокөліктер мен оптимизаторлар бір-бірімен қарым-қатынасты нығайтады. Celles-ci sont командалары WiFi арқылы. Ла
Wemos D1 Mini және Blynk қосылған 6CH ақылды қуат жолағы: 5 қадам
Wemos D1 Mini мен Blynk көмегімен 6CH Smart Power Strip: Бұл жоба Blynk және Wemos D1 mini R2 смартфондарымен басқарылатын әлемнің кез келген жерінде Интернетті қолдана отырып басқарылатын 6CH ақылды қуат таспасын қалай жасау керектігін сипаттайды. : Ескерту: Бұл жоба
RabbitPi - Alexa қосылған, IFTTT қосылған, құлақ түретін IoT көмекшісі: 12 қадам
RabbitPi - Alexa қосылған, IFTTT қосылған, IoT -тың құлағын ұстайтын көмекшісі: бұл 2005 жылы ескірген Nabaztag " ақылды қоян " Мен Raspberry Pi 3 пен Adafruit Motor HAT көмегімен заманауи IoT көмекшісіне, веб камера микрофонымен және Philips Soundshooter динамигімен сүйкімді түпнұсқа корпусында қайта құрдым
Маған массасы бар арнайы кабель мен штепсель: 7 қадам
Маған арнайы кабель мен штепсельді массаж жасаңыз: VIDEOGAMEPLAY үшін ЖҰМЫЛДЫ МАССАПТАР - сонымен қатар www.massage-me.at сайтына кіріңіз - - (бұл нұсқаулық серияның бөлігі болып табылады, сонымен қатар маған куртка массажы мен массаж маған Gamepad хакін қараңыз). Маған қалай массаж жасау керектігін біліңіз)
Тегіс штепсель: 4 қадам
Жалпақ штепсель: Неліктен автокөліктерге арналған штепсельдер өте көлемді? Неліктен олар бөшке тәрізді? Егер сіз өмір сүру үшін саяхаттап, гаджеттер әкелсеңіз, барлық зарядтағыш пен адаптерді бірге алып жүруіңіз қажет. USB автокөлік қосалқы адаптері/батарея зарядтағышының болуы міндетті емес, бірақ мен