فهرست مطالب:

تمشک پای صحبت با ESP8266 با استفاده از MQTT: 8 مرحله
تمشک پای صحبت با ESP8266 با استفاده از MQTT: 8 مرحله
Anonim
تمشک پای در حال صحبت با ESP8266 با استفاده از MQTT
تمشک پای در حال صحبت با ESP8266 با استفاده از MQTT

در این پروژه ، من توضیح خواهم داد که پروتکل 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 ثابت

نحوه تنظیم آدرس IP ثابت
نحوه تنظیم آدرس 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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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: نتیجه

Image
Image
نتیجه
نتیجه

مطمئن شوید که اسکریپت شما در حال اجرا است در غیر این صورت نمی تواند led را با استفاده از دکمه ها کنترل کند.

توصیه شده: