Daftar Isi:
- Langkah 1: Pinout ESP32
- Langkah 2: Pinout NodeMCU
- Langkah 3: MQTT
- Langkah 4: Perakitan
- Langkah 5: Diagram
- Langkah 6: Perpustakaan
- Langkah 7: Perpustakaan Pembacaan Suhu dan Kelembaban
- Langkah 8: Perpustakaan MQTT
- Langkah 9: MQTT.ino
- Langkah 10: Grafik
- Langkah 11: File
Video: IBM Watson Dengan ESP32 Sebagai Titik Akhir: 11 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Saya memposting di sini hari ini video pertama dari seri tentang cara memasang perangkat Endpoint dengan ESP32, dan kemudian mengirimkannya ke layanan cloud. Dalam episode khusus ini, saya akan menunjukkan cara mengirim informasi dari sensor DHT22 menggunakan protokol MQTT untuk IBM Watson.
Pertama-tama kami akan memperkenalkan MQTT, yang merupakan protokol mesin-ke-mesin yang digunakan di IoT (Internet of Things). Kami juga akan mengirim data dari sensor suhu dan kelembaban menggunakan protokol ini, dan kemudian memeriksa grafik dengan data ini di halaman web.
Langkah 1: Pinout ESP32
Saya menempatkan di sini Pinout dari ESP32, yang kami gunakan dalam contoh kami. Namun, saya ingin memperjelas bahwa proyek ini juga bekerja dengan ESP8266, dan bahkan dengan kode sumber yang sama.
Langkah 2: Pinout NodeMCU
Langkah 3: MQTT
MQTT adalah protokol mesin-ke-mesin yang digunakan di IoT. Itu dirancang untuk menjadi ringan dan cepat. Ini menggunakan sistem berlangganan/publikasikan, di mana perangkat "berlangganan" ke topik dengan informasi spesifik yang Anda minati, dan kemudian menerima informasi tersebut setiap kali perangkat menerbitkan data tentang topik ini.
Seperti program server, MQTT membutuhkan perangkat lunak. Ini disebut Pialang. Dalam kasus khusus ini, kami akan menggunakan Layanan Bluemix IoT IBM. Layanan ini gratis untuk pengujian titik akhir.
Selanjutnya, kita perlu memiliki ponsel atau tablet dengan sisi Aplikasi, yaitu sebagai klien MQTT. Kami juga memiliki sisi Perangkat, yang merupakan sisi ESP dengan termometer. Ini mengirimkan data suhu dan kelembaban ke Bluemix, yang kemudian mengirimkan informasi ini ke Sisi Aplikasi.
Langkah 4: Perakitan
Sirkuit kami terdiri dari resistor 4.7k Ohm antara 3.3v dan pin data, ditambah DHT22 yang terhubung ke GPIO4 dari ESP32 atau NodeMCU. Jadi, ini adalah Titik Akhir kami.
Langkah 5: Diagram
Saya tunjukkan di sini beberapa cara untuk bekerja dengan Pialang Lokal MQTT. Saya menempatkan dua model diagram. Dalam video, saya berbicara tentang situasi menggunakan Raspberry Pi untuk membuka gerbang, misalnya.
Pada gambar di atas, kami memiliki arsitektur pertama yang menggunakan Broker lokal dengan ketekunan, dan arsitektur kedua di bawah yang hanya berkomunikasi dengan broker di cloud.
Seperti yang ditunjukkan pada diagram, sensor kami kemudian mengirimkan data suhu dan kelembaban ke IBM Watson. Penting untuk ditekankan bahwa IBM Watson tidak menulis data dalam kasus ini, karena hanya ditampilkan dalam grafik. Ini karena kami tidak akan membahas operasi basis data apa pun dalam contoh hari ini, tetapi hanya menunjukkan akses ke halaman Quickstart (https://quickstart.internetofthings.ibmcloud.com/), yang akan menampilkan status Endpoint. Skemanya sederhana dan menggunakan WiFi untuk mengirim data.
Langkah 6: Perpustakaan
Di Arduino IDE, masuk ke menu Sketch -> Include Library -> Manage Libraries…
Pada layar yang terbuka, masukkan pencarian "DHT" dan instal lib "perpustakaan sensor DHT"
Kemudian, ketik "PubSubClient" dan instal lib "PubSubClient".
Langkah 7: Perpustakaan Pembacaan Suhu dan Kelembaban
Langkah 8: Perpustakaan MQTT
Langkah 9: MQTT.ino
Kami memulai kode sumber dengan memeriksa ESP mana yang digunakan dan mengimpor perpustakaan dan WiFi yang sesuai. Kami masih menyertakan MQTT Libs dan Sensor Suhu dan Kelembaban.
//Verifikasi kualitas ESP dan kirim utilizado//e importa lib e wifi koresponden #if didefinisikan(ESP8266) #include #else #include #endif //Lib de MQTT #include //Lib lakukan sensor suhu dan umidade #include
Selanjutnya kita definisikan sebagai berikut: interval antar pengiriman data, server MQTT yang akan digunakan, informasi print pada chart, dan ID. Kami juga menunjukkan bagaimana seharusnya string QUICK_START.
//Intervalo entre os envios#define INTERVAL 1000 //Substitua pelo SSID da sua rede #define SSID "TesteESP" //Substitua pela senha da sua rede #define PASSWORD "87654321" //Server MQTT que iremos utlizar #SERFINe.messaging.internetofthings.ibmcloud.com" //Nome do tópico que devemos enviar os dados //para que eles apareçam nos gráficos #define TOPIC_NAME "iot-2/evt/status/fmt/json" //ID que usaremos para conectar //QUICK_START mengembangkan permanecer como está const String QUICK_START = "d:quickstart:arduino:";
Pada langkah ini, kami mendefinisikan ID unik. Dalam contoh ini, kami menggunakan Alamat MAC dari perangkat yang kami gunakan. Ini akan berfungsi sebagai identifikasi di situs QuickStart. Di sini, kami juga menghubungkan ID Quickstart dengan ID perangkat kami.
//No DEVICE_ID você deve mudar para um id nico//Aqui nesse exemplo utilizamos o Alamat MAC //lakukan dispositivo que estamos utilizando //Servirá como identificação tidak ada situs //https://quickstart.internetofthings.ibmcloud.com const String DEVICE_ID = "240ac40e3fd0"; //Concatemos o id do quickstart com o id do nosso //dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;
Kami kemudian mengkonfigurasi MQTT dan WiFi, serta objek dan variabel yang terlibat dengan nilai suhu dan kelembaban.
//Antrian WiFi klien o MQTT untuk digunakan secara konektarWiFiClient wifiClient; //Client MQTT, passamos url do server, porta //e o klien WiFi PubSubClient client(MQTT_SERVER, 1883, wifiClient); //Tempo em que o ltimo envio foi feito long lastPublishTime = 0; //Objeto que realiza a leitura da suhu dan umidade DHT dht(4, DHT22); //Variável para guardarmos o valor da temperaturea float temperature = 0; //Variável para guardarmos o valor da umidade float kelembaban = 0;
MQTT.ino - pengaturan
Di Setup, kami akan menginisialisasi DHT, dan terhubung di jaringan WiFi dan server MQTT.
void setup() { Serial.begin(115200); //Incializamos atau dht dht.begin(); //Conectamos ulang pengaturan WiFiWiFi(); //Conectamos dan server MQTT connectMQTTServer(); }
MQTT.ino - loop
Dalam Loop, kami mengumpulkan data sensor untuk membuat Json yang akan dipublikasikan dalam topik yang diharapkan IBM Watson untuk menghasilkan grafik.
void loop() { //Tempo agora em milisegundos lama sekarang = milis(); //Se o tempo desde o ltimo envio for maior que o intervalo de envio if (now - lastPublishTime > INTERVAL) { //Atualizamos o tempo em que ocorreu o ltimo envio lastPublishTime = sekarang; //Fazemos dan suhu dan suhu readSensor(); Serial.print("Publikasikan pesan: "); //Criamos o json que enviaremos para o server mqtt String msg = createJsonString(); Serial.println(pesan); //Publicamos no tópico onde o service espera para receber //e gerar o gráfico client.publish(TOPIC_NAME, msg.c_str()); } }
MQTT.ino - setupWiFi
Di sini, kami memiliki fungsi yang bertanggung jawab untuk menghubungkan ke jaringan WiFi.
//Menyenangkan respons dari konektar rede WiFivoid setupWiFi() { Serial.println(); Serial.print("Menghubungkan ke "); Serial.print(SSID); //Manda o esp se conectar rede através //lakukan ssid dan senha WiFi.begin(SSID, PASSWORD); //Espera até que a conexão com a rede seja estabelecida while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } //Se chegou aqui é porque conectou Serial.println(""); Serial.println("WiFi terhubung"); }
MQTT.ino - sambungkanMQTTServer
Pada langkah ini, kami menggunakan fungsi yang bertanggung jawab untuk menghubungkan ke server MQTT.
//Menyenangkan respons dari koneksi ke server MQTTvoid connectMQTTServer() { Serial.println("Menghubungkan ke Server MQTT…"); //Se conecta ao id que definimos if (client.connect(CLIENT_ID.c_str())) { //Se a conexão foi bem sucedida Serial.println("connected"); } else { //Se ocorreu algum erro Serial.print("error = "); Serial.println(klien.status()); } }
MQTT.ino - readSensor
Pembacaan data suhu dan kelembaban ditentukan dalam fungsi ini.
//Função responsável por realizar a leitura //da suhu dan umidade void readSensor(){ nilai float; //Faz a leiura da nilai suhu = dht.readTemperature(); //Se o valor lido é válido if(!isnan(value)){ //Armazena o novo valor da temperaturea temperature = nilai; } //Faz a leitura da umidade nilai = dht.readHumidity(); //Se o valor for válido if(!isnan(value)){ //Armazena o novo valor da umidade kelembaban = nilai; } }
MQTT.ino - createJsonString
Di sini, kami memiliki fungsi yang bertanggung jawab untuk membuat Json dengan data yang dibaca.
//Função responsável por criar//um Json com os dados lidos String createJsonString() { String data = "{"; data+= "\"d\": {"; data+="\"suhu\":"; data+=String(suhu); data+=", "; data+="\"kelembaban\":"; data+=String(kelembaban); data+="}"; data+="}"; mengembalikan data; }
Langkah 10: Grafik
Untuk melihat grafik sensor, buka
ke
Di bidang ID Perangkat, masukkan DEVICE_ID yang Anda tentukan dalam kode.
- Penting untuk mengubah ID Perangkat ini menjadi ID unik, yang digunakan hanya untuk menghindari konflik dengan data yang dikirim oleh orang lain.
Terakhir, terima persyaratannya dan klik Go.
Dalam proyek ini, kami menguji Endpoint kami di server IBM Watson. Ini memastikan bahwa program Arduino kami berkomunikasi dengan baik dengan platform, dan bahwa data yang kami kirim akan diterima dengan lancar oleh layanan cloud jika kami membuat akun.
Dalam video mendatang dalam seri ini, saya akan menunjukkan kepada Anda cara masuk ke IBM Watson, serta menulis di bank data layanan cloud ini atau lainnya, seperti Google, Amazon, dan lainnya.
Langkah 11: File
Unduh file:
SAYA TIDAK
Direkomendasikan:
Arduino Sebagai ISP -- Bakar File Hex di AVR -- Sekering di AVR -- Arduino Sebagai Pemrogram: 10 Langkah
Arduino Sebagai ISP || Bakar File Hex di AVR || Sekering di AVR || Arduino Sebagai Programmer:……………………..Silakan BERLANGGANAN ke saluran YouTube saya untuk lebih banyak video……..Artikel ini adalah semua tentang arduino sebagai ISP. Jika anda ingin mengupload file hex atau ingin memasang fuse di AVR maka anda tidak perlu membeli programmer, anda bisa melakukan
IoT Hidroponik - Menggunakan IBM Watson untuk Pengukuran PH dan EC: 7 Langkah (dengan Gambar)
IoT Hidroponik - Menggunakan IBM Watson untuk Pengukuran PH dan EC: Instruksi ini akan menunjukkan cara memantau EC, pH, dan suhu pengaturan hidroponik dan mengunggah data ke layanan Watson IBM. Watson bebas untuk memulai. Ada paket berbayar, tetapi paket gratis lebih dari cukup untuk proyek ini
Jalur Kereta Api Model Titik ke Titik Otomatis Dengan Pelapis Halaman: 10 Langkah (dengan Gambar)
Automated Point to Point Model Railroad With Yard Siding: Mikrokontroler Arduino membuka kemungkinan besar dalam model perkeretaapian, terutama dalam hal otomatisasi. Proyek ini adalah contoh dari aplikasi semacam itu. Ini adalah kelanjutan dari salah satu proyek sebelumnya. Proyek ini terdiri dari titik
Titik Akses Wifi Raspberry Pi Zero Dengan Antena PCB Kustom: 6 Langkah (dengan Gambar)
Raspberry Pi Zero Wifi Access Point Dengan Antena PCB Kustom: Apa yang kita buat? Judul tutorial ini memiliki banyak istilah teknis di dalamnya. Mari kita hancurkan. Apa itu Raspberry Pi Zero (Rπ0)? Raspberry Pi Zero adalah komputer kecil. Ini adalah versi yang lebih kecil dari komputer papan tunggal Raspberry Pi
Cara Menggunakan Wiimote Sebagai Mouse Komputer Menggunakan Lilin Sebagai Sensor!!: 3 Langkah
Cara Menggunakan Wiimote Sebagai Mouse Komputer Menggunakan Lilin Sebagai Sensor!!: Panduan ini akan menunjukkan cara menghubungkan Wii Remote (Wiimote) ke komputer dan menggunakannya sebagai mouse