Оглавление:

Интернет вещей с сотовой сетью с ESP32: 23 шага
Интернет вещей с сотовой сетью с ESP32: 23 шага

Видео: Интернет вещей с сотовой сетью с ESP32: 23 шага

Видео: Интернет вещей с сотовой сетью с ESP32: 23 шага
Видео: ESP32 - Точка доступа WiFi 2024, Ноябрь
Anonim
Image
Image
Демонстрация
Демонстрация

Сегодня мы обсудим GPRS-модем, а точнее ESP32, и его использование в сотовой телефонной сети. Это то, что работает очень хорошо. Затем, используя протокол MQTT, мы отправим данные на панель управления Ubidots. Используйте в этой сборке дисплей для обратной связи схемы в дополнение к SIM800L и микросхеме сотового телефона. Таким образом, в этом проекте мы будем отправлять данные о температуре и влажности через GPRS и MQTT и визуализировать данные в виде линейной диаграммы.

Шаг 1: демонстрация

Шаг 2: Сборка

сборка
сборка

Шаг 3: Сборка - стол

Сборка - Стол
Сборка - Стол

Шаг 4: Ubidots

Убидотс
Убидотс

Шаг 5: Библиотека SimpleDHT

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

В среде Arduino IDE перейдите в Sketch-> Include Library-> Manage Libraries…

Установить SimpleDHT

Шаг 6. Библиотека PubSubClient

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

В среде Arduino IDE перейдите в Sketch-> Include Library-> Manage Libraries…

Установить PubSubClient

Шаг 7. Библиотека TinyGSM

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

В среде 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 со своей учетной записью и нажмите «Устройства».

Нажмите кнопку "+" в правом верхнем углу.

Нажмите "Пусто"

Введите имя устройства. Обратите внимание на «метку устройства», поскольку она будет использоваться в «теме», которую мы будем использовать в.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 // Тип модема, который используется для использования # include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqr0madestuvtwd (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-адрес сервера MFQTD_MQTine mqtt: //things.ubidots.com "// Порт для MQTT #define MQTT_PORT 1883 // Установлен на DHT22 #define DHT_PIN 27

Шаг 13: закрепление

Закрепление
Закрепление

// Изображение пользователя User_Setup.h в библиотеке TFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Последовательный канал, используемый для связи через модем. Использовать семпер 1 HardwareSerial SerialGSM (1); TinyGsm модем GSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Клиент MQTT, передает URL-адрес сервера, // порт клиента GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio / refresh foi feito uint32_t lastTime = 0; влажность поплавка; // Переменная, если хотите, чтобы температура поплавка; // Вариант использования оружия или доблести температуры SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

Шаг 14: настройка

void setup () {Serial.begin (115200); setupDisplay (); // Инициализация и настройка отображения setupGSM (); // Инициализация и настройка модема 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 ("Настройка отображения завершена"); }

Шаг 16: Настройка GSM

void setupGSM () {display.println («Настройка GSM…»); // Инициализируется серийный номер модема 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 Connection Failed"); задержка (10000); ESP.restart (); возвращение; } display.println («Успешная установка GSM»); }

Шаг 17: Подключите MQTTServer

void connectMQTTServer () {display.println («Подключение к серверу MQTT…»); // Укажите определенное устройство в очереди if (client.connect (DEVICE_ID, TOKEN, "")) {// Установите соединение с получением display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); задержка (10000); ESP.restart (); }}

Шаг 18: цикл

void loop () {// Задать формулу и температуру readDHT (); // Укажите, как выполнить серверный MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Промежуточный интервал от envio if (now - lastTime> INTERVAL) {// Публикация для сервера mqtt publishMQTT (); // Mostramos os dados no display 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 temperatura e apenas atualiza as varáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; влажность = ч; }}

Шаг 20: опубликуйте MQTT

void publishMQTT () {// Создание очереди json для сервера MQTT String msg = createJsonString (); Serial.print ("Опубликовать сообщение:"); Serial.println (сообщение); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Статус 1 se sucesso ou 0 se deu erro}

Шаг 21: CreateJsonString

CreateJsonString
CreateJsonString

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

Шаг 22: ShowDataOnDisplay

void showDataOnDisplay () {// Сбросить положение курсора, установить его и задать температуру display.setCursor (0, 0, 2); display.println ("Влажность:" + строка (влажность, 2)); display.println ("Температура:" + String (temperature, 2)); }

Шаг 23: файлы

Скачайте файлы

Я НЕТ

PDF

Рекомендуемые: