สารบัญ:

IOT พร้อมเครือข่ายมือถือด้วย ESP32: 23 ขั้นตอน
IOT พร้อมเครือข่ายมือถือด้วย ESP32: 23 ขั้นตอน

วีดีโอ: IOT พร้อมเครือข่ายมือถือด้วย ESP32: 23 ขั้นตอน

วีดีโอ: IOT พร้อมเครือข่ายมือถือด้วย ESP32: 23 ขั้นตอน
วีดีโอ: EP.1 ESP32 (IOT) เบื้องต้น 2024, พฤศจิกายน
Anonim
Image
Image
สาธิต
สาธิต

วันนี้เราจะมาพูดถึงเกี่ยวกับโมเด็ม GPRS หรือมากกว่า ESP32 และการใช้กับเครือข่ายโทรศัพท์เคลื่อนที่ นี่คือสิ่งที่ทำงานได้ดีมาก เมื่อใช้โปรโตคอล MQTT เราจะส่งข้อมูลไปยังแดชบอร์ด Ubidots ใช้ในแอสเซมบลีนี้เป็นจอแสดงผลสำหรับข้อเสนอแนะของวงจร นอกเหนือจาก SIM800L และชิปโทรศัพท์มือถือ ด้วยโครงการนี้ เราจะส่งข้อมูลอุณหภูมิและความชื้นผ่าน GPRS และ MQTT และแสดงภาพข้อมูลในแผนภูมิเส้น

ขั้นตอนที่ 1: การสาธิต

ขั้นตอนที่ 2: การประกอบ

การประกอบ
การประกอบ

ขั้นตอนที่ 3: การประกอบ - Table

การประกอบ - ตาราง
การประกอบ - ตาราง

ขั้นตอนที่ 4: Ubidots

Ubidots
Ubidots

ขั้นตอนที่ 5: ไลบรารี SimpleDHT

ห้องสมุด SimpleDHT
ห้องสมุด SimpleDHT

ใน Arduino IDE ให้ไปที่ Sketch-> Include Library-> Manage Libraries …

ติดตั้ง SimpleDHT

ขั้นตอนที่ 6: PubSubClient Library

PubSubClient Library
PubSubClient Library

ใน Arduino IDE ให้ไปที่ Sketch-> Include Library-> Manage Libraries …

ติดตั้ง PubSubClient

ขั้นตอนที่ 7: ห้องสมุด TinyGSM

TinyGSM Library
TinyGSM Library

ใน Arduino IDE ให้ไปที่ Sketch-> Include Library-> Manage Libraries …

ติดตั้ง TinyGSM

ขั้นตอนที่ 8: ไลบรารี TFT_eSPI

ห้องสมุด TFT_eSPI
ห้องสมุด TFT_eSPI

ใน Arduino IDE ให้ไปที่ Sketch-> Include Library-> Manage Libraries …

ติดตั้ง TFT_eSPI

ขั้นตอนที่ 9: ไลบรารี TFT_eSPI

ห้องสมุด TFT_eSPI
ห้องสมุด TFT_eSPI

เปลี่ยนหมุดแสดงผลในโฟลเดอร์ lib

การปักหมุดอยู่ในไฟล์ User_Setup.h ใน

C: / Users / \ Documents / Arduino / ไลบรารี / TFT_eSPI

เปลี่ยนค่าเริ่มต้นเหล่านี้เป็นค่าต่อไปนี้ในรูปภาพ

ขั้นตอนที่ 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

เข้าสู่ระบบ Ubidots ด้วยบัญชีของคุณและคลิกที่อุปกรณ์

คลิกปุ่ม "+" ที่มุมขวาบน

คลิกว่าง

ป้อนชื่ออุปกรณ์ สังเกต "ป้ายกำกับอุปกรณ์" เนื่องจากจะใช้ใน "หัวข้อ" ที่เราจะใช้ใน.ino

ในรายการอุปกรณ์ อุปกรณ์ที่คุณเพิ่งสร้างขึ้นจะปรากฏขึ้น คลิกที่มัน

บนหน้าจอที่ปรากฏขึ้น ให้คลิกที่ "เพิ่มตัวแปร" ป๊อปอัปจะปรากฏขึ้น คลิกที่ "ดิบ"

คลิกกล่องข้อความ และป้อนชื่อของคุณสมบัติ

จะต้องเป็นสิ่งที่เราจะส่งใน json ของ.ino อย่างแน่นอน ทำซ้ำสำหรับคุณสมบัติอื่น

กลับไปที่แดชบอร์ดโดยคลิกที่โลโก้ Ubidots

ในแดชบอร์ด ให้คลิกที่ "เพิ่มวิดเจ็ตใหม่"

ในรายการวิดเจ็ต ให้เลือก "แกนคู่"

ขั้นตอนที่ 11: การเปลี่ยนข้อมูลใน.ino

การเปลี่ยนข้อมูลใน.ino
การเปลี่ยนข้อมูลใน.ino
การเปลี่ยนข้อมูลใน.ino
การเปลี่ยนข้อมูลใน.ino

ขั้นตอนที่ 12: GPRS_ESP32_DHT.ino - ประกาศและตัวแปร

GPRS_ESP32_DHT.ino - ประกาศและตัวแปร
GPRS_ESP32_DHT.ino - ประกาศและตัวแปร

#define TINY_GSM_MODEM_SIM800 //Tipo de modem que estamos usando#include #include #include #include #include //โทเค็นของการใช้งาน que pegamos ไม่มี Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" // (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" //id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" //URL เป็น "เซิร์ฟเวอร์ MQTT_SER #defVER" mqtt://things.ubidots.com" //Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

ขั้นตอนที่ 13: การตรึง

ปักหมุด
ปักหมุด

// Pinagem em User_Setup.h กับพาสต้าและ bibliotecaTFT_eSPI display = TFT_eSPI(); //Intervalo entre os สภาพแวดล้อม e รีเฟรช da tela #define INTERVAL 10000 //Canal serial que vamos usar para comunicarmos com o modem ใช้ semper 1 HardwareSerial SerialGSM (1); โมเด็ม TinyGsmGSM(SerialGSM); TinyGsmClient gsmClient (โมเด็ม GSM); //Cliente MQTT, ส่งผ่าน url do server, porta //e o cliente GSM PubSubClient client(MQTT_SERVER, MQTT_PORT, gsmClient); //Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; ความชื้นลอย //Variável onde iremos armazenar o valor da umidade อุณหภูมิลอยตัว; //Variável onde iremos armazenar หรือ valor da temperatura SimpleDHT22 dht; //Objeto que realizará a leitura da umidade e temperatura

ขั้นตอนที่ 14: ตั้งค่า

การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); setupDisplay(); //Inicializa e configura หรือแสดง setupGSM(); //เริ่มต้นและกำหนดค่าหรือโมเด็ม GSM connectMQTTServer(); //Conectamos ao mqtt server //Espera 2 segundos e limpamos o แสดงความล่าช้า (2000); display.fillScreen (TFT_BLUE); display.setCursor(0, 0); }

ขั้นตอนที่ 15: SetupDisplay

เป็นโมฆะ 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("การตั้งค่าการแสดงผลเสร็จสมบูรณ์"); }

ขั้นตอนที่ 16: SetupGSM

เป็นโมฆะ setupGSM(){ display.println("ตั้งค่า GSM…"); //Inicializamos a serial onde está o โมเด็ม SerialGSM.begin(9600, SERIAL_8N1, 4, 2, false); ล่าช้า (3000); //Mostra แจ้งข้อมูลสำหรับโมเด็ม Serial.println(modemGSM.getModemInfo()); //Inicializa o modem if (!modemGSM.restart()) { display.println("การรีสตาร์ทโมเด็ม GSM ล้มเหลว"); ล่าช้า (10000); ESP.รีสตาร์ท(); กลับ; } //Espera pela rede if (!modemGSM.waitForNetwork()) { display.println("ไม่สามารถเชื่อมต่อกับเครือข่าย"); ล่าช้า (10000); ESP.รีสตาร์ท(); กลับ; } //Conecta à rede gprs (APN, usuário, senha) if (!modemGSM.gprsConnect("", "", "")) { display.println ("การเชื่อมต่อ GPRS ล้มเหลว"); ล่าช้า (10000); ESP.รีสตาร์ท(); กลับ; } display.println("ตั้งค่า GSM สำเร็จ"); }

ขั้นตอนที่ 17: ConnectMQTTServer

เป็นโมฆะ connectMQTTServer () { display.println ("กำลังเชื่อมต่อกับเซิร์ฟเวอร์ MQTT …"); //Seconecta ao device que definimos if (client.connect(DEVICE_ID, TOKEN, "")) { //Se a conexão foi bem sucedida display.println ("เชื่อมต่อแล้ว"); } อื่น { //Se ocorreu algum erro display.print ("error = "); display.println(client.state()); ล่าช้า (10000); ESP.รีสตาร์ท(); } }

ขั้นตอนที่ 18: วนรอบ

วงเป็นโมฆะ () { // Faz a leitura da umidade e temperatura readDHT (); // Se desconectou ทำเซิร์ฟเวอร์ MQTT ถ้า (!client.connected ()) { // Mandamos conectar connectMQTTServer (); } //Tempo decorrido desde o boot em milissegundos unsigned long now = millis(); // ผ่านช่วงเวลาของสภาพแวดล้อมหาก (ตอนนี้ - ครั้งสุดท้าย > ช่วงเวลา) (// เซิร์ฟเวอร์สาธารณะสำหรับเซิร์ฟเวอร์ mqtt publishMQTT (); // Mostramos os dados ไม่แสดงผล showDataOnDisplay(); // Atualizamos o tempo em que foi feito o último envio ครั้งสุดท้าย = ตอนนี้; } }

ขั้นตอนที่ 19: อ่านDHT

เป็นโมฆะ readDHT () { float t, h; // Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, &t, &h, NULL) == SimpleDHTERrSuccess) { อุณหภูมิ = t; ความชื้น = ชั่วโมง; } }

ขั้นตอนที่ 20: เผยแพร่MQTT

เป็นโมฆะ publishMQTT () { // Cria o json que iremos enviar สำหรับเซิร์ฟเวอร์ MQTT String msg = createJsonString (); Serial.print("ประกาศข้อความ: "); Serial.println(msg); //ประกาศสถานะ tópico int = client.publish(TOPIC, msg.c_str()); Serial.println("สถานะ: " + สตริง (สถานะ)); // สถานะ 1 se sucesso ou 0 se deu erro }

ขั้นตอนที่ 21: CreateJsonString

CreateJsonString
CreateJsonString

สตริง createJsonString () { ข้อมูลสตริง = "{"; if(!isnan(ความชื้น) && !isnan (อุณหภูมิ)) { data+="\"humidity\":"; data+=String(ความชื้น 2); ข้อมูล+=", "; data+="\"อุณหภูมิ\":"; data+=String(อุณหภูมิ 2); } data+="}"; ส่งคืนข้อมูล; }

ขั้นตอนที่ 22: ShowDataOnDisplay

เป็นโมฆะ showDataOnDisplay () { // รีเซ็ตตำแหน่งเคอร์เซอร์ e Mostra umidade และอุณหภูมิ lidas display.setCursor (0, 0, 2); display.println("ความชื้น:" + สตริง (ความชื้น 2)); display.println("อุณหภูมิ:" + สตริง (อุณหภูมิ 2)); }

ขั้นตอนที่ 23: ไฟล์

ดาวน์โหลดไฟล์

ฉันไม่

ไฟล์ PDF

แนะนำ: