با نصب سرور MQTT و Node-RED، دستگاه های IoT هوشمند DIY را از Raspberry Pi خود کنترل کنید.
پروتکل تله متری صف پیام یا MQTT یک پروتکل پیام رسانی سبک است که برای دستگاه ها و محیط های با پهنای باند کم طراحی شده است. این یک راه حل سریع، آسان برای استقرار و کم مصرف برای اتصال و تبادل اطلاعات بین چندین دستگاه IoT است. برای ارسال یا دریافت اطلاعات، به یک کارگزار/سرور MQTT و موضوعی که پیامها منتشر شده و توسط دستگاهها یا کاربران مشترک شدهاند، نیاز دارد.
در این راهنما، بروکر MQTT و ابزار Node-RED را بر روی Raspberry Pi برای اتصال دستگاههای IoT هوشمند DIY با قابلیت MQTT و استفاده از آنها برای اتوماسیون خانگی مستقر میکنیم.
چیزهایی که شما نیاز دارید
برای ساخت و استقرار یک سرور MQTT با Node-RED، به موارد زیر نیاز دارید:
- Raspberry Pi Zero W یا بهتر. توصیه می کنیم از Raspberry Pi 3 یا 4 (در صورت موجود بودن) استفاده کنید.
- کارت microSD (8 گیگابایت یا بالاتر).
- کارت خوان microSD.
- رایانه شخصی لینوکس، مک یا رایانه شخصی ویندوزی.
- اتصال به اینترنت (Wi-Fi).
مرحله 1: Raspberry Pi OS Lite (64 بیتی) را نصب کنید
شما به نسخه 64 بیتی Lite Raspberry Pi OS نیاز دارید. در ابزار Raspberry Pi Imager در رایانه دیگری، روی Choose OS > Raspberry Pi OS (Other) کلیک کنید، سپس Raspberry Pi OS Lite (64 بیتی) را انتخاب کنید. علاوه بر این، باید از تنظیمات پیشرفته Imager برای فعال کردن SSH استفاده کنید (ما از pi و raspberry به عنوان نام کاربری و رمز عبور برای این راهنما استفاده کردیم) و اتصال Wi-Fi را پیکربندی کنید. برای جزئیات بیشتر، راهنمای ما در مورد نحوه نصب یک سیستم عامل بر روی Raspberry Pi را بررسی کنید. پس از نوشتن سیستم عامل روی کارت، آن را خارج کرده و در رزبری پای خود قرار دهید.
مرحله 2: از طریق SSH متصل شوید و بسته ها را به روز کنید
می توانید با استفاده از PuTTY در ویندوز یا ترمینال در macOS و Linux به Raspberry Pi خود از طریق SSH متصل شوید. با این حال، برای اتصال از طریق SSH باید IP Raspberry Pi را بدانید. برای فهمیدن این موضوع، میتوانید تنظیمات DHCP روتر بیسیم خود را باز کنید یا از برنامه Fing در تلفن هوشمند خود استفاده کنید.
آدرس IP را در PuTTY وارد کرده و روی Connect کلیک کنید. برای ورود نام کاربری و رمز عبور خود را تایپ کنید.
در ترمینال لینوکس یا macOS، YourPiUsername@IPAddress را تایپ کنید و سپس رمز عبور را تایپ کنید تا وارد شوید. پس از اتصال از طریق SSH، دستور زیر را برای به روز رسانی لیست بسته ها و ارتقاء بسته ها اجرا کنید.
sudo apt update && sudo apt upgrade –y
مرحله 3: MQTT Broker را نصب کنید
برای نصب و فعال کردن بروکر MQTT (Mosquitto) مراحل زیر را انجام دهید.
- Mosquitto را با اجرای دستور زیر در Terminal window.sudo apt install mosquitto mosquitto-clients -y نصب کنید این کار نصب Mosquitto (کارگزار MQTT) و خدمات مشتری را آغاز می کند.
- پس از نصب، سرویس Mosquitto را فعال کنید و نسخه MQTT را با استفاده از دستورات زیر بررسی کنید.sudo systemctl enable mosquitto.servicemosquitto -v
- یک حساب کاربری برای اجازه دسترسی از راه دور تأیید شده با استفاده از دستور زیر ایجاد کنید.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi در اینجا ravi نام کاربری است (شما می توانید از هر چیزی که دوست دارید استفاده کنید). وقتی از شما خواسته شد رمز عبور را وارد کنید. این نام کاربری و رمز عبور را برای استفاده بعدی یادداشت کنید.
- فایل mosquitto.conf را در ویرایشگر نانو با استفاده از دستور زیر باز کنید.sudo nano /etc/mosquitto.conf کد زیر را در nano editor.per_listener_settings truepid_file /run/mosquitto/mosquitto.pidpersistence truepersistence_location /var/lib/mosquit قرار دهید. log_dest file /var/log/mosquitto/mosquitto.loginclude_dir /etc/mosquitto/conf.dallow_anonymous falselistener 1883 password_file /etc/mosquitto/passwd CTRL+X و سپس Y را فشار داده و Enter را فشار دهید تا تغییرات ذخیره شود.
- کارگزار MQTT را با اجرای command.sudo systemctl restart mosquitto زیر راه اندازی مجدد کنید
- وضعیت کارگزار MQTT را بررسی کنید تا ببینید آیا MQTT در حال اجرا است. sudo systemctl status mosquitto اگر خروجی بالا را مشاهده کردید، MQTT در حال اجرا است.
sudo apt install mosquitto mosquitto-clients -y
sudo systemctl enable mosquitto.service
mosquitto -v
sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
sudo nano /etc/mosquitto.conf
per_listener_settings true
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd
sudo systemctl restart mosquitto
sudo systemctl status mosquitto
مرحله 4: کارگزار MQTT را آزمایش کنید
برای آزمایش اینکه آیا کارگزار MQTT کار می کند یا خیر، MQTTLens یا یک برنامه مشابه MQTT را در کروم یا هر مرورگر وب دیگری نصب کنید و آن را راه اندازی کنید. آدرس IP Raspberry Pi و نام کاربری/رمز عبور MQTT را وارد کنید. روی Create Connection کلیک کنید.
هر موضوعی را در قسمت Subscribe و همان موضوع را در قسمت Publish وارد کنید. “سلام” یا هر چیزی را در قسمت پیام تایپ کنید و روی انتشار کلیک کنید.
اگر پیام زیر اشتراک ها را مشاهده کردید، کارگزار MQTT به خوبی کار می کند.
مرحله 5: Node-RED را نصب کنید
با Node-RED میتوانید پیامها را منتشر کنید یا محمولهها را به یا از دستگاههای هوشمند خود ارسال و دریافت کنید. از این محموله میتوان برای فعال کردن دستگاههای هوشمند برای روشن/خاموش کردن یا دریافت دادهها (مانند دما) از یک حسگر استفاده کرد. می توانید از مرورگر وب خود برای ایجاد چنین جریان هایی در Node-RED و کنترل دستگاه های هوشمند خود استفاده کنید.
برای نصب Node-RED دستور زیر را در پنجره ترمینال اجرا کنید.
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
با این کار Node-RED روی Raspberry Pi دانلود و نصب می شود. ممکن است کمی طول بکشد تا تکمیل شود. پس از نصب Node-RED، باید با اجرای دستور زیر یک فایل تنظیمات Node-RED ایجاد کنید.
node-red admin init
سپس این مراحل را دنبال کنید:
- کلید Enter را فشار دهید.
- آیا می خواهید امنیت کاربر را تنظیم کنید؟ بله را انتخاب کنید. یک نام کاربری و یک رمز عبور وارد کنید. آن را ایمن نگه دارید زیرا برای ورود و مدیریت Node-RED از طریق یک رابط وب استفاده می شود.
- دسترسی کامل را انتخاب کنید.
- برای ادامه می توانید کاربر دیگری اضافه کنید یا خیر را انتخاب کنید.
- وقتی از شما خواسته شد تا ویژگی های پروژه را فعال کنید، No را انتخاب کنید.
- Enter را فشار دهید.
- یک عبارت عبور را تایپ کنید و آن را ایمن نگه دارید.
- موضوع پیشفرض > موناکو (پیشفرض) را انتخاب کنید.
- وقتی از شما خواسته شد تا گره های خارجی را بارگیری کنید، No را انتخاب کنید.
پس از انجام این کار، Node-RED را مجددا راه اندازی کنید.
node-red restart
اکنون می توانید از Your-Raspberry-Pi-IP:1880 در یک مرورگر وب برای باز کردن و ورود به پنل مدیریت Node-RED بازدید کنید.
اکنون می توانید در Node-RED جریان ایجاد کنید. در زیر نمونهای از جریان Node-RED وجود دارد که ما برای اجرای نمایشگر ماتریس WS2812B 8×32 خود استفاده میکنیم که اطلاعات حسگرهای مختلف نصب شده در خانه ما را در زمان واقعی نشان میدهد.
برای شروع، میتوانید با استفاده از ماتریس نقطهای MAX7219 یک ساعت هوشمند DIY بسازید و آن را به سرور MQTT خود متصل کنید تا متن یا پیامها روی آن نمایش داده شود.
Home Automation با استفاده از MQTT و Node-RED را فعال کنید
اکنون می توانید جریان هایی را برای کنترل یا نظارت بر دستگاه های خانه هوشمند مجهز به MQTT ایجاد کنید. همچنین میتوانید سوئیچهای هوشمند Tasmota یا حسگرهای هوشمند مبتنی بر آردوینو و سایر دستگاههای هوشمند با کنترل MQTT بسازید و با این سرور MQTT و Node-RED از آنها استفاده کنید. میتوانید جریانهایی را برای اتوماسیون خانه بر اساس رویدادها، زمان یا بار دریافتی از مشتری MQTT گوشی هوشمند خود ایجاد کنید.
در تلفن هوشمند اندرویدی خود، میتوانید MQTT Dash را نصب کنید تا به کارگزار MQTT خود متصل شوید و محمولههایی را به یا از موضوعات مختلفی که دستگاههای هوشمند شما مشترک یا منتشر میکنند ارسال یا دریافت کنید.