Daftar Isi:

IOT Dengan Jaringan Seluler Dengan ESP32: 23 Langkah
IOT Dengan Jaringan Seluler Dengan ESP32: 23 Langkah

Video: IOT Dengan Jaringan Seluler Dengan ESP32: 23 Langkah

Video: IOT Dengan Jaringan Seluler Dengan ESP32: 23 Langkah
Video: LED Control using Web Server - ESP32 (IoT project) 2024, Juli
Anonim
Image
Image
Demonstrasi
Demonstrasi

Hari ini kita akan membahas tentang modem GPRS atau lebih tepatnya ESP32 dan penggunaannya dengan jaringan telepon seluler. Ini adalah sesuatu yang bekerja dengan sangat baik. Menggunakan protokol MQTT, kami kemudian akan mengirim data ke dasbor Ubidots. Gunakan dalam rakitan ini tampilan untuk umpan balik sirkuit, selain SIM800L dan chip ponsel. Oleh karena itu, dengan proyek ini, kami akan mengirimkan data suhu dan kelembaban melalui GPRS dan MQTT, dan memvisualisasikan data tersebut dalam diagram garis.

Langkah 1: Demonstrasi

Langkah 2: Perakitan

perakitan
perakitan

Langkah 3: Perakitan - Tabel

Perakitan - Meja
Perakitan - Meja

Langkah 4: Ubidots

Ubidot
Ubidot

Langkah 5: Perpustakaan SimpleDHT

Perpustakaan SimpleDHT
Perpustakaan SimpleDHT

Di Arduino IDE, buka Sketsa-> Sertakan Perpustakaan-> Kelola Perpustakaan …

Instal SimpleDHT

Langkah 6: Pustaka PubSubClient

Pustaka PubSubClient
Pustaka PubSubClient

Di Arduino IDE, buka Sketsa-> Sertakan Perpustakaan-> Kelola Perpustakaan …

Instal PubSubClient

Langkah 7: Perpustakaan TinyGSM

Perpustakaan TinyGSM
Perpustakaan TinyGSM

Di Arduino IDE, buka Sketsa-> Sertakan Perpustakaan-> Kelola Perpustakaan …

Instal TinyGSM

Langkah 8: Perpustakaan TFT_eSPI

Perpustakaan TFT_eSPI
Perpustakaan TFT_eSPI

Di Arduino IDE, buka Sketsa-> Sertakan Perpustakaan-> Kelola Perpustakaan …

Instal TFT_eSPI

Langkah 9: Perpustakaan TFT_eSPI

Perpustakaan TFT_eSPI
Perpustakaan TFT_eSPI

Ubah pin tampilan di folder lib.

Penyematan ada di file User_Setup.h di

C: / Users / \ Documents / Arduino / perpustakaan / TFT_eSPI

Ubah default ini ke nilai berikut pada gambar.

Langkah 10: Ubidots

Ubidot
Ubidot
Ubidot
Ubidot
Ubidot
Ubidot

Masuk ke Ubidots dengan akun Anda dan klik Perangkat

Klik tombol "+" di pojok kanan atas

Klik Kosong

Masukkan nama perangkat. Perhatikan "label perangkat", karena ini akan digunakan dalam "topik" yang akan kita gunakan di.ino

Dalam daftar perangkat, perangkat yang baru saja Anda buat akan muncul. Klik di atasnya.

Pada layar yang muncul, klik "Tambah Variabel." Sebuah popup akan muncul. Klik pada "Mentah."

Klik kotak teks, dan masukkan nama properti.

Itu harus persis seperti yang akan kita kirim di json dari.ino. Ulangi ini untuk properti lainnya.

Kembali ke dashboard dengan mengklik logo Ubidots.

Di dasbor, klik "Tambah Widget baru"

Dalam daftar Widget, pilih "Sumbu ganda"

Langkah 11: Mengubah Data di.ino

Mengubah Data di.ino
Mengubah Data di.ino
Mengubah Data di.ino
Mengubah Data di.ino

Langkah 12: GPRS_ESP32_DHT.ino - Deklarasi dan Variabel

GPRS_ESP32_DHT.ino - Deklarasi dan Variabel
GPRS_ESP32_DHT.ino - Deklarasi dan Variabel

#define TINY_GSM_MODEM_SIM800 //Tipo de modem que estamos usando#include #include #include #include #include //Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" //Tummosde postara o dvadz0123 (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" //id lakukan dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" //URL lakukan MQTTQTT_server mqtt://things.ubidots.com" //Porta padrão do MQTT #define MQTT_PORT 1883 //Pino onde está o DHT22 #define DHT_PIN 27

Langkah 13: Menyematkan

Menyematkan
Menyematkan

//Pinagem em User_Setup.h dan pasta da bibliotecaTFT_eSPI display = TFT_eSPI(); //Intervalo entre os envios dan refresh da tela #define INTERVAL 10000 //Canal serial que vamos usar para comunicarmos com o modem. Memanfaatkan semper 1 HardwareSerial SerialGSM(1); modem GSM kecilGSM(SerialGSM); TinyGsmClient gsmClient(modemGSM); //Client MQTT, passamos url do server, porta //e o klien GSM PubSubClient client(MQTT_SERVER, MQTT_PORT, gsmClient); //Tempo em que o ltimo envio/refresh foi feito uint32_t lastTime = 0; kelembaban mengambang; //Variável onde iremos armazenar o valor da umidade float temperature; //Variável onde iremo armazenar o valor da temperatur SimpleDHT22 dht; //Objeto que realizará a leitura da umidade dan suhu

Langkah 14: Pengaturan

void setup() { Serial.begin(115200); setupTampilan(); //Inisialisasi dan konfigurasi tampilan setupGSM(); //Inisialisasi dan konfigurasi modem GSM connectMQTTServer(); //Conectamos ao mqtt server //Espera 2 segundos e limpamos o display delay(2000); display.fillScreen(TFT_BLUE); display.setCursor(0, 0); }

Langkah 15: Tampilan Pengaturan

void setupDisplay(){ display.init(); display.setRotation(1); display.fillScreen(TFT_BLUE); //Limpa o display com a cor azul display.setTextColor(TFT_WHITE, TFT_BLUE); //Coloca o texto como branco com fundo azul display.setTextWrap(true, true);//Ativa quebra de linha display.setTextSize(1); display.setCursor(0, 0, 2); //Posicção x, y e fonte do texto display.println("Setup Display Complete"); }

Langkah 16: SetupGSM

void setupGSM(){ display.println("Setup GSM…"); //Inicializamos sebuah serial onde está o modem SerialGSM.begin(9600, SERIAL_8N1, 4, 2, false); penundaan(3000); //Informasi paling sederhana dari modem Serial.println(modemGSM.getModemInfo()); //Inisialisasi modem if (!modemGSM.restart()) { display.println("Restart GSM Modem gagal"); penundaan (10000); ESP.mulai ulang(); kembali; } //Espera pela rede if (!modemGSM.waitForNetwork()) { display.println("Gagal terhubung ke jaringan"); penundaan (10000); ESP.mulai ulang(); kembali; } //Conecta rede gprs (APN, usuário, senha) if (!modemGSM.gprsConnect("", "", "")) { display.println("Koneksi GPRS Gagal"); penundaan (10000); ESP.mulai ulang(); kembali; } display.println("Setup GSM Berhasil"); }

Langkah 17: ConnectMQTTServer

void connectMQTTServer() { display.println("Menghubungkan ke Server MQTT…"); //Se conecta ao device que definimos if (client.connect(DEVICE_ID, TOKEN, "")) { //Se a conexão foi bem sucedida display.println("Connected"); } else { //Se ocorreu algum erro display.print("error = "); tampilan.println(klien.status()); penundaan (10000); ESP.mulai ulang(); } }

Langkah 18: Putaran

void loop() { //Faz a leitura da umidade dan suhu readDHT(); //Untuk memutuskan koneksi server MQTT if(!client.connected()) { //Mandamos conectar connectMQTTServer(); } //Tempo decorrido desde o boot em milissegundos unsigned long now = millis(); //Se passou o intervalo de envio if(now - lastTime > INTERVAL) { //Publicamos para o server mqtt publishMQTT(); //Mostramos os dados tidak ada tampilan showDataOnDisplay(); //Atualizamos o tempo em que foi feito o ltimo envio lastTime = sekarang; } }

Langkah 19: Baca DHT

void readDHT(){ float t, h; //Mendapatkan lebih banyak waktu dan mengukur suhu dan menyesuaikan dengan variasi se foi bem sucedido if (dht.read2(DHT_PIN, &t, &h, NULL) == SimpleDHTErrSuccess) { temperature = t; kelembaban = jam; } }

Langkah 20: PublikasikanMQTT

void publishMQTT(){ //Cria untuk pertanyaan yang tidak ada hubungannya dengan server MQTT String msg = createJsonString(); Serial.print("Publikasikan pesan: "); Serial.println(pesan); //Publicamos no tópico int status = client.publish(TOPIC, msg.c_str()); Serial.println("Status: " + String(status));//Status 1 setelah berhasil 0 deu erro }

Langkah 21: CreateJsonString

BuatJsonString
BuatJsonString

String createJsonString() { String data = "{"; if(!isnan(kelembaban) && !isnan(suhu)) { data+="\"kelembaban\":"; data+=String(kelembaban, 2); data+=", "; data+="\"suhu\":"; data+=String(suhu, 2); } data+="}"; mengembalikan data; }

Langkah 22: ShowDataOnDisplay

void showDataOnDisplay(){ //Menyetel ulang posisi kursor dan suhu paling bawah tampilan.setCursor(0, 0, 2); display.println("Kelembaban: " + String(kelembaban, 2)); display.println("Suhu: " + String(Suhu, 2)); }

Langkah 23: File

Unduh file

SAYA TIDAK

PDF

Direkomendasikan: