İçindekiler:

ESP32 ile Hücresel Ağ ile IOT: 23 Adım
ESP32 ile Hücresel Ağ ile IOT: 23 Adım

Video: ESP32 ile Hücresel Ağ ile IOT: 23 Adım

Video: ESP32 ile Hücresel Ağ ile IOT: 23 Adım
Video: Adafruit io kullanımı w/ESP8266 | Arduino projesi nasıl geliştirilir? 2024, Kasım
Anonim
Image
Image
Gösteri
Gösteri

Bugün GPRS modemi veya daha doğrusu ESP32 ve bunun cep telefonu şebekesiyle kullanımı hakkında konuşacağız. Bu çok iyi çalışan bir şey. MQTT protokolünü kullanarak verileri Ubidots panosuna göndereceğiz. Bu tertibatta, SIM800L ve bir cep telefonu çipine ek olarak devrenin geri bildirimi için bir ekran kullanın. Dolayısıyla bu proje ile sıcaklık ve nem verilerini GPRS ve MQTT üzerinden göndereceğiz ve verileri bir çizgi grafiğinde görselleştireceğiz.

1. Adım: Gösteri

2. Adım: Montaj

toplantı
toplantı

Adım 3: Montaj - Tablo

Montaj - Masa
Montaj - Masa

4. Adım: Ubidot'lar

Ubidot'lar
Ubidot'lar

Adım 5: SimpleDHT Kitaplığı

SimpleDHT Kitaplığı
SimpleDHT Kitaplığı

Arduino IDE'de Sketch-> Include Library-> Manage Libraries… seçeneğine gidin.

SimpleDHT'yi yükleyin

6. Adım: PubSubClient Kitaplığı

PubSubClient Kitaplığı
PubSubClient Kitaplığı

Arduino IDE'de Sketch-> Kitaplığı Dahil Et-> Kitaplıkları Yönet… seçeneğine gidin.

PubSubClient'ı yükleyin

Adım 7: TinyGSM Kitaplığı

TinyGSM Kütüphanesi
TinyGSM Kütüphanesi

Arduino IDE'de Sketch-> Include Library-> Manage Libraries… seçeneğine gidin.

TinyGSM'yi yükleyin

Adım 8: TFT_eSPI Kitaplığı

TFT_eSPI Kitaplığı
TFT_eSPI Kitaplığı

Arduino IDE'de Sketch-> Include Library-> Manage Libraries… seçeneğine gidin.

TFT_eSPI'yi yükleyin

9. Adım: TFT_eSPI Kitaplığı

TFT_eSPI Kitaplığı
TFT_eSPI Kitaplığı

lib klasöründeki ekran pinlerini değiştirin.

Sabitleme, User_Setup.h dosyasındadır.

C: / Kullanıcılar / \ Belgeler / Arduino / kitaplıklar / TFT_eSPI

Bu varsayılanları görüntüde aşağıdaki değerlerle değiştirin.

Adım 10: Ubidot'lar

Ubidot'lar
Ubidot'lar
Ubidot'lar
Ubidot'lar
Ubidot'lar
Ubidot'lar

Hesabınızla Ubidots'a giriş yapın ve Cihazlar'a tıklayın

Sağ üst köşedeki "+" düğmesini tıklayın

Boş tıklayın

Cihaz adını girin..ino'da kullanacağımız "konuda" kullanılacağı için "cihaz etiketini" not edin.

Cihaz listesinde, az önce oluşturduğunuz cihaz görünecektir. Üstüne tıkla.

Görünen ekranda "Değişken Ekle" ye tıklayın. Bir açılır pencere görünecektir. "Çiğ" üzerine tıklayın.

Metin kutusuna tıklayın ve özelliğin adını girin.

Tam olarak.ino'nun json'unda göndereceğimiz şey olmalı. Bunu diğer mülk için tekrarlayın.

Ubidots logosuna tıklayarak kontrol paneline geri dönün.

Kontrol panelinde "Yeni Widget Ekle" ye tıklayın

Widget'lar listesinde "Çift eksen"i seçin

Adım 11:.ino'daki Verileri Değiştirme

.ino'daki Verileri Değiştirme
.ino'daki Verileri Değiştirme
.ino'daki Verileri Değiştirme
.ino'daki Verileri Değiştirme

Adım 12: GPRS_ESP32_DHT.ino - Bildirimler ve Değişkenler

GPRS_ESP32_DHT.ino - Bildirimler ve Değişkenler
GPRS_ESP32_DHT.ino - Bildirimler ve Değişkenler

#define TINY_GSM_MODEM_SIM800 //Ubidots'u tanımla #define TINY_GSM_MODEM_SIM800 //Ubidots yok #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" //Tópico 'da BBFF-abcdefghijklmnopqrstuvwxyz0123 " (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" //id dispositivo que pegamos hiçbir acısız Ubidots #define DEVICE_ID "5c01234567890abc12345678" // #URL MQTT MQTT yapın mqtt://things.ubidots.com" //MQTT'yi kontrol edin #define MQTT_PORT 1883 //DHT22'nin ilk sürümü ve DHT22 #define DHT_PIN 27

Adım 13: Sabitleme

Sabitleme
Sabitleme

//User_Setup.h ve biblioteca makarna için PinagemTFT_eSPI ekranı = TFT_eSPI(); //Aralık girişleri envios e yenile #define INTERVAL 10000 //Canal serial que vamos usar para comunicarmos com o modem. semper 1 HardwareSerial SerialGSM(1); TinyGsm modemGSM(SerialGSM); TinyGsmClient gsmClient(modemGSM); //Cliente MQTT, passamos a url do server, a porta //e o GSM PubSubClient client(MQTT_SERVER, MQTT_PORT, gsmClient); //Tempo em que o ultimo envio/refresh foi feito uint32_t lastTime = 0; yüzer nem; //Variável onde iremos armazenar o valor da umidade yüzdürme sıcaklığı; //Variavel onde iremos armazenar veya valor da temperatura SimpleDHT22 dht; // Tüm sıcaklığın gerçekliğine aykırı

Adım 14: Kurulum

geçersiz kurulum() { Serial.begin(115200); setupDisplay(); //İnicializa e yapılandırma veya ekran setupGSM(); //Modem GSM connectMQTTServer(); //Conectamos ao mqtt sunucusu //Espera 2 segundos ve limpamos o ekran gecikmesi(2000); display.fillScreen(TFT_BLUE); display.setCursor(0, 0); }

Adım 15: Kurulum Ekranı

geçersiz setupDisplay(){ display.init(); display.setRotation(1); display.fillScreen(TFT_BLUE); //Limpa o ekran bir cor azul display.setTextColor(TFT_WHITE, TFT_BLUE); //Coloca veya textocomo branco com fundo azul display.setTextWrap(true, true);//Ativa sorgulayıcı ekran.setTextSize(1); display.setCursor(0, 0, 2); //Posicção x, y e fonte do texto display.println("Görüntü Kurulumu Tamamlandı"); }

Adım 16: KurulumGSM

void setupGSM(){ display.println("GSM Kurulumu…"); //Modem için bir seri bağlantı oluşturma SerialGSM.begin(9600, SERIAL_8N1, 4, 2, false); gecikme(3000); //Modem için en uygun bilgi Serial.println(modemGSM.getModemInfo()); //Modemin kısaltılması if (!modemGSM.restart()) { display.println("GSM Modem yeniden başlatılamadı"); gecikme (10000); ESP.restart(); dönüş; } //Espera pela rede if (!modemGSM.waitForNetwork()) { display.println("Ağa bağlanılamadı"); gecikme (10000); ESP.restart(); dönüş; } //Gpr'leri yeniden bağlama (APN, usuário, senha) if (!modemGSM.gprsConnect("", "", "")) { display.println("GPRS Bağlantısı Başarısız"); gecikme (10000); ESP.restart(); dönüş; } display.println("GSM Başarılı Kurulum"); }

Adım 17: ConnectMQTTServer

void connectMQTTServer() { display.println("MQTT Sunucusuna Bağlanıyor…"); //Aygıttan bağımsız bir aygıt sorgusu tanımlayın if (client.connect(DEVICE_ID, TOKEN, "")) { //Sea conexão foi bem sucedida display.println("Bağlandı"); } else { //Se ocorreu algum erro display.print("hata = "); display.println(client.state()); gecikme (10000); ESP.restart(); } }

Adım 18: Döngü

void loop() { //DHT(); //Sunucuyu MQTT'den ayırın if(!client.connected()) { //Mandamos conectar connectMQTTServer(); } //Tempo dekorrido desde o boot em milissegundos unsigned long now = millis(); //Aralıklı veya envio if(now - lastTime > INTERVAL) { //Publicamos para o server mqtt yayınlamaMQTT(); //Mostramos os dados görüntü yok showDataOnDisplay(); //Atualizamos o tempo em que foi feito o último envio lastTime = şimdi; } }

Adım 19: ReadDHT

geçersiz readDHT(){ float t, h; //Bunların her biri için geçerli bir değişkendir if (dht.read2(DHT_PIN, &t, &h, NULL) == SimpleDHTErrSuccess) { sıcaklık = t; nem = h; } }

Adım 20: YayınlaMQTT

void yayınlamaMQTT(){ //Cria o json que iremos enviar para o sunucu MQTT String msg = createJsonString(); Serial.print("Mesajı yayınla: "); Seri.println(mesaj); //Publicamos no tópico int durum = client.publish(TOPIC, msg.c_str()); Serial.println("Durum: " + String(status));//Status 1 se sucesso ou 0 se deu erro }

Adım 21: CreateJsonString

CreateJsonString
CreateJsonString

Dize createJsonString() { Dize verisi = "{"; if(!isnan(nem) && !isnan(sıcaklık)) { data+="\"nem\":"; data+=String(nem, 2); veri+=", "; data+="\"sıcaklık\":"; data+=String(sıcaklık, 2); } veri+="}"; dönüş verileri; }

Adım 22: ShowDataOnDisplay

void showDataOnDisplay(){ //İmleç ve sıcaklık gösterimini yeniden başlatma durumu display.setCursor(0, 0, 2); display.println("Nem: " + String(nem, 2)); display.println("Sıcaklık: " + String(sıcaklık, 2)); }

Adım 23: Dosyalar

Dosyaları indirin

BEN HAYIR

PDF

Önerilen: