Мазмуну:

IOT уюлдук тармак менен ESP32 менен: 23 кадам
IOT уюлдук тармак менен ESP32 менен: 23 кадам

Video: IOT уюлдук тармак менен ESP32 менен: 23 кадам

Video: IOT уюлдук тармак менен ESP32 менен: 23 кадам
Video: ESP32 Tutorial 22 - Feeling The light using LED Arduino | SunFounder's 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 китепканасы

Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …

SimpleDHT орнотуу

6 -кадам: PubSubClient китепканасы

PubSubClient китепканасы
PubSubClient китепканасы

Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …

PubSubClient орнотуу

7 -кадам: TinyGSM китепканасы

TinyGSM китепканасы
TinyGSM китепканасы

Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …

TinyGSM орнотуу

8 -кадам: TFT_eSPI китепканасы

TFT_eSPI китепканасы
TFT_eSPI китепканасы

Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …

TFT_eSPI орнотуу

9 -кадам: TFT_eSPI китепканасы

TFT_eSPI китепканасы
TFT_eSPI китепканасы

Lib папкасындагы дисплей казыктарын өзгөртүңүз.

Кадап коюу User_Setup.h файлында

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

Сүрөттөгү бул маанилерди төмөнкү баалуулуктарга өзгөртүңүз.

10 -кадам: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Каттоо эсебиңиз менен Ubidotsко кириңиз жана Түзмөктөрдү чыкылдатыңыз

Жогорку оң бурчтагы "+" баскычын басыңыз

Бош дегенди басыңыз

Түзмөктүн атын киргизиңиз. "Түзмөктүн этикеткасына" көңүл буруңуз, анткени бул.ino колдоно турган "темада" колдонулат

Түзмөктөрдүн тизмесинде сиз жаңы эле түзгөн түзмөк пайда болот. Аны басыңыз.

Пайда болгон экранда "Variable кошуу" дегенди басыңыз. Калкыма терезе пайда болот. "Чийки" чыкылдатыңыз.

Текст кутучасын чыкылдатып, мүлктүн атын киргизиңиз.

Бул.ino json'унда биз жөнөтө турган нерсе болушу керек. Муну башка мүлк үчүн кайталаңыз.

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 // модемди колдонуу #киргизүү #кошуу #кошуу #кошуу #кошуу // Токендерди кошуу #Ubidots #аныктоо TOKEN "BBFF-abcdefghijklmnzztvpdjpgtjpgjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkgqzgzzbjkjjjjjjjjjjjjjjjjjjjjjjjjo (esp32_gprs é o nome do dispositivo no Ubidots) #TEMIC TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no pain do no Ubidots #define DEVICE_ID "5c01234567890abc12345QVT" //TT mqtt: //things.ubidots.com "// MQTT порталы #MQTT_PORT 1883ну аныктоо // DHT22 #аныктоо DHT_PIN 27

13 -кадам: кадоо

Кадап коюу
Кадап коюу

// User_Setup.h макаронунун тизмеси, bibliotecaTFT_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); // Cliente MQTT, url do serverдин порту, порталы // GSM PubSubClient кардары (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o untimo envio/refresh foi feito uint32_t lastTime = 0; калкып нымдуулук; // Түрмөктөрдүн температурасы өзгөрүлмө температурада; // Ар кандай варианттарда жөнөкөй жана жөнөкөй температура SimpleDHT22 dht; // Объекттин мааниси жана температурасы

14 -кадам: Орнотуу

void setup () {Serial.begin (115200); setupDisplay (); // Дисплейдин конфигурациясын орнотууGSM (); // GSM connectMQTTServer модеминин конфигурациясы (); // Conectamos ao mqtt server // Эспера 2 дисплей же дисплейдин кечигүүсү (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

15 -кадам: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limla дисплейи көрсөтүлүүчү Display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca же 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 орнотуу…"); // SerialGSM.begin модеминин сериясында (9600, SERIAL_8N1, 4, 2, false); кечигүү (3000); // Serial.println (modemGSM.getModemInfo ()) модеминин маалыматы; // Эгерде модемди иштетсеңиз (! ModemGSM.restart ()) {display.println ("GSM модемди кайра жүктөө ишке ашкан жок"); кечигүү (10000); ESP.restart (); кайтуу; } // Эсепти калыбына келтирүү 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 -кадам: ConnectMQTTServer

void connectMQTTServer () {display.println ("MQTT Serverге туташууда…"); // Түзмөктү аныктоо if if (client.connect (DEVICE_ID, TOKEN, "")) {// Display.println ("Туташкан"); } else {// Display.print ("error =") катасын оңдоо; display.println (client.state ()); кечигүү (10000); ESP.restart (); }}

18 -кадам: Loop

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // MQTT серверин жасаңыз, эгерде (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Эгерде сиз (азыр - lastTime> INTERVAL) {интервью алсаңыз) {// PublicMos server mqtt publishMQTT (); // Mostramos os dados showDataOnDisplay жок дисплей (); // Atualizamos o tempo em que fei feito or sontime enVio lastTime = now; }}

19 -кадам: ReadDHT

жараксыз readDHT () {float t, h; // Faz a leitura da umidade e temperatura e apenas atualiza as a variáveis se foi bem sucedido if if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {температура = т; нымдуулук = h; }}

20 -кадам: PublishMQTT

жараксыз PubMQTT () {// MQTT String серверинин эң маанилүү шарттары msg = createJsonString (); Serial.print ("Билдирүүнү жарыялоо:"); Serial.println (msg); // Public status tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Статус:" + Стринг (статус)); // Статус 1 же андан көп 0}

21 -кадам: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String data = "{"; if (! isnan (нымдуулук) &&! isnan (температура)) {data+= "\" нымдуулук / ":"; маалыматтар+= Стринг (нымдуулук, 2); маалыматтар+= ","; data+= "\" температурасы / ":"; data+= String (температура, 2); } маалыматтар+= "}"; маалыматтарды кайтаруу; }

22 -кадам: ShowDataOnDisplay

жараксыз showDataOnDisplay () {// Курсорду оңдоп -түзөө жана көрсөтүү температураны көрсөтүү.setCursor (0, 0, 2); display.println ("Нымдуулук:" + Сап (нымдуулук, 2)); display.println ("Температура:" + Сап (температура, 2)); }

23 -кадам: Файлдар

Файлдарды жүктөп алыңыз

МЕН ЖОК

PDF

Сунушталууда: