Агуулгын хүснэгт:

Raspberry Pi ESP8266 -тай MQTT ашиглан ярьж байна: 8 алхам
Raspberry Pi ESP8266 -тай MQTT ашиглан ярьж байна: 8 алхам
Anonim
Raspberry Pi ESP8266 -тай MQTT ашиглан ярьж байна
Raspberry Pi ESP8266 -тай MQTT ашиглан ярьж байна

Энэхүү төсөлд би MQTT протокол гэж юу болох, төхөөрөмжүүдийн хооронд хэрхэн харилцах талаар тайлбарлах болно. Дараа нь практик үзүүлбэр болгон ESP8266 модуль, түүнчлэн RPi -ийн яриа болох клиент, брокерын системийг хэрхэн тохируулахыг харуулах болно. бие биедээ эсвэл товчлуур дарахад мессеж илгээх.

Шаардлагатай материал

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Товч

5. Резистор (10k, 475 ом)

Алхам 1: MQTT гэж юу вэ, энэ нь хэрхэн ажилладаг талаар

MQTT

MQTT бол машинаас машин руу (M2M) өгөгдөл дамжуулах протокол юм. MQTT нь олон төхөөрөмжөөс өгөгдөл цуглуулж дараа нь мэдээллийн технологийн дэд бүтцэд дамжуулах зорилготойгоор бүтээгдсэн. Энэ нь хөнгөн жинтэй тул алсын зайнаас хяналт тавихад тохиромжтой, ялангуяа M2M холболтын хувьд жижиг кодын ул мөр шаарддаг эсвэл сүлжээний зурвасын өргөн хязгаарлагдмал байдаг.

MQTT хэрхэн ажилладаг

MQTT бол сүлжээний хамгийн сүүлийн үеийн төхөөрөмжүүдийг брокерт нийтлэх боломжийг олгодог нийтлэх/захиалах протокол юм. Үйлчлүүлэгчид энэ зуучлагчтай холбогддог бөгөөд энэ нь хоёр төхөөрөмжийн хоорондох холболтыг зуучилдаг. Төхөөрөмж бүр тодорхой сэдвүүдэд бүртгүүлэх эсвэл бүртгүүлэх боломжтой. Өөр үйлчлүүлэгч захиалсан сэдвээр мессеж нийтлэх үед брокер нь захиалсан аливаа үйлчлүүлэгчид захидал илгээдэг.

MQTT нь хоёр чиглэлтэй бөгөөд сессийн талаархи мэдлэгийг хадгалж байдаг. Сүлжээний ирмэгийн төхөөрөмж холболт тасарсан тохиолдолд захиалсан бүх үйлчлүүлэгчдэд MQTT серверийн "Эцсийн хүсэл зориг ба гэрээслэл" функцээр мэдэгдэх бөгөөд ингэснээр систем дэх аливаа эрх бүхий үйлчлүүлэгч шинэ үнэ цэнээ зах дээр нь нийтлэх боломжтой болно. хоёр талт холболтыг хадгалах сүлжээний төхөөрөмж.

Төслийг 3 хэсэгт хуваасан

Нэгдүгээрт, бид RPi дээр MQTT сервер үүсгэж, зарим номын санг суулгадаг.

Хоёрдугаарт, бид MQTT -тэй ажиллахын тулд NodeMCU -д зориулсан Arduino IDE -д номын санг суулгаж, кодыг байршуулж, сервер ажиллаж байгаа эсэхийг шалгана.

Эцэст нь бид Rpi дээр скрипт үүсгэж, NodeMCU -д шаардлагатай кодыг байршуулж, сервер болон үйлчлүүлэгч талаас LED -ийг удирдахын тулд python скриптийг ажиллуулдаг. Энд сервер нь RPi бөгөөд үйлчлүүлэгч нь NodeMCU юм.

Алхам 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Хамгийн сүүлийн үеийн MQTT сервер болон клиентийг RPi дээр суулгахын тулд шинэ репозиторыг ашиглахын тулд та эхлээд репозиторийн багц гарын үсэг зурах түлхүүрийг импортлох хэрэгтэй.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key нэмэх шумуул-repo.gpg.key

2. Хадгалах санг хадгалах боломжтой болгох.

cd /etc/apt/sources.list.d/

3. Та Debian -ийн аль хувилбарыг ашиглаж байгаагаас хамаарна.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get update

4. Тушаал ашиглан Mosquitto серверийг суулгана уу.

sudo apt-get шумуул суулгах

Хэрэв та ийм шумуул суулгахад алдаа гарвал.

#################################################################

Дараах багцууд хангагдаагүй хамааралтай байна: шумуул: Хамаарна: libssl1.0.0 (> = 1.0.1) гэхдээ үүнийг суулгах боломжгүй Хамаарах: libwebsockets3 (> = 1.2) гэхдээ үүнийг суулгах боломжгүй E: Асуудлыг засах боломжгүй, та эвдэрсэн байна багцууд.

#################################################################

Дараа нь асуудлыг шийдэхийн тулд энэ тушаалыг ашиглана уу.

sudo apt-засварласан эвдэрсэн суулгалт

5. MQTT серверийг суулгасны дараа командыг ашиглан клиент суулгана уу

sudo apt-get шумуул үйлчлүүлэгчдийг суулгаарай

Та командын тусламжтайгаар үйлчилгээг шалгаж болно.

systemctl status шумуул.үйлчилгээ

Манай MQTT сервер болон үйлчлүүлэгчийг суулгасан болно. Одоо бид захиалах, нийтлэх ашиглан үүнийг шалгаж болно. Бүртгүүлэх, нийтлэхийн тулд та командыг шалгаж эсвэл доорх вэбсайтад зочилж болно.

Шумуулын дэд

Шумуулын паб

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 // таны үндсэн гарц

static domain_name_servers = 192.168.1.1

Үүний дараа хадгалаад pi -ээ дахин ачаална уу.

Алхам 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

NodeMCU -д шаардлагатай номын санг Arduino IDE дээр суулгаарай

1. Sketch ==> Номын санг оруулах ==> Номын санг удирдах хэсэгт очно уу.

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 скрипт

Python скрипт
Python скрипт
Python скрипт
Python скрипт

Дээр дурдсанчлан бид товчлуур ашиглан leds -ийг удирдах python скрипт хэрэгтэй. Тиймээс бид скрипт үүсгэх гэж байна. Дээрх скриптийг өгсөн болно.

Скриптийг ажиллуулахад таны скрипт зураг дээр үзүүлсэн шиг байх ёстой, хэрэв үр дүнгийн код тэг биш бол тэдгээрийн алдаа бол paho вэбсайт дээрх алдааг шалгаж болно.

Алхам 6: Холболт ба хэлхээний диаграм

Холболт ба хэлхээний диаграм
Холболт ба хэлхээний диаграм
Холболт ба хэлхээний диаграм
Холболт ба хэлхээний диаграм

Товчны интерфейс, NodeMCU -тай LED

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Катод (-ve)

GPIO5 (D1) ===> Анод (+ve)

Товчны интерфейс, RPi бүхий LED

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Катод (-ve)

GPIO 24 ===> Анод (+ve)

Алхам 7: Үр дүн

Image
Image
Үр дүн
Үр дүн

Скрипт ажиллаж байгаа эсэхийг шалгаарай, эс бөгөөс энэ нь товчлуур ашиглан удирдагчийг удирдах боломжгүй болно.

Зөвлөмж болгож буй: