فهرست مطالب:
- مرحله 1: افزودن کد به ESP8266
- مرحله 2: راه اندازی پلاگین هوشمند TP-LINK
- مرحله 3: راه اندازی دستیار خانه
- مرحله 4: مراحل نهایی
تصویری: پلاگین هوشمند کنترل دما با قابلیت WiFi: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
در این مجموعه دستورالعمل ، نحوه ساختن یک پروب دما با WiFi با استفاده از ESP8266 ساده برای بلند کردن اجسام سنگین و سنسور دما/رطوبت DHT11 را بررسی خواهیم کرد. همچنین اگر مایل به خرید هستید ، از برد مدار که من ایجاد کرده ام و در حال حاضر در فروشگاه tindie کانال به فروش می رسد ، استفاده خواهیم کرد.
بیایید با لایحه مواد مورد نیاز خود شروع کنیم:
ماژول WiFi ESP8266
amzn.to/2pkGPoa
سنسور DHT11
amzn.to/2phwfhO
پلاگین هوشمند TP-Link
amzn.to/2GElQUz
همچنین می توانید کل ماژول را در فروشگاه tindie برای کانال تهیه کنید:
www.tindie.com/products/misperry/wifi-enab…
همچنین JLCPCB را برای PCB Fabriction بررسی کنید. آنها کسانی هستند که من برای ساخت PCB استفاده می کردم:
ارسال رایگان در اولین سفارش و نمونه اولیه PCB $ 2 در
مرحله 1: افزودن کد به ESP8266
اکنون باید کد زیر را روی ESP8266 فلش کنیم. این کد را می توانید در مخزن github زیر پیدا کنید:
در کد زیر فقط باید چند بخش تعریف بالا را تنظیم کنید:
سرور MQTT:
کاربر MQTT:
رمز عبور MQTT:
MQTT_sensor_topic:
-وای فای
گفت: گفته شده در مورد شبکه wifi که به آن متصل می شوید
رمز عبور: رمز وای فای
هنگامی که کد زیر را پر کردید ، می توانید خطاها را کامپایل کرده و بررسی کنید و در صورت صفر بودن خطاها ، آن را روی ESP8266 فلش کنید.
/ * * نام فایل: TempHumSensor.ino * * برنامه کاربردی: ترموستات هیتر فضا HomeAssistant * * * توضیحات: این کد برای دستگاه سازگار با آردوینو * وای فای ESP8266 * است. با این کار اطلاعات دما * دستگاه DHT11 برای پردازش به نمای HASS منتقل می شود. * * نویسنده: M. Sperry - https://www.youtube.com/misperry * تاریخ: 03/ * تجدید نظر: 1.0 * * */
#عبارتند از
#شامل #شامل #شامل #شامل #شامل #شود
#تعریف CON_TIME_OUT 20 // مهلت عدم اتصال به wifi
#تعریف MQTT_TIME_OUT 10 // مهلت عدم اتصال به سرور MQTT
#definine DHTPIN 0 // پین که به سنسور DHT متصل است
#تعریف DHTTYPE DHT11 // نوع سنسور DHT11 است ، می توانید آن را به DHT22 (AM2302) ، DHT21 (AM2301) تغییر دهید
#dever mqtt_server "" // افزودنی ها یا IP سرور MQTT خود را وارد کنید. من از adddress DuckDNS (yourname.duckdns.org) در این زمینه استفاده می کنم
#deqine mqtt_user "" // نام کاربری MQTT خود را وارد کنید #رمزعبور mqtt_password "" // رمز عبور خود را وارد کنید #تعریف MQTT_SENSOR_TOPIC "ha/bedroom_temp" // موضوع MQTT خود را وارد کنید
// Wifi: SSID و رمز عبور
const char* ssid = ""؛ const char* رمز عبور = ""؛
// DHT SEtup
DHT_Uhified dht (DHTPIN ، DHTTYPE) ؛ uint32_t delayMS؛
WiFiClient wifiClient ؛
مشتری PubSubClient (wifiClient) ؛
// تابع برای انتشار دما و رطوبت فراخوانی می شود
void publishedData (شناور p_temperature) {// ایجاد یک شی JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API٪20Reference StaticJsonBuffer jsonBuffer ؛ JsonObject & root = jsonBuffer.createObject ()؛ // INFO: داده ها باید به یک رشته تبدیل شوند. هنگام استفاده از شناورها مشکل ایجاد می شود … // تبدیل به فارنهایت p_temperature = (p_temperature * 1.8) + 32؛ // تبدیل به ریشه فارنهایت ["دما"] = (رشته) p_temperature؛ root.prettyPrintTo (سریال) ؛ Serial.println ("")؛
داده های char [200] ؛
root.printTo (data، root.measureLength () + 1) ؛ client.publish (MQTT_SENSOR_TOPIC ، داده ، درست) ؛ }
// هنگامی که یک پیام MQTT رسید فراخوانی می شود
void callback (char* p_topic ، byte* p_payload ، unsigned int p_length) {}
وصل مجدد باطل () {
// تا زمانی که دوباره متصل نشوید (! client.connected ()) {Serial.print ("اطلاعات: تلاش برای اتصال MQTT …") ؛ // تلاش برای اتصال if (client.connect ("ESPBlindstl" ، mqtt_user ، mqtt_password)) {Serial.println ("اطلاعات: متصل") ؛ } else {Serial.print ("ERROR: failed، rc =")؛ Serial.print (client.state ()) ؛ Serial.println ("اشکال زدایی: دوباره در 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 ()) ؛ // init اتصال MQTT client.setServer (mqtt_server ، 1883) ؛ client.setCallback (تماس تلفنی) ؛
// مقداردهی اولیه سنسور DHT
dht.begin ()؛ Serial.println ("DHT11 Unified Sensor Data") ؛
// چاپ جزئیات سنسور دما
sensor_t sensor؛ dht.temperature (). getSensor (& سنسور)؛ Serial.println ("------------------------------------") ؛ Serial.println ("دما") ؛ Serial.print ("سنسور:") ؛ Serial.println (نام حسگر) ؛ Serial.print ("نسخه درایور:") ؛ Serial.println (sensor.version) ؛ 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 (sensor.resolution) ؛ Serial.println (" *C") ؛ Serial.println ("------------------------------------") ؛ // چاپ جزئیات سنسور رطوبت. dht.humidity (). getSensor (& سنسور)؛ Serial.println ("------------------------------------") ؛ Serial.println ("رطوبت") ؛ Serial.print ("سنسور:") ؛ Serial.println (نام حسگر) ؛ Serial.print ("نسخه درایور:") ؛ Serial.println (sensor.version) ؛ 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 (sensor.resolution) ؛ Serial.println ("٪")؛ Serial.println ("------------------------------------") ؛
// تأخیر بین قرائت سنسور را بر اساس جزئیات سنسور تنظیم کنید
delayMS = sensor.min_delay / 1000؛ }
حلقه خالی (خالی) {
دمای شناور ؛
if (! client.connected ())
{اتصال مجدد ()؛ }
تاخیر (delayMS) ؛
// رویداد دما را دریافت کرده و مقدار آن را چاپ کنید.
رویداد sensors_event_t؛ dht.temperature (). getEvent (& رویداد) ؛ if (isnan (event.temperature)) {Serial.println ("خطا در خواندن دما!") ؛ دما = 0.00 ؛ } else {temperature = event.temperature؛ Serial.print ("دما:")؛ Serial.print (دما) ؛ Serial.println (" *C") ؛ } // انتشار به MQTT publikData (دما) ؛ }
مرحله 2: راه اندازی پلاگین هوشمند TP-LINK
شما باید پلاگین هوشمند TP-LINK یا هر دو شاخه هوشمند را برای آن ماده به روشی که سازنده توصیه می کند تنظیم کنید.
اطمینان حاصل کنید که آدرس MAC دستگاه را یادداشت کنید. اگر دستگاه شما مانند دستگاه TP-LINK من است ، نمی توانید آدرس IP ثابت را تعیین کنید. بنابراین ، باید روتر خود را برای رزرو DHCP پیکربندی کنید. این آدرس MAC دستگاه شما را می گیرد و وقتی آن دستگاه آدرس درخواست می کند ، روتر هر بار آدرس یکسانی را به آن می دهد.
در اینجا پیوندی برای نحوه تنظیم این با Linksys وجود دارد
www.linksys.com/us/support-article؟article…
مرحله 3: راه اندازی دستیار خانه
در حال حاضر برای راه اندازی دستیار خانگی. برای این کار باید تنظیمات زیر را به فایل configuration.yaml که در ساختار پوشه /home/homeassistant/.homeassistant روی دستگاهی که آن را نصب کرده اید ، اضافه کنید.
پس از اتمام افزودن این مورد به پیکربندی دستیار خانگی ، باید نرم افزار دستیار خانگی خود را مجدداً راه اندازی کنید تا تغییرات اعمال شوند.
همچنین از سوئیچ هوشمند TP-LINK برای اتصال دستگاه استفاده می کنم و تعریف آن در فایل پیکربندی در زیر آمده است. آدرس IP مورد استفاده برای دستگاه ، همان آدرس IP است که در مرحله قبل برای رزرو DHCP تنظیم کرده اید.
این پیکربندی را می توانید در repo زیر github نیز پیدا کنید:
mqtt: switch: - platform: tplink name: Bedroom Heater host: 192.168.2.11
سنسور 1:
پلتفرم: mqtt state_topic: 'ha/bedroom_temp' نام: واحد دمای اتاق_مقیاس: '° F' value_template: '{{value_json.temperature}}'
اتوماسیون:
- نام مستعار: _Temp Bedroom Temp ماشه بالا: - پلت فرم: numeric_state نهاد_ شناسه: سنسور. اتاق_تمام بالا: 73
عمل:
service: homeassistant.turn_off نهاد_ شناسه: switch. Bedroom_Heater
- نام مستعار: _Temp Bedroom Temp Low
ماشه: - پلت فرم: numeric_state موجودیت_ شناسه: سنسور. اتاق خواب_مواقع زیر: 73 اقدام: سرویس: homeassistant.turn_on unit_id: switch. Bedroom_Heater
مرحله 4: مراحل نهایی
اکنون با پیکربندی دستیار خانگی و تنظیم کد آردوینو ، آماده فعالسازی کل سیستم خواهید بود. بنابراین ، دوشاخه بخاری/فن/کولر خود را در پلاگین هوشمند قرار دهید و پلاگین هوشمند را وصل کنید. پس از آماده شدن ، باید یک شارژر USB کوچک و سپس پروب دما را با وای فای وصل کنید. هنگامی که همه چیز آنلاین است ، باید بتوانید به داشبورد دستیار خانگی خود نگاه کنید و دمای جدید گزارش شده را مشاهده کنید.
از همه کمکها و حمایتهای شما بسیار سپاسگزارم. مطمئن شوید که لایک گذاشته اید و به کانال https://www.youbue.com/misperry سر بزنید و ببینید همه چیزهایی که برای شما داریم چیست. حتما عضو شوید و با دوستان خود به اشتراک بگذارید تا از کانال کمک بگیرند.
توصیه شده:
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
پلاگین هوشمند ESP8266: 6 مرحله
Smart Plug ESP8266: Bienvenue sur cet article qui a pour but de vous montrer un projet de domotique que j'ai réalisé. Ayant toujours adoré les choses automatiques and optimisées، j'ai décidé de créer moi-même mes prises connectées. Celles-ci sont commandees از طریق WiFi. لا
برنامه نویسی فلش سوکت هوشمند Joinrun (پلاگین EU): 6 مرحله
برنامه نویسی فلش سوکت هوشمند Joinrun (پلاگین EU): & quot؛ Joinrun Smart Wifi & quot؛ سوکت با USB یکی دیگر از سوکت های قدرت قابل کنترل وای فای مبتنی بر ESP8266 است. این طراحی دلپذیر ، یک شکل کوچک و یک پورت شارژ USB اضافی دارد. برای کنترل آن از طریق برنامه
یخچال خانگی با قابلیت کنترل هوشمند (فریزر عمیق): 11 مرحله (همراه با تصاویر)
یخچال خانگی ساخته شده با قابلیت کنترل هوشمند (Deep Freezer): سلام دوستان این قسمت 2 یخچال DIY بر اساس ماژول peltier است ، در این قسمت ما از 2 ماژول peltier به جای 1 استفاده می کنیم ، همچنین از یک کنترل کننده حرارتی برای تنظیم دمای دلخواه برای صرفه جویی استفاده می کنیم. کمی انرژی
نحوه کنترل دما و جاذبه تخمیر آبجو از طریق تلفن هوشمند خود: 4 مرحله (همراه با تصاویر)
چگونه دما و جاذبه تخمیر آبجو را از طریق تلفن هوشمند خود کنترل کنید: هنگامی که آبجو در حال تخمیر است ، باید روزانه بر وزن و دمای آن نظارت داشته باشید. فراموش کردن این کار آسان است و در صورت دور بودن غیرممکن است. پس از کمی جستجو در گوگل ، چندین راه حل برای نظارت خودکار گرانش (یک ، دو ، سه) پیدا کردم. یکی از t