فهرست مطالب:
- مرحله 1: MQTT چیست و چگونه کار می کند
- مرحله 2: تمشک پای
- مرحله 3: نحوه تنظیم آدرس IP ثابت
- مرحله 4: NodeMCU
- مرحله 5: Python Script
- مرحله 6: اتصالات و نمودار مدار
- مرحله 7: نتیجه
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
در این پروژه ، من توضیح خواهم داد که پروتکل MQTT چیست و چگونه از آن برای برقراری ارتباط بین دستگاه ها استفاده می شود. سپس ، به عنوان یک نمایش عملی ، نحوه راه اندازی سیستم مشتری و کارگزار را نشان خواهم داد ، جایی که یک ماژول ESP8266 و همچنین صحبت RPi وقتی دکمه ای فشار داده می شود به یکدیگر پیام دهید یا پیام ارسال کنید.
مواد مورد نیاز
1. تمشک پای 3
2. NodeMCU
3. LED
4. دکمه
5. مقاومت (10k ، 475 اهم)
مرحله 1: MQTT چیست و چگونه کار می کند
MQTT
MQTT یک پروتکل انتقال داده از ماشین به ماشین (M2M) است. MQTT با هدف جمع آوری داده ها از بسیاری از دستگاه ها و سپس انتقال این داده ها به زیرساخت فناوری اطلاعات ایجاد شد. سبک است ، و بنابراین برای نظارت از راه دور ، به ویژه در اتصالات M2M که به رد پای کمی نیاز دارند یا جایی که پهنای باند شبکه محدود است ، ایده آل است.
نحوه عملکرد MQTT
MQTT یک پروتکل انتشار/اشتراک است که به دستگاه های حاشیه شبکه اجازه می دهد تا برای یک کارگزار منتشر کنند. مشتریان به این کارگزار متصل می شوند ، که سپس ارتباط بین دو دستگاه را واسطه می کند. هر دستگاه می تواند در موضوعات خاصی مشترک یا ثبت نام کند. هنگامی که مشتری دیگری پیامی را در مورد موضوع مشترک منتشر می کند ، کارگزار پیام را به هر مشتری که مشترک شده است ارسال می کند.
MQTT دو طرفه است و آگاهی از جلسه را حفظ می کند. اگر اتصال به یک دستگاه از شبکه قطع شود ، به همه مشتریان مشترک با ویژگی "آخرین اراده و عهد" سرور MQTT اطلاع داده می شود تا هر سرویس گیرنده مجاز در سیستم بتواند یک مقدار جدید را در لبه قبلی منتشر کند. دستگاه شبکه ، حفظ اتصال دو طرفه
پروژه به 3 قسمت تقسیم شده است
در مرحله اول ، ما سرور MQTT را در RPi ایجاد می کنیم و برخی کتابخانه ها را نصب می کنیم.
در مرحله دوم ، ما کتابخانه هایی را در Arduino IDE برای NodeMCU نصب می کنیم تا با MQTT کار کنند ، کد را بارگذاری کرده و بررسی کنیم که سرور کار می کند یا خیر.
در نهایت ، ما یک اسکریپت در Rpi ایجاد می کنیم ، کد مورد نیاز را در NodeMCU بارگذاری می کنیم و اسکریپت پایتون را برای کنترل led ها از طرف سرور و سرویس گیرنده اجرا می کنیم. در اینجا ، سرور RPi و مشتری NodeMCU است.
مرحله 2: تمشک پای
1. برای نصب آخرین سرور و سرویس گیرنده MQTT در RPi ، برای استفاده از مخزن جدید ابتدا باید کلید امضای بسته مخزن را وارد کنید.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key افزودن mosquitto-repo.gpg.key
2. مخزن را در اختیار apt قرار دهید.
cd /etc/apt/sources.list.d/
3. بسته به اینکه از کدام نسخه دبیان استفاده می کنید.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. سرور Mosquitto را با استفاده از دستور نصب کنید.
sudo apt-get mosquitto را نصب کنید
اگر در نصب Mosquitto مانند این اشتباه می کنید.
#################################################################
بسته های زیر وابستگی های برآورده نشده ای دارند: mosquitto: بستگی دارد: libssl1.0.0 (> = 1.0.1) اما قابل نصب نیست بستگی دارد: libwebsockets3 (> = 1.2) اما قابل نصب نیست E: قادر به اصلاح مشکلات نیستید بسته ها
#################################################################
سپس از این دستور برای رفع مشکلات استفاده کنید.
sudo apt-رفع خرابی نصب
5. پس از نصب سرور MQTT ، کلاینت را با استفاده از دستور نصب کنید
sudo apt-get mosquitto-client را نصب کنید
می توانید خدمات را با استفاده از فرمان بررسی کنید.
systemctl status mosquitto.service
همانطور که سرور و سرویس گیرنده MQTT ما نصب شده است. اکنون ، می توانیم آن را با استفاده از اشتراک و انتشار بررسی کنیم. برای عضویت و انتشار می توانید دستورات را بررسی کنید یا از وب سایت زیر دیدن کنید.
Mosquitto Sub
میخانه پشه
برای نصب کتابخانه paho-mqtt از دستور زیر استفاده کنید.
sudo pip paho-mqtt را نصب کنید
پاهو
مرحله 3: نحوه تنظیم آدرس IP ثابت
به فهرست cd /etc بروید و فایل dhcpcd.conf را با استفاده از هر ویرایشگری باز کنید. در پایان ، این چهار خط را بنویسید.
رابط eth0 static ip_address = 192.168.1.100 // ip که می خواهید استفاده کنید
رابط wlan0
آدرس ip_address = 192.168.1.68
روترهای ایستا = 192.168.1.1 // دروازه پیش فرض شما
دامنه_استاتیک_سرور = 192.168.1.1
پس از آن آن را ذخیره کرده و pi خود را مجدداً راه اندازی کنید.
مرحله 4: NodeMCU
کتابخانه های مورد نیاز را در Arduino IDE برای NodeMCU نصب کنید
1. به Sketch ==> Include library ==> Manage libraries بروید.
2. mqtt را جستجو کرده و کتابخانه را توسط Adafruit نصب کنید یا می توانید هر کتابخانه ای را نصب کنید.
3. این به کتابخانه sleepydog بستگی دارد بنابراین ما به این کتابخانه نیز نیاز داریم.
برنامه در بالا آورده شده است ، فقط برای بررسی اینکه آیا کار می کند یا نه. در اینجا من هیچ اسکریپتی در RPi ایجاد نکرده ام. ما فقط از دستورات برای اشتراک و انتشار استفاده می کنیم. ما بعداً اسکریپتی برای کنترل ایجاد می کنیم.
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h ==> نام میزبان-t ==> موضوع
-m ==> پیام
پس از بررسی برنامه Mqtt_check ، برنامه کامل را در NodeMCU بارگذاری کنید
مرحله 5: Python Script
همانطور که در بالا توضیح دادم ، ما برای کنترل led ها با استفاده از دکمه ها به اسکریپت پایتون نیاز داریم. بنابراین ، ما قصد داریم اسکریپت ایجاد کنیم. اسکریپت در بالا آورده شده است.
وقتی اسکریپت را اجرا می کنید ، اسکریپت شما باید مانند تصویر زیر باشد ، اگر کد نتیجه صفر نباشد ، خطایی است که می توانید خطا را در وب سایت paho بررسی کنید.
مرحله 6: اتصالات و نمودار مدار
رابط دکمه ، LED با NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> کاتد (-ve)
GPIO5 (D1) ===> آند (+ve)
رابط دکمه ، LED با RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> کاتد (-ve)
GPIO 24 ===> آند (+ve)
مرحله 7: نتیجه
مطمئن شوید که اسکریپت شما در حال اجرا است در غیر این صورت نمی تواند led را با استفاده از دکمه ها کنترل کند.
توصیه شده:
نحوه خواندن داده های DHT روی LCD با استفاده از تمشک پای: 6 مرحله
نحوه خواندن داده های DHT روی LCD با استفاده از تمشک پای: دما و رطوبت نسبی داده های مهم آب و هوا در محیط ها هستند. این دو می توانند داده هایی باشند که یک ایستگاه هواشناسی کوچک ارائه می دهد. خواندن دما و رطوبت نسبی با رزبری پای را می توان با استفاده از انواع مختلف
ارتفاع ، فشار و دما با استفاده از تمشک پای با MPL3115A2: 6 مرحله
ارتفاع ، فشار و دما با استفاده از تمشک پای با MPL3115A2: جالب به نظر می رسد. این کاملاً ممکن است در این زمان که همه ما وارد نسل اینترنت اشیا می شویم. به عنوان یک عجیب و غریب الکترونیکی ، ما با Raspberry Pi بازی می کنیم و تصمیم گرفتیم با استفاده از این دانش پروژه های جالبی بسازیم. در این پروژه ما می خواهیم
ایستگاه هواشناسی شخصی با استفاده از تمشک پای با BME280 در جاوا: 6 مرحله
ایستگاه هواشناسی شخصی با استفاده از Raspberry Pi با BME280 در جاوا: آب و هوای بد همیشه از پنجره بدتر به نظر می رسد. ما همیشه علاقه مند به نظارت بر آب و هوای محلی خود و آنچه از پنجره بیرون می بینیم بوده ایم. ما همچنین می خواستیم کنترل بهتری بر سیستم گرمایش و تهویه مطبوع خود داشته باشیم. ساخت ایستگاه هواشناسی شخصی یک امر مهم است
مشاهده گر رطوبت و دما با استفاده از تمشک پای با SHT25 در پایتون: 6 مرحله
مشاهده گر رطوبت و دما با استفاده از تمشک پای با SHT25 در پایتون: از علاقه مندان به رزبری پای ، به آزمایشات دیدنی تری با آن فکر کردیم. در این کمپین ، ما یک رصد کننده رطوبت و دما خواهیم ساخت که رطوبت نسبی و دما را با استفاده از رزبری پای اندازه گیری می کند. و SHT25 ، حمیدی
چشمک زدن LED با تمشک پای - نحوه استفاده از پین های GPIO در رزبری پای: 4 مرحله
چشمک زدن LED با تمشک پای | نحوه استفاده از پین های GPIO در Raspberry Pi: سلام بچه ها در این دستورالعمل نحوه استفاده از GPIO's Raspberry pi را یاد می گیریم. اگر تا به حال از آردوینو استفاده کرده اید ، احتمالاً می دانید که ما می توانیم سوئیچ LED و غیره را به پین های آن وصل کرده و آن را مانند کار کنیم. چشمک بزنید یا ورودی را از سوئیچ دریافت کنید تا