Daftar Isi:
- Langkah 1: Menyiapkan Akun AWS
- Langkah 2: Spesifikasi Perangkat Keras dan Perangkat Lunak
- Langkah 3: Sensor Getaran dan Suhu Nirkabel
- Langkah 4: Firmware AWS ESP32
- Langkah 5: Mendapatkan Data Sensor Dari Sensor Getaran dan Suhu Nirkabel
- Langkah 6: Menghubungkan ke AWS
- Langkah 7: Memvisualisasikan Data di AWS
- Langkah 8: Kode Keseluruhan
Video: Memulai AWS IoT Dengan Sensor Suhu Nirkabel Menggunakan MQTT: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Di Instructables sebelumnya, kami telah melalui berbagai platform cloud seperti Azure, Ubidots, ThingSpeak, Losant dll. Kami telah menggunakan protokol MQTT untuk mengirim data sensor ke cloud di hampir semua platform cloud. Untuk informasi lebih lanjut tentang MQTT, kelebihan dan manfaatnya dibandingkan protokol HTTP, Anda dapat merujuk ke instruksi ini.
Dalam instruksi ini, kami akan memperbesar platform cloud lain dan paling akrab Amazon Web Services. Banyak dari Anda mungkin akrab dengan AWS alias Amazon Web Services dan fungsionalitas cloud yang disediakan oleh AWS. Ini telah menjadi inti dari pengembangan web selama bertahun-tahun. Dengan meningkatnya skala aplikasi IoT, AWS telah menghadirkan solusi AWSIoT. AWSIoT adalah solusi andal untuk menghosting aplikasi IoT kami.
Dengan mengikuti instruksi ini:
- Anda akan dapat mengatur akun AWS untuk aplikasi IoT Anda
- Anda akan dapat menghubungkan ESP32 ke inti AWS IoT
- Kirim dan terima pesan menggunakan protokol MQTT dan
- Visualisasikan data yang dikirim di AWS
Langkah 1: Menyiapkan Akun AWS
Menyiapkan akun AWS cukup mudah. Anda hanya perlu mengunggah beberapa sertifikat, melampirkan kebijakan, Daftarkan perangkat dan mulai menerima pesan data sensor di AWS.
Untuk mengatur akun AWS ikuti tutorial ini.
Langkah 2: Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi Perangkat Lunak
Akun AWS
Spesifikasi Perangkat Keras
- ESP32
- Sensor Suhu dan Getaran Nirkabel
- Penerima Gerbang Zigmo
Langkah 3: Sensor Getaran dan Suhu Nirkabel
Ini adalah sensor suhu dan getaran nirkabel IoT Industri Jarak Jauh, yang dapat dibanggakan hingga jarak 2 Mil menggunakan arsitektur jaringan mesh nirkabel. Menggabungkan sensor Getaran dan Suhu 16-bit, sensor ini mentransmisikan data getaran yang sangat akurat pada interval yang ditentukan pengguna. Ini memiliki fitur berikut:
- Sensor Getaran 3-sumbu Kelas Industri dengan Rentang ± 32g
- Menghitung RMS, MAX, dan MIN g Getaran
- Penghapusan Kebisingan menggunakan Filter Low-pass
- Rentang Frekuensi (Bandwidth) hingga 12.800 Hz
- Tingkat Sampel hingga 25, 600Hz
- Komunikasi Terenkripsi dengan Jangkauan Nirkabel 2 Mil
- Kisaran Suhu Pengoperasian -40 hingga +85 °C
- Perangkat Lunak Contoh Enklosur dengan Nilai IP65 yang Dipasang di Dinding atau Dipasang Magnet untuk Visual Studio dan LabVIEW
- Sensor Getaran dengan Opsi Probe Eksternal
- Hingga 500.000 Transmisi dari 4 Baterai AA Tersedia Banyak Pilihan Gateway dan Modem
Langkah 4: Firmware AWS ESP32
Untuk terhubung ke AWS dan mulai mengirim data, lakukan langkah-langkah berikut
- Unduh perpustakaan AWS dari repositori Github berikut
- mengkloning repo dan menempatkan file AWS_IOT ke folder perpustakaan direktori Arduino
git clone
Sekarang mari kita lihat kodenya:
- Dalam aplikasi ini, kami telah menggunakan portal tawanan untuk menyimpan kredensial WiFi dan mengarahkan kursor melalui pengaturan IP. Untuk pengenalan terperinci tentang portal tawanan, Anda dapat mengikuti instruksi berikut.
- Portal captive memberi kita pilihan untuk memilih antara pengaturan Statis dan DHCP. Cukup masukkan kredensial seperti IP Statis, Subnet Mask, gateway dan Wireless Sensor Gateway akan dikonfigurasi pada IP tersebut.
- Halaman web sedang di-host di mana daftar yang menunjukkan jaringan WiFi yang tersedia dan RSSI di sana. Pilih jaringan WiFi dan kata sandi dan masukkan kirim. Kredensial akan disimpan di EEPROM dan pengaturan IP akan disimpan di SPIFFS. Lebih lanjut tentang ini dapat ditemukan di instruksi ini.
Langkah 5: Mendapatkan Data Sensor Dari Sensor Getaran dan Suhu Nirkabel
Kami mendapatkan bingkai 54-byte dari Sensor Suhu dan Getaran Nirkabel. Bingkai ini dimanipulasi untuk mendapatkan suhu aktual dan data Getaran.
ESP32 memiliki tiga UART yang tersedia untuk penggunaan Serial
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
dan 3 port serial perangkat keras
- Serial
- Serial1
- Serial2
Pertama, inisialisasi file header Hardware Serial. Di sini kita akan menggunakan RX2 dan TX2 alias. GPIO 16 dan GPIO 17 pin papan ESP32 untuk mendapatkan data serial.
#termasuk
# tentukan RXD2 16 # tentukan TXD2 17
Serial2.begin(115200, SERIAL_8N1, RXD2, TXD2); // pin 16 rx2, 17 tx2, 19200 bps, 8 bit tanpa paritas 1 stop bit
Langkah-langkah berikut akan membawa Anda lebih jauh untuk mendapatkan nilai sensor yang sebenarnya
- Buat variabel untuk menyimpan suhu, kelembaban, baterai, dan nilai sensor lainnya
- Atur Rx, tx pin, baud rate, dan bit paritas untuk serial perangkat keras
- Pertama, periksa apakah ada sesuatu untuk dibaca menggunakan Serial1.available()
- Kami akan mendapatkan bingkai 54 byte.
- Periksa 0x7E yang merupakan byte awal.
- Data getaran terdiri dari nilai RMS untuk 3 sumbu, nilai min untuk 3 sumbu, nilai maks untuk 3 sumbu.
- suhu dan nilai baterai akan berisi 2 byte data
- dapatkan nama sensor, jenis, versi sensor akan berisi 1 byte data dan dapat diperoleh dari alamat masing-masing di sana
if (Serial2.available()) { Serial.println("Baca Serial"); data[0] = Serial2.read(); penundaan (k); if(data[0]==0x7E) { Serial.println("Mendapat Paket"); while (!Serial2.available()); for (i = 1; i< 55; i++) { data = Serial2.read(); penundaan (1); } if(data[15]==0x7F) /////// untuk memeriksa apakah data yang diterima sudah benar { if(data[22]==0x08) //////// pastikan jenis sensor benar { rms_x = ((uint16_t)(((data[24])<<16) + ((data[25])<<8) + (data[26]))/100); rms_y = ((uint16_t)(((data[27])<<16) + ((data[28])<<8) + (data[29]))/100); rms_z = ((uint16_t)(((data[30])<<16) + ((data[31])<<8) + (data[32]))/100); int16_t max_x = ((uint16_t)(((data[33])<<16) + ((data[34])<<8) + (data[35]))/100); int16_t max_y = ((uint16_t)(((data[36])<<16) + ((data[37])<<8) + (data[38]))/100); int16_t max_z = ((uint16_t)(((data[39])<<16) + ((data[40])<<8) + (data[41]))/100);
int16_t min_x = ((uint16_t)(((data[42])<<16) + ((data[43])<<8) + (data[44]))/100); int16_t min_y = ((uint16_t)(((data[45])<<16) + ((data[46])<<8) + (data[47]))/100); int16_t min_z = ((uint16_t)(((data[48])<<16) + ((data[49])<<8) + (data[50]))/100);
cTemp = ((((data[51]) * 256) + data[52])); baterai float = ((data[18] * 256) + data[19]); tegangan = 0,00322 * baterai; Serial.print("Nomor Sensor "); Serial.println(data[16]); senseNumber = data[16]; Serial.print("Jenis Sensor "); Serial.println(data[22]); Serial.print("Versi Firmware "); Serial.println(data[17]); Serial.print("Suhu dalam Celcius:"); Serial.print(cTemp); Serial.println("C"); Serial.print("Getaran RMS pada sumbu X:"); Serial.print(rms_x); Serial.println("mg"); Serial.print("Getaran RMS pada sumbu Y:"); Serial.print(rms_y); Serial.println("mg"); Serial.print("Getaran RMS pada sumbu Z:"); Serial.print(rms_z); Serial.println("mg");
Serial.print("Getaran minimum pada sumbu X:");
Serial.print(min_x); Serial.println("mg"); Serial.print("Getaran minimum pada sumbu Y:"); Serial.print(min_y); Serial.println("mg"); Serial.print("Getaran minimum pada sumbu Z:"); Serial.print(min_z); Serial.println("mg");
Serial.print("Nilai ADC:");
Serial.println(baterai); Serial.print("Tegangan Baterai:"); Serial.print(tegangan); Serial.println("\n"); if (tegangan < 1) { Serial.println("Waktunya Mengganti Baterai"); } } } else { untuk (i = 0; i< 54; i++) { Serial.print(data); Serial.print(", "); penundaan (1); } } } }
Langkah 6: Menghubungkan ke AWS
- Sertakan file header AWS_IOT.h, WiFi.h untuk mengatur koneksi dengan hub AWSIoT
- Masukkan Alamat Host Anda, ID Klien yang akan menjadi nama kebijakan, dan nama topik yang akan menjadi nama hal
//*********Kredensial AWS*************//char HOST_ADDRESS="a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID= "ncdGatewayPolicy"; char TOPIC_NAME= "ncdGatewayThing";
Buat variabel char untuk menyimpan JSON Anda, dalam hal ini, kami telah membuat format untuk menyimpan JSON
const char *format = "{"SensorId\":\"%d\", \"messageId\":%d, \"rmsX\":%d, \"rmsY\":%d, \"rmsZ \":%d, \"cTemp\":%d, \"voltage\":%.2f}";
Buat instance kelas AWS_IOT
AWS_IOT terutama; //Instance dari kelas AWS_IOT
Sekarang sambungkan ke hub AWSIoT menggunakan metode berikut
void reconnectMQTT(){ if(hornbill.connect(HOST_ADDRESS, CLIENT_ID)== 0) { Serial.println("Terhubung ke AWS"); penundaan (1000);
if(0==hornbill.subscribe(TOPIC_NAME, mySubCallBackHandler))
{ Serial.println("Berhasil Berlangganan"); } else { Serial.println("Gagal Berlangganan, Periksa Nama Barang dan Sertifikat"); sementara(1); } } else { Serial.println("Koneksi AWS gagal, Periksa Alamat HOST"); sementara(1); }
penundaan(2000);
}
mempublikasikan data sensor setelah setiap 1 menit
if(centang >= 60) // publikasikan ke topik setiap 5 detik { tick=0; muatan char[PAYLOAD_MAX_LEN]; snprintf(payload, PAYLOAD_MAX_LEN, format, senseNumber, msgCount++, rms_x, rms_y, rms_z, cTemp, voltase); Serial.println(muatan); if(hornbill.publish(TOPIC_NAME, payload) == 0) { Serial.print("Publikasikan Pesan:"); Serial.println(muatan); } else { Serial.println("Penerbitan gagal"); } } vTaskDelay(1000 / portTICK_RATE_MS); centang++;
Langkah 7: Memvisualisasikan Data di AWS
- Masuk ke akun AWS Anda.
- di sudut kiri bilah alat, Anda akan menemukan tab Layanan
- Klik pada tab ini dan di bawah judul Internet of Things pilih IoT Core.
- Pilih QoS dan no. dari pesan ke pelanggan. Masukkan nama topik.
Langkah 8: Kode Keseluruhan
Anda dapat menemukan kode keseluruhan di Repositori Github ini.
Kredit
- Arduino Json
- Sensor Suhu dan Kelembaban Nirkabel
- ESP32
- PubSubClient
Direkomendasikan:
Memulai Dengan Sensor Suhu dan Getaran Nirkabel Jarak Jauh: 7 Langkah
Memulai Dengan Sensor Suhu dan Getaran Nirkabel Jarak Jauh: Terkadang getaran adalah penyebab masalah serius di banyak aplikasi. Dari poros dan bantalan mesin hingga kinerja hard disk, getaran menyebabkan kerusakan mesin, penggantian lebih awal, kinerja rendah, dan memberikan pukulan besar pada akurasi. Memantau
Data Sensor Getaran dan Suhu Nirkabel ke MySQL Menggunakan Node-RED: 40 Langkah
Data Sensor Getaran dan Suhu Nirkabel ke MySQL Menggunakan Node-RED: Memperkenalkan sensor getaran dan suhu nirkabel NCD Long Range IoT Industrial, yang membanggakan penggunaan struktur jaringan mesh nirkabel hingga jarak 2 mil. Menggabungkan sensor getaran dan suhu 16-bit yang presisi, perangkat ini
Sensor Suhu dan Kelembaban Nirkabel Jarak Jauh IOT Dengan Node-Red: 27 Langkah
Sensor Suhu dan Kelembaban Nirkabel Jarak Jauh IOT Dengan Node-Red: Memperkenalkan sensor suhu-kelembaban nirkabel jarak jauh NCD, yang menawarkan jangkauan hingga 28 Mile menggunakan arsitektur jaringan mesh nirkabel. Menggabungkan sensor suhu-kelembaban Honeywell HIH9130 mentransmisikan suhu yang sangat akurat dan
Sensor Suhu dan Gerak Nirkabel IoT: 11 Langkah (dengan Gambar)
Sensor Suhu dan Gerak Nirkabel IoT: Saya terinspirasi oleh banyak proyek IoT yang ada di Instructables, jadi dalam proses pembelajaran saya mencoba menggabungkan beberapa aplikasi berguna yang relevan. Sebagai perpanjangan dari Instruksi saya sebelumnya yang terkait dengan sensor Suhu IoT, saya sekarang
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): 6 Langkah (Dengan Gambar)
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini dan