Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Komunikasi MQTT Antara NodeMCU dan Raspberry Pi 3 B+

Menggunakan Panel MQTT, NodeMCU, DHT22, RaspberryPi dan IoT MQTT untuk memantau suhu dan kelembaban.

Menggunakan Raspberry Pi 3 B+ sebagai broker untuk beberapa NodeMCU dengan sensor DHT-22 yang mengukur suhu dan kelembaban serta monitor pada IoT MQTT Panel App. Saya membuat algoritme untuk NodeMCU dan Raspberry dapat ditingkatkan. Cukup ubah topik yang dipublikasikan dan berlangganan, lalu tambahkan Aplikasi Panel MQTT IoT untuk mendapatkan semua data kapan saja.

Saya telah mencari banyak informasi di internet karena saya tidak memiliki pengetahuan tentang raspberry, python, dan MQTT. Jadi, saya telah merangkum semua yang telah saya pelajari dan memberikan penghargaan kepada situs web tersebut.

Jika koneksi internet Anda terputus, sensor Anda akan terus mengirimkan data ke broker Anda. Artinya Anda dapat menyimpan data Anda!!! (tentu saja Anda perlu melakukan beberapa pemrograman)

Silakan ikuti saya untuk pembaruan apa pun. Segera saya akan memposting video dari semuanya berjalan!

1. Menghubungkan berbagai hal:

Bagaimana tampilan jaringan Anda:

2. Memprogram hal-hal:

Pertama, Anda harus memastikan bahwa Anda telah menginstal semua library di Arduino IDE dan di Raspberry Pi 3B+ Anda.

2.1 Arduino

Instal pustaka di Arduino IDE Anda.

2.2 Raspberry Pi 3 b+

Instal pustaka di Python IDE Anda.

2.3 Mengunggah kode

Unggah kode masing-masing ke NodeMCU dan Raspberry Anda.

2.4 Menjelaskan kode – ARDUINO IDE

Itu adalah library yang disebutkan sebelumnya untuk diinstal pada Arduino IDE Anda.

#include  // Esp8266/NodeMCU Library#include  // MQTT Library#include "DHT.h" // DHT Sensor  

Variabel yang dideklarasikan untuk digunakan di seluruh kode:

const char* mqtt_server ="Broker_IP_Address"; // Alamat IP Server MQTT 

mqtt_server :untuk mendapatkan alamat IP di Raspberry pi, buka layar terminal dan ketik:

[email protected]:~ $ ifconfigwlan0:flags=4163 mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255  

Pada contoh ini alamat IP akan menjadi 192.168.1.200

const char* clientID ="room1"; // ID klien mengidentifikasi perangkat NodeMCU. 

ID klien :Nama atau nomor apa pun untuk mengidentifikasi NodeMCU yang Anda gunakan. Dalam hal ini akan ditempatkan di room1. Jadi namanya room1.

const char* topicT ="/room1/temperature"; // Suhu topikconst char* topicH ="/room1/humidity"; // Kelembaban topik 

topikT :Topik untuk mempublikasikan suhu. Dalam contoh ini untuk suhu kamar1 topiknya adalah “/kamar1/suhu”.

topikH :Topik untuk mempublikasikan kelembaban. Dalam contoh ini untuk kelembaban ruangan1 topiknya adalah “/kamar1/kelembaban”.

const char* willTopic ="/room1/status"; // Topik Statusconst char* willMessage ="0"; // 0 - Diputuskan 

willTopic :Topik untuk mempublikasikan wasiat. Ini akan digunakan untuk memeriksa apakah NodeMCU terhubung/aktif. Jika terputus, akan memublikasikan willMessage ke willTopic. Dalam hal ini “/room1/status”

willMessage :Pesan yang akan dipublikasikan di willTopic jika NodeMCU terputus/dimatikan.

int willQoS =0;boolean willRetain =true; 

willQoS :Digunakan untuk mengatur kualitas pelayanan. Dalam hal ini 0.

akan Mempertahankan :Digunakan untuk menyimpan pesan wasiat jika terjadi pemutusan. Setel ke Benar.

int counter =0; // Digunakan untuk menyambung kembali ke serverconst MQTT char* swversion ="1.0"; // Versi perangkat lunak 

penghitung :penghitung yang digunakan pada rutinitas koneksi ulang.

peralihan :digunakan untuk mengontrol revisi perangkat lunak saya.

WiFiClient wifiClient;PubSubClient client(mqtt_server, 1883, wifiClient); // 1883 adalah port pendengar untuk Pialang 

wifiClient :Membuat klien yang dapat terhubung ke port dan alamat IP internet tertentu seperti yang ditentukan dalam client.connect().

klien() :Klien adalah kelas dasar untuk semua panggilan berbasis klien WiFi. Itu tidak dipanggil secara langsung, tetapi dipanggil setiap kali Anda menggunakan fungsi yang bergantung padanya.

DHT dhtA(2, DHT22); // Instance DHT bernama dhtA, Pin pada NodeMCU D4 dan tipe sensor 

DHT :Membuat instance bernama dhtA dan menetapkan pin 2 dari NodeMCU V3 (D4) dari sensor DHT-22. Sesuai skema di bawah ini. Jika Anda ingin menggunakan pin lain, ubah nilainya menjadi pin yang benar. Sebelum mengubah pin yang digunakan, periksa pinout di bawah ini untuk menetapkan pin yang benar.

  • Menggunakan pin D2 -> GPIO4
  • DHT dhtA(4, DHT22)

Jika Anda menggunakan DHT-11 akan menjadi:

  • Menggunakan pin D2 -> GPIO4
  • DHT dhtA(4, DHT11)

CATATAN: Jika Anda menggunakan perpustakaan yang sama dengan saya. Jika Anda menggunakan perpustakaan yang berbeda, silakan periksa dokumentasi perpustakaan untuk memeriksa bagaimana Anda harus mendeklarasikan pin dan sensor yang digunakan.

pengaturan batal() :Di sini kita menginisialisasi sesuatu.

pengaturan batal() {Serial.begin(9600); // Tujuan debug memeriksa apakah DHT dan koneksi dengan MQTT Broker berfungsi denganSerial.print(swversion);// Debug. Versi perangkat lunakdhtA.begin(); // Memulai DHT-22 

Menghubungkan ke broker MQTT.

delay(2000); // Tunda untuk mengizinkan koneksi pertama dengan MQTT Broker 

penundaan(2000) :menambah waktu jika koneksi pertama gagal. Dalam hal ini 2000 memungkinkan NodeMCU untuk terhubung ke Broker.

if (client.connect(clientID,"","", willTopic, willQoS, willRetain, willMessage, true)) { // Menghubungkan ke Broker MQTT 

client.connect() :dijelaskan di bawah ini. Diambil dari: https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

koneksi boolean (ID klien, nama pengguna, kata sandi, willTopic, willQoS, willRetain, willMessage, cleanSession)

Menghubungkan klien dengan pesan Will, nama pengguna, kata sandi, dan bendera sesi bersih yang ditentukan.

Catatan :meskipun cleanSession disetel ke false /0 klien akan tidak coba lagi gagal qos 1 publikasi. Bendera ini hanya digunakan untuk mempertahankan langganan di broker.

Parameter

  • ID klien :ID klien yang akan digunakan saat menghubungkan ke server.
  • nama pengguna :nama pengguna yang akan digunakan. Jika NULL, tidak ada nama pengguna atau sandi yang digunakan (const char[])
  • sandi :kata sandi yang akan digunakan. Jika NULL, tidak ada kata sandi yang digunakan (const char[])
  • willTopic :topik yang akan digunakan oleh pesan wasiat (const char[])
  • willQoS :kualitas layanan yang akan digunakan oleh pesan wasiat (int :0,1 atau 2)
  • willRetain :apakah surat wasiat harus diterbitkan dengan tanda penahan (int :0 atau 1)
  • willMessage :muatan pesan wasiat (const char[])
  • cleanSession :apakah akan menghubungkan sesi-bersih atau tidak (boolean)

Pengembalian

  • salah – koneksi gagal.
  • benar – koneksi berhasil.

Sumber:Komunikasi MQTT Antara NodeMCU dan Raspberry Pi 3 B+


Proses manufaktur

  1. Sensor Suhu Python dan Raspberry Pi
  2. Sensor Suhu dan Cahaya Raspberry Pi
  3. Sensor Pi Raspberry dan Kontrol Aktuator
  4. MODEL B RASPBERRY PI 3 BARU + FITUR DAN PEMBELIAN
  5. Membuat robot dengan Raspberry Pi dan Python
  6. Perbedaan Antara Elektroplating Dan Anodizing
  7. Perbedaan Antara Logam Nonferrous dan Ferrous
  8. Perbedaan antara mematri dan menyolder
  9. Perbedaan antara pengeboran, membosankan dan reaming
  10. Perbedaan antara pembentuk dan mesin planer