Mục lục:

IOT với mạng di động với ESP32: 23 bước
IOT với mạng di động với ESP32: 23 bước

Video: IOT với mạng di động với ESP32: 23 bước

Video: IOT với mạng di động với ESP32: 23 bước
Video: ESP32 - Micropython - Bài 11: Module Network – Cấu hình wifi cho esp 32 2024, Tháng bảy
Anonim
Image
Image
Trình diễn
Trình diễn

Hôm nay chúng ta sẽ thảo luận về modem GPRS, hay đúng hơn là ESP32 và việc sử dụng nó với mạng điện thoại di động. Đây là một cái gì đó hoạt động rất tốt. Sử dụng giao thức MQTT, sau đó chúng tôi sẽ gửi dữ liệu đến bảng điều khiển Ubidots. Sử dụng trong cụm này một màn hình hiển thị phản hồi của mạch, ngoài SIM800L và chip điện thoại di động. Do đó, với dự án này, chúng tôi sẽ gửi dữ liệu nhiệt độ và độ ẩm thông qua GPRS và MQTT, đồng thời trực quan hóa dữ liệu dưới dạng biểu đồ đường.

Bước 1: Trình diễn

Bước 2: Lắp ráp

cuộc họp
cuộc họp

Bước 3: Lắp ráp - Bảng

Bàn lắp ráp
Bàn lắp ráp

Bước 4: Ubidots

Ubidots
Ubidots

Bước 5: Thư viện SimpleDHT

Thư viện SimpleDHT
Thư viện SimpleDHT

Trong Arduino IDE, đi tới Sketch-> Bao gồm Thư viện-> Quản lý Thư viện…

Cài đặt SimpleDHT

Bước 6: Thư viện PubSubClient

Thư viện PubSubClient
Thư viện PubSubClient

Trong Arduino IDE, đi tới Sketch-> Bao gồm Thư viện-> Quản lý Thư viện…

Cài đặt PubSubClient

Bước 7: Thư viện TinyGSM

Thư viện TinyGSM
Thư viện TinyGSM

Trong Arduino IDE, đi tới Sketch-> Bao gồm Thư viện-> Quản lý Thư viện…

Cài đặt TinyGSM

Bước 8: Thư viện TFT_eSPI

Thư viện TFT_eSPI
Thư viện TFT_eSPI

Trong Arduino IDE, đi tới Sketch-> Bao gồm Thư viện-> Quản lý Thư viện…

Cài đặt TFT_eSPI

Bước 9: Thư viện TFT_eSPI

Thư viện TFT_eSPI
Thư viện TFT_eSPI

Thay đổi các chân hiển thị trong thư mục lib.

Ghim nằm trong tệp User_Setup.h trong

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

Thay đổi các giá trị mặc định này thành các giá trị sau trong hình ảnh.

Bước 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Đăng nhập vào Ubidots bằng tài khoản của bạn và nhấp vào Thiết bị

Nhấp vào nút "+" ở góc trên bên phải

Nhấp vào Trống

Nhập tên thiết bị. Lưu ý "nhãn thiết bị" vì nhãn này sẽ được sử dụng trong "chủ đề" mà chúng tôi sẽ sử dụng trong.ino

Trong danh sách thiết bị, thiết bị bạn vừa tạo sẽ xuất hiện. Nhấn vào nó.

Trên màn hình xuất hiện, nhấp vào "Thêm biến". Một cửa sổ bật lên sẽ xuất hiện. Nhấp vào "Nguyên".

Nhấp vào hộp văn bản và nhập tên của thuộc tính.

Nó phải là chính xác những gì chúng tôi sẽ gửi trong json của.ino. Lặp lại điều này cho thuộc tính khác.

Quay lại trang tổng quan bằng cách nhấp vào biểu tượng Ubidots.

Trong trang tổng quan, nhấp vào "Thêm tiện ích con mới"

Trong danh sách Tiện ích, hãy chọn "Trục kép"

Bước 11: Thay đổi dữ liệu trong.ino

Thay đổi dữ liệu trong.ino
Thay đổi dữ liệu trong.ino
Thay đổi dữ liệu trong.ino
Thay đổi dữ liệu trong.ino

Bước 12: GPRS_ESP32_DHT.ino - Khai báo và biến

GPRS_ESP32_DHT.ino - Khai báo và biến
GPRS_ESP32_DHT.ino - Khai báo và biến

#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando # bao gồm #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopicoqrstuvwxyz0123" (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 do MQTT "Máy chủ #define MQTT" mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

Bước 13: Ghim

Ghim
Ghim

// Permanentm em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Sử dụng semper 1 HardwareSerial SerialGSM (1); Modem TinyGsmGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos a url do server, a 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; độ ẩm nổi; // Variável onde iremos armazenar o valor da umidade float nhiệt độ; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

Bước 14: Thiết lập

void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa e configura o modem GSM connectMQTTServer (); // Máy chủ Conectamos ao mqtt // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Bước 15: SetupDisplay

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 cámco 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 ("Thiết lập Hiển thị Hoàn tất"); }

Bước 16: Thiết lậpGSM

void setupGSM () {display.println ("Thiết lập GSM…"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); chậm trễ (3000); // Mostra Informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Khởi động lại Modem GSM không thành công"); trì hoãn (10000); ESP.restart (); trở lại; } // Espera pela red if (! ModemGSM.waitForNetwork ()) {display.println ("Không kết nối được với mạng"); trì hoãn (10000); ESP.restart (); trở lại; } // Conecta à red gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Không thành công kết nối GPRS"); trì hoãn (10000); ESP.restart (); trở lại; } display.println ("Thiết lập GSM thành công"); }

Bước 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Đang kết nối với Máy chủ MQTT…"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Đã kết nối"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); trì hoãn (10000); ESP.restart (); }}

Bước 18: Vòng lặp

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconectar do server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Se passou o periodo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt PublishingMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Bước 19: ĐọcDHT

void 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) {nhiệt độ = t; độ ẩm = h; }}

Bước 20: Xuất bảnMQTT

void xuất bảnMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Xuất bản thông báo:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Trạng thái 1 se sucesso ou 0 se deu erro}

Bước 21: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {Chuỗi dữ liệu = "{"; if (! isnan (độ ẩm) &&! isnan (nhiệt độ)) {data + = "\" độ ẩm / ":"; data + = String (độ ẩm, 2); dữ liệu + = ","; dữ liệu + = "\" nhiệt độ / ":"; data + = String (nhiệt độ, 2); } data + = "}"; trả về dữ liệu; }

Bước 22: ShowDataOnDisplay

void showDataOnDisplay () {// Reseta a posição do con trỏ e mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Độ ẩm:" + String (độ ẩm, 2)); display.println ("Nhiệt độ:" + String (nhiệt độ, 2)); }

Bước 23: Tập tin

Tải xuống các tệp

NS

PDF

Đề xuất: