Съдържание:

IOT с клетъчна мрежа с ESP32: 23 стъпки
IOT с клетъчна мрежа с ESP32: 23 стъпки

Видео: IOT с клетъчна мрежа с ESP32: 23 стъпки

Видео: IOT с клетъчна мрежа с ESP32: 23 стъпки
Видео: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, Юли
Anonim
Image
Image
Демонстрация
Демонстрация

Днес ще обсъдим GPRS модема или по -скоро ESP32 и използването му с клетъчната телефонна мрежа. Това е нещо, което работи много добре. Използвайки протокола MQTT, ние ще изпратим данни към таблото за управление на Ubidots. Използвайте в този монтаж дисплей за обратна връзка на веригата, в допълнение към SIM800L и чип за мобилен телефон. Следователно с този проект ще изпращаме данни за температурата и влажността чрез GPRS и MQTT и ще визуализираме данните в линейна диаграма.

Стъпка 1: Демонстрация

Стъпка 2: Монтаж

Монтаж
Монтаж

Стъпка 3: Сглобяване - Таблица

Сглобяване - маса
Сглобяване - маса

Стъпка 4: Ubidots

Ubidots
Ubidots

Стъпка 5: Библиотека SimpleDHT

Библиотека SimpleDHT
Библиотека SimpleDHT

В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …

Инсталирайте SimpleDHT

Стъпка 6: Библиотека PubSubClient

Библиотека PubSubClient
Библиотека PubSubClient

В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …

Инсталирайте PubSubClient

Стъпка 7: Библиотека TinyGSM

Библиотека TinyGSM
Библиотека TinyGSM

В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …

Инсталирайте TinyGSM

Стъпка 8: Библиотека TFT_eSPI

Библиотека TFT_eSPI
Библиотека TFT_eSPI

В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …

Инсталирайте TFT_eSPI

Стъпка 9: Библиотека TFT_eSPI

Библиотека TFT_eSPI
Библиотека TFT_eSPI

Променете щифтовете за показване в папката lib.

Закрепването е във файла User_Setup.h във

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

Променете тези настройки по подразбиране на следните стойности в изображението.

Стъпка 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Влезте в Ubidots с вашия акаунт и щракнете върху Устройства

Щракнете върху бутона „+“в горния десен ъгъл

Щракнете върху празно

Въведете името на устройството. Обърнете внимание на „етикета на устройството“, тъй като това ще се използва в „темата“, която ще използваме в.ino

В списъка с устройства ще се появи устройството, което току -що създадохте. Щракнете върху него.

На екрана, който се показва, кликнете върху „Добавяне на променлива“. Ще се появи изскачащ прозорец. Кликнете върху „Raw“.

Щракнете върху текстовото поле и въведете името на имота.

Трябва да е точно това, което ще изпратим в 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 // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz012 temperatura" // tadepoz tuspoz todus tus tus tus tus tus tus tus tus tus tus tus tus tus (esp32_gprs e nome do dispositivo no Ubidots) #define ТЕМА "/v1.6/devices/esp32_gprs" // id до dispositivo que pegamos без painel до Ubidots #define DEVICE_ID "5c01234567890abc1234567TT" URL MD 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 на паста за библиотекаTFT_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. Използвайте semper 1 HardwareSerial SerialGSM (1); TinyGsm модем GSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Клиентски MQTT, преминаващ към сървър за URL адреси, портал // e или клиентски GSM PubSubClient клиент (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 плаваща температура; // Вариация на иремос армазер за доблест до температура SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperature

Стъпка 14: Настройка

void setup () {Serial.begin (115200); setupDisplay (); // Начална конфигурация или настройка на дисплея GSM (); // Инициализиране и конфигуриране на модем GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Стъпка 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 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"); }

Стъпка 16: Настройка на GSM

void setupGSM () {display.println ("Настройка на GSM …"); // Inicializamos a serial onnde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); забавяне (3000); // Информация за модема Serial.println (modemGSM.getModemInfo ()); // Инициализиране на модем if (! ModemGSM.restart ()) {display.println ("Неуспешно рестартиране на GSM модем"); забавяне (10000); ESP.restart (); връщане; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Неуспешно свързване към мрежата"); забавяне (10000); ESP.restart (); връщане; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS връзка неуспешна"); забавяне (10000); ESP.restart (); връщане; } display.println ("Настройка на GSM успех"); }

Стъпка 17: Свържете MQTTServer

void connectMQTTServer () {display.println ("Свързване към MQTT сървър …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Вижте conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); забавяне (10000); ESP.restart (); }}

Стъпка 18: Цикъл

void loop () {// Faz a leitura da umidade e temperature readDHT (); // Отстранете свързването на MQTT на сървъра, ако (! 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) {// Публикуване за сървър mqtt publishedMQTT (); // Mostramos os dados без дисплей showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Стъпка 19: ReadDHT

void readDHT () {float t, h; // Faz a leitura da umidade e temperature e apenas atualiza as variaáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; влажност = h; }}

Стъпка 20: Публикувайте MQTT

void publishedMQTT () {// Cria o json que iremos enviar para or server MQTT String msg = createJsonString (); Serial.print ("Публикуване на съобщение:"); Serial.println (msg); // Публикация без tópico int status = client.publish (ТЕМА, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 se sucesso ou 0 se deu erro}

Стъпка 21: CreateJsonString

CreateJsonString
CreateJsonString

Низ createJsonString () {String data = "{"; if (! isnan (влажност) &&! isnan (температура)) {data+= "\" влажност / ":"; данни+= Низ (влажност, 2); данни+= ","; данни+= "\" температура / ":"; данни+= Низ (температура, 2); } данни+= "}"; връщане на данни; }

Стъпка 22: ShowDataOnDisplay

void showDataOnDisplay () {// Повторно задаване на курсора и най -високата температура на дисплея.setCursor (0, 0, 2); display.println ("Влажност:" + Низ (влажност, 2)); display.println ("Температура:" + Низ (температура, 2)); }

Стъпка 23: Файлове

Изтеглете файловете

АЗ НЕ

PDF

Препоръчано: