Съдържание:
- Стъпка 1: Демонстрация
- Стъпка 2: Монтаж
- Стъпка 3: Сглобяване - Таблица
- Стъпка 4: Ubidots
- Стъпка 5: Библиотека SimpleDHT
- Стъпка 6: Библиотека PubSubClient
- Стъпка 7: Библиотека TinyGSM
- Стъпка 8: Библиотека TFT_eSPI
- Стъпка 9: Библиотека TFT_eSPI
- Стъпка 10: Ubidots
- Стъпка 11: Промяна на данните в.ino
- Стъпка 12: GPRS_ESP32_DHT.ino - Декларации и променливи
- Стъпка 13: Закрепване
- Стъпка 14: Настройка
- Стъпка 15: SetupDisplay
- Стъпка 16: Настройка на GSM
- Стъпка 17: Свържете MQTTServer
- Стъпка 18: Цикъл
- Стъпка 19: ReadDHT
- Стъпка 20: Публикувайте MQTT
- Стъпка 21: CreateJsonString
- Стъпка 22: ShowDataOnDisplay
- Стъпка 23: Файлове
Видео: IOT с клетъчна мрежа с ESP32: 23 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Днес ще обсъдим GPRS модема или по -скоро ESP32 и използването му с клетъчната телефонна мрежа. Това е нещо, което работи много добре. Използвайки протокола MQTT, ние ще изпратим данни към таблото за управление на Ubidots. Използвайте в този монтаж дисплей за обратна връзка на веригата, в допълнение към SIM800L и чип за мобилен телефон. Следователно с този проект ще изпращаме данни за температурата и влажността чрез GPRS и MQTT и ще визуализираме данните в линейна диаграма.
Стъпка 1: Демонстрация
Стъпка 2: Монтаж
Стъпка 3: Сглобяване - Таблица
Стъпка 4: Ubidots
Стъпка 5: Библиотека SimpleDHT
В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …
Инсталирайте SimpleDHT
Стъпка 6: Библиотека PubSubClient
В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …
Инсталирайте PubSubClient
Стъпка 7: Библиотека TinyGSM
В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …
Инсталирайте TinyGSM
Стъпка 8: Библиотека TFT_eSPI
В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …
Инсталирайте TFT_eSPI
Стъпка 9: Библиотека TFT_eSPI
Променете щифтовете за показване в папката lib.
Закрепването е във файла User_Setup.h във
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Променете тези настройки по подразбиране на следните стойности в изображението.
Стъпка 10: Ubidots
Влезте в Ubidots с вашия акаунт и щракнете върху Устройства
Щракнете върху бутона „+“в горния десен ъгъл
Щракнете върху празно
Въведете името на устройството. Обърнете внимание на „етикета на устройството“, тъй като това ще се използва в „темата“, която ще използваме в.ino
В списъка с устройства ще се появи устройството, което току -що създадохте. Щракнете върху него.
На екрана, който се показва, кликнете върху „Добавяне на променлива“. Ще се появи изскачащ прозорец. Кликнете върху „Raw“.
Щракнете върху текстовото поле и въведете името на имота.
Трябва да е точно това, което ще изпратим в json на.ino. Повторете това за другото свойство.
Върнете се в таблото за управление, като щракнете върху логото на Ubidots.
В таблото за управление кликнете върху „Добавяне на нов приспособление“
В списъка с приспособления изберете „Двойна ос“
Стъпка 11: Промяна на данните в.ino
Стъпка 12: 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 () {String data = "{"; if (! isnan (влажност) &&! isnan (температура)) {data+= "\" влажност / ":"; данни+= Низ (влажност, 2); данни+= ","; данни+= "\" температура / ":"; данни+= Низ (температура, 2); } данни+= "}"; връщане на данни; }
Стъпка 22: ShowDataOnDisplay
void showDataOnDisplay () {// Повторно задаване на курсора и най -високата температура на дисплея.setCursor (0, 0, 2); display.println ("Влажност:" + Низ (влажност, 2)); display.println ("Температура:" + Низ (температура, 2)); }
Стъпка 23: Файлове
Изтеглете файловете
АЗ НЕ
Препоръчано:
Flexlight: LED-фенер с клетъчна клетка без запояване: 3 стъпки (със снимки)
Flexlight: LED фенер с клетъчна монета без запояване: Моята цел за този проект беше да създам просто LED фенерче с батерии, с минимални части и без необходимост от запояване. Можете да отпечатате частите за няколко часа и да ги сглобите за около 10 минути, което го прави чудесен за кърма (контролирана от възрастни)
WiFi RGB клетъчна лампа, използваща ESP8266: 6 стъпки
WiFi RGB клетъчна лампа, използваща ESP8266: В тази публикация изграждаме красива RGB клетъчна лампа, която може да се контролира чрез WiFi. Контролната страница се състои от цветно колело, което ви позволява бързо да променяте цветовете, а също така можете да посочите стойностите на RGB директно, за да създадете общо над
Digi XBee3 Клетъчна SMS ActivityBot: 7 стъпки
Digi XBee3 клетъчен SMS ActivityBot: Digi XBee3 ™ клетъчен SMS ActivityBot е образователен робот, който може да се управлява с текстови съобщения от всеки мобилен телефон, навсякъде по света. ActivityBot, направен от приятелите на Digi в Parallax Inc., е предназначен за първоначални строители на роботи
Невероятна слънчева клетъчна кола: 5 стъпки
Невероятна слънчева клетъчна кола: Здравейте читатели в тази инструкция ще ви покажа как да направите уникален вид кола със слънчева енергия по много лесен начин … Продължи четене
Дистанционно управление: ESP8266 с клетъчна монета: 5 стъпки (със снимки)
Дистанционно управление: ESP8266 с Coin Cell: Големият проблем при използването на ESP е консумацията на енергия, когато Wifi "се покачи", около 100-200mA, пик до 300mA. Нормалните coincells доставят няколко mA, пик до 20-40mA. Но за ESP напрежението ще се срине. Имаме нужда от "малко помощник …"