فهرست مطالب:
![NodeMCU MQTT Iot Project - کلید تغییر: 4 مرحله NodeMCU MQTT Iot Project - کلید تغییر: 4 مرحله](https://i.howwhatproduce.com/images/003/image-6942-13-j.webp)
تصویری: NodeMCU MQTT Iot Project - کلید تغییر: 4 مرحله
![تصویری: NodeMCU MQTT Iot Project - کلید تغییر: 4 مرحله تصویری: NodeMCU MQTT Iot Project - کلید تغییر: 4 مرحله](https://i.ytimg.com/vi/c1st5cVRRzo/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
![Image Image](https://i.howwhatproduce.com/images/003/image-6942-15-j.webp)
![](https://i.ytimg.com/vi/OahlZyuC8_o/hqdefault.jpg)
کیت شروع کننده OSOYOO NodeMCU IOT
لطفاً ما را در فیس بوک دنبال کنید ، مورد جدید منتشر شده ما را بیابید و ایده و فیلم خود را در مورد نحوه استفاده خلاقانه از محصولات خود به اشتراک بگذارید. می توانید از ما پول نقد بگیرید یا هدیه بگیرید! فیس بوک:
یوتیوب:
در این درس ، ما یک دکمه سوئیچ را به NodeMCU متصل می کنیم و وضعیت سوئیچ را به یک کارگزار MQTT ارسال می کنیم. وقتی دکمه فشرده می شود ، NodeMCU وضعیت دکمه را "فشرده" برای کارگزار MQTT منتشر می کند و مشتری MQTT مشترک این پیام ها می شود. هنگامی که دکمه فشاری آزاد می شود ، "فشرده نشده" ارسال می شود.
مرحله 1: آماده سازی
![نمودار اتصال نمودار اتصال](https://i.howwhatproduce.com/images/003/image-6942-16-j.webp)
سخت افزار:
برد NodeMCU x 1
تغییر دکمه x 1
مقاومت 1K x 1
تخته نان x 1
سیم های بلوز
نرم افزار:
Arduino IDE (نسخه 1.6.4+)
ESP8266 Package Board و Serial Port Driver
مشتری MQTT (MQTTBox اینجا)
کتابخانه آردوینو: PubSubClient
مرحله 2: نمودار اتصال
در این درس ، ما از D2 (GPIO4) برای کنترل سوئیچ استفاده می کنیم ، لطفاً سخت افزار را مطابق نمودار اتصال تنظیم کنید.
توجه: مقاومت 1k به عنوان مقاومت کششی استفاده می شود ، در چنین مداری ، هنگامی که سوئیچ بسته است ، ورودی NodeMCU دارای مقدار منطقی بالایی است ، اما هنگامی که سوئیچ باز است ، مقاومت کششی ولتاژ ورودی را می کشد به زمین (مقدار صفر منطقی) ، از حالت نامشخص در ورودی جلوگیری می کند.
مرحله 3: کد
![کد کد](https://i.howwhatproduce.com/images/003/image-6942-17-j.webp)
![کد کد](https://i.howwhatproduce.com/images/003/image-6942-18-j.webp)
کد زیر را در Arduino IDE کپی کنید:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * * _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * استفاده از NodeMCU ارسال وضعیت دکمه سوئیچ به مشتری MQTT از طریق WiFi * URL آموزش: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2 ؛ // دکمه به پین GP1 GP1 متصل است
// اینها را با مقادیر مناسب برای شبکه خود به روز کنید. const char*ssid = "********" ؛ // وای فای خود را در اینجا قرار دهید const char*password = "********" ؛ // گذرواژه وای فای خود را در اینجا قرار دهید. const char* mqtt_server = "broker.mqttdashboard.com"؛ // const char* mqtt_server = "iot.eclipse.org"؛
WiFiClient espClient ؛
مشتری PubSubClient (espClient) ؛ long lastMsg = 0؛ char msg [50]؛
void setup_wifi () {
تأخیر (100) ؛ // ما با اتصال به شبکه WiFi Serial.print ("اتصال به") شروع می کنیم. Serial.println (ssid)؛ WiFi.begin (ssid ، رمز عبور) ؛ while (WiFi.status ()! = WL_CONNECTED) {تأخیر (500)؛ Serial.print (".") ؛ } randomSeed (micros ()) ؛ Serial.println ("")؛ Serial.println ("WiFi متصل است") ؛ Serial.println ("آدرس IP:") ؛ Serial.println (WiFi.localIP ()) ؛ }
void callback (char* topic، byte* payload، unsigned int length)
{} // پایان تماس
وصل مجدد باطل () {
// تا زمانی که دوباره متصل نشوید (! client.connected ()) {Serial.print ("تلاش برای اتصال MQTT …") ؛ // ایجاد یک شناسه کلاینت تصادفی String clientId = "ESP8266Client-"؛ clientId += رشته (تصادفی (0xffff) ، HEX) ؛ // تلاش برای اتصال // اگر کارگزار MQTT دارای clientID ، نام کاربری و رمز عبور // لطفاً خط زیر را به if (client.connect (clientId، userName، passWord)) if (client.connect (clientId.c_str ())) تغییر دهید {Serial.println ("متصل") ؛ // به محض اتصال به کارگزار MQTT ، در صورت وجود هرگونه client.subscribe کنید (subscribe) ("OsoyooCommand") ؛ } else {Serial.print ("ناموفق ، rc =")؛ Serial.print (client.state ()) ؛ Serial.println ("در 5 ثانیه دوباره امتحان کنید") ؛ // 5 ثانیه قبل از امتحان مجدد تأخیر (5000) منتظر بمانید. }}} // پایان مجدد اتصال ()
void setup () {
Serial.begin (115200) ؛ setup_wifi ()؛ client.setServer (mqtt_server ، 1883) ؛ client.setCallback (تماس تلفنی) ؛ pinMode (BUTTON_PIN ، INPUT) ؛ }
حلقه خالی () {
if (! client.connected ()) {اتصال مجدد ()؛ } client.loop ()؛ در حال حاضر = millis ()؛ وضعیت int ؛ // ارسال پیام هر 2 ثانیه اگر (در حال حاضر - lastMsg> 2000) {lastMsg = اکنون؛ وضعیت = digitalRead (BUTTON_PIN) ؛ String msg = "وضعیت دکمه:"؛ if (status == HIGH) {msg = msg+ "Pressed"؛ پیام char [58]؛ msg.toCharArray (پیام ، 58) ؛ Serial.println (پیام) ؛ // انتشار داده های حسگر به کارگزار MQTT client.publish ("OsoyooData" ، پیام) ؛ } else {msg = msg+ "Not Press"؛ پیام char [58]؛ msg.toCharArray (پیام ، 58) ؛ Serial.println (پیام) ؛ // انتشار داده های حسگر به کارگزار MQTT client.publish ("OsoyooData" ، پیام) ؛ }}}
کد را متناسب با تنظیمات WiFi و MQTT خود به عنوان عملیات زیر ویرایش کنید: 1) پیکربندی نقطه اتصال: خط کد زیر را پیدا کنید ، ssid و رمز عبور خود را در آنجا قرار دهید.
const char* ssid = "your_hotspot_ssid"؛ const char* password = "your_hotspot_password"؛
2) تنظیم آدرس سرور MQTT: می توانید از آدرس کارگزار MQTT یا آدرس IP خود برای تعیین مقدار mqtt_server استفاده کنید. همچنین می توانید از برخی سرورهای معروف MQTT رایگان برای آزمایش پروژه مانند "broker.mqtt-dashboard.com" ، "iot.eclipse.org" و غیره استفاده کنید.
const char* mqtt_server = "broker.mqtt-dashboard.com"؛
3) تنظیمات مشتری MQTT اگر کارگزار MQTT شما نیاز به شناسه مشتری ، نام کاربری و رمز عبور دارد ، باید تغییر دهید
if (client.connect (clientId.c_str ()))
به
if (client.connect (clientId، userName، passWord)) // clientId/userName/passWord خود را در اینجا قرار دهید
اگر نه ، فقط آنها را به صورت پیش فرض نگه دارید. پس از انجام این کار ، نوع برد مربوطه و نوع پورت را مانند زیر انتخاب کنید ، سپس طرح را در NodeMCU بارگذاری کنید.
- صفحه:”NodeMCU 0.9 (ماژول ESP-12)”
- فرکانس پردازنده:”80 مگاهرتز” اندازه فلش:”
- 4M (3M SPIFFS)”
- سرعت بارگذاری:”115200
- پورت: پورت سریال خود را برای NodeMCU خود انتخاب کنید
مرحله 4: تنظیمات مشتری MQTT
![تنظیمات مشتری MQTT تنظیمات مشتری MQTT](https://i.howwhatproduce.com/images/003/image-6942-19-j.webp)
![تنظیمات مشتری MQTT تنظیمات مشتری MQTT](https://i.howwhatproduce.com/images/003/image-6942-20-j.webp)
اگر نمی دانید چگونه مشتری MQTT را پیکربندی کنید ، لطفاً از آخرین مقاله ما دیدن کنید:
تنظیمات موضوعات: موضوع انتشار: OsoyooCommand
موضوع اشتراک: OsoyooData
نتیجه در حال اجرا
پس از اتمام بارگذاری ، در صورتی که نام وای فای و تنظیم رمز عبور خوب باشد و کارگزار MQTT متصل باشد ، Serial Monitor را باز کنید ، نتیجه زیر را مشاهده خواهید کرد: با فشار دادن این دکمه ، Serial Monitor هر 2 ثانیه "وضعیت دکمه: فشار داده شده" را نشان می دهد. هنگامی که این دکمه را رها می کنید ، Serial Monitor هر 2 ثانیه "وضعیت دکمه: فشار داده نشده" را نشان می دهد.
توصیه شده:
صندلی داغ: یک کوسن گرم شونده با تغییر رنگ بسازید: 7 مرحله (همراه با تصاویر)
![صندلی داغ: یک کوسن گرم شونده با تغییر رنگ بسازید: 7 مرحله (همراه با تصاویر) صندلی داغ: یک کوسن گرم شونده با تغییر رنگ بسازید: 7 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/001/image-710-j.webp)
صندلی داغ: یک کوسن گرم شونده با تغییر رنگ بسازید: آیا می خواهید در روزهای سرد زمستان خود را برشته نگه دارید؟ Hot Seat پروژه ای است که از دو قابلیت هیجان انگیز نساجی الکترونیکی استفاده می کند - تغییر رنگ و گرما! ما در حال ساخت یک بالشتک هستیم که گرم می شود و وقتی آماده حرکت شود ، نشان می دهد که
Visuino نحوه استفاده از مدولاسیون عرض پالس (PWM) برای تغییر روشنایی LED: 7 مرحله
![Visuino نحوه استفاده از مدولاسیون عرض پالس (PWM) برای تغییر روشنایی LED: 7 مرحله Visuino نحوه استفاده از مدولاسیون عرض پالس (PWM) برای تغییر روشنایی LED: 7 مرحله](https://i.howwhatproduce.com/images/001/image-1362-j.webp)
Visuino نحوه استفاده از مدولاسیون عرض پالس (PWM) برای تغییر روشنایی یک LED: در این آموزش ما از LED متصل به Arduino UNO و Visuino برای تغییر روشنایی آن با استفاده از مدولاسیون عرض پالس (PWM) استفاده می کنیم
تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: 9 مرحله
![تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: 9 مرحله تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: 9 مرحله](https://i.howwhatproduce.com/images/001/image-2058-j.webp)
تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: چرا این کار را می کنید؟ اگر تا به حال روی یک آهنگ 125 BPM به نمودار رفته اید ، ممکن است تعجب کنید که این بوی اسپایکی چیست؟ چرا زمان بندی به اسلات های گسسته تقسیم می شود؟ ITG و DDR دارای پنجره های زمان بندی فوق العاده محکمی هستند و با این
نحوه استفاده از فتوسل برای تغییر رنگ LED RGB: 3 مرحله
![نحوه استفاده از فتوسل برای تغییر رنگ LED RGB: 3 مرحله نحوه استفاده از فتوسل برای تغییر رنگ LED RGB: 3 مرحله](https://i.howwhatproduce.com/images/001/image-509-5-j.webp)
نحوه استفاده از فتوسل برای تغییر رنگ LED RGB: برای پروژه آردوینو قسمت 01 ایده اصلی من این بود که از یک سنسور دما برای روشن و خاموش کردن یک LED استفاده کنم ، اما افسوس که سنسور دمای من هنوز نیامده بود که مرا مجبور کرد از بین سنسورهای موجود در کیت راه اندازی Elegoo ، انتخاب کرده و می پرسید آیا
روش سریع و آسان برای تغییر صفحه قفل در 6 مرحله ساده (ویندوز 8-10): 7 مرحله
![روش سریع و آسان برای تغییر صفحه قفل در 6 مرحله ساده (ویندوز 8-10): 7 مرحله روش سریع و آسان برای تغییر صفحه قفل در 6 مرحله ساده (ویندوز 8-10): 7 مرحله](https://i.howwhatproduce.com/images/002/image-3156-61-j.webp)
روش سریع و آسان برای تغییر صفحه قفل در 6 مرحله ساده (ویندوز 8-10): آیا می خواهید همه چیز را در لپ تاپ یا رایانه خود تغییر دهید؟ آیا می خواهید تغییری در فضای خود ایجاد کنید؟ این مراحل سریع و آسان را برای شخصی سازی موفقیت آمیز صفحه قفل رایانه خود دنبال کنید