Мазмуну:
- 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 -кадам: SetupGSM
- 17 -кадам: ConnectMQTTServer
- 18 -кадам: Loop
- 19 -кадам: ReadDHT
- 20 -кадам: PublishMQTT
- 21 -кадам: CreateJsonString
- 22 -кадам: ShowDataOnDisplay
- 23 -кадам: Файлдар
Video: IOT уюлдук тармак менен ESP32 менен: 23 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бүгүн биз GPRS модеми, тагыраагы, ESP32 жана аны уюлдук телефон түйүнү менен колдонуу жөнүндө талкуулайбыз. Бул абдан жакшы иштеген нерсе. MQTT протоколун колдонуп, биз маалыматты Ubidots тактасына жөнөтөбүз. Бул жыйында SIM800Lден жана уюлдук телефондун чипинен тышкары, схеманы кайтаруу үчүн дисплейди колдонуңуз. Бул долбоор менен, демек, биз GPRS жана MQTT аркылуу температура жана нымдуулук боюнча маалыматтарды жөнөтөбүз жана маалыматтарды сызыктуу диаграммада элестетебиз.
1 -кадам: Демонстрация
2 -кадам: Ассамблея
3 -кадам: Ассамблея - Таблица
4 -кадам: Ubidots
5 -кадам: SimpleDHT китепканасы
Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …
SimpleDHT орнотуу
6 -кадам: PubSubClient китепканасы
Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …
PubSubClient орнотуу
7 -кадам: TinyGSM китепканасы
Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …
TinyGSM орнотуу
8 -кадам: TFT_eSPI китепканасы
Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …
TFT_eSPI орнотуу
9 -кадам: TFT_eSPI китепканасы
Lib папкасындагы дисплей казыктарын өзгөртүңүз.
Кадап коюу User_Setup.h файлында
C: / Users / \ Documents / Arduino / librarys / TFT_eSPI
Сүрөттөгү бул маанилерди төмөнкү баалуулуктарга өзгөртүңүз.
10 -кадам: Ubidots
Каттоо эсебиңиз менен Ubidotsко кириңиз жана Түзмөктөрдү чыкылдатыңыз
Жогорку оң бурчтагы "+" баскычын басыңыз
Бош дегенди басыңыз
Түзмөктүн атын киргизиңиз. "Түзмөктүн этикеткасына" көңүл буруңуз, анткени бул.ino колдоно турган "темада" колдонулат
Түзмөктөрдүн тизмесинде сиз жаңы эле түзгөн түзмөк пайда болот. Аны басыңыз.
Пайда болгон экранда "Variable кошуу" дегенди басыңыз. Калкыма терезе пайда болот. "Чийки" чыкылдатыңыз.
Текст кутучасын чыкылдатып, мүлктүн атын киргизиңиз.
Бул.ino json'унда биз жөнөтө турган нерсе болушу керек. Муну башка мүлк үчүн кайталаңыз.
Ubidots логотибин чыкылдатуу менен кайра тактасына өтүңүз.
Куралдар тактасында "Жаңы виджет кошуу" баскычын чыкылдатыңыз.
Виджеттердин тизмесинен "Кош огун" тандаңыз
11 -кадам:.inoдогу маалыматтарды өзгөртүү
12 -кадам: 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
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 -кадам: Файлдар
Файлдарды жүктөп алыңыз
МЕН ЖОК
Сунушталууда:
Зымсыз тармак аркылуу каалаган компьютерди LANда ойготуу: 3 кадам
LANда Wireless Network аркылуу каалаган компьютерде ойгонуу: Бул окуу куралы Raspbpian сүрөтүнүн өзгөрүшүнөн улам жаңыртылган эмес. Сураныч, бул жерде жаңыртылган үйрөткүчтү аткарыңыз: https://www.instructables.com/id/Raspberry-Pi-As-Wake-on-LAN-ServerWOL азыркы учурда дээрлик бардык Ethernet портторунда бар. Бул эмес
Тармак линиясын көзөмөлдөө: 7 кадам
Тармак линиясын издөө: Менин үйүм 7 жыл мурун курулуп жатканда орнотулган тармак линияларын издөөнүн кандайдыр бир жолуна муктажмын. Тилекке каршы, алар ошол учурда белгиленген эмес. Сиз коммерциялык бирдикке көп акча корото аласыз, же бир аз билүү менен жана 5 долл
ESP8266 негизделген тармак сааты жана аба ырайы монитору: 3 кадам (сүрөттөр менен)
ESP8266 негизделген тармак сааты жана аба ырайы монитору: ESP8266 жана 0.96 "128x64 OLED дисплейи бар кыска жана жөнөкөй дем алыш күндөрү долбоору. Бул түзмөк тармак сааты, башкача айтканда ntp серверлеринен убакытты алат. Ал ошондой эле openweathermap.org сүрөтчөлөрү менен аба ырайы маалыматын көрсөтөт Бөлүктөр Керектүү: 1. ESP8266 модулу (A
Ethernet кабели аркылуу курама видео жана тармак маалыматтарын кантип иштетүү керек: 6 кадам (сүрөттөр менен)
Ethernet кабели аркылуу курама видео жана тармак маалыматтарын кантип иштетүү керек: Мен үйүмдүн башка бөлүгүнө видео жана аудиону иштетишим керек болчу. Көйгөй менде мынчалык көп AV кабели да, жакшы орнотууга убакыт да, акча да жок болчу. Бирок менде Cat 5 Ethernet кабели көп болчу. Бул мен ойлоп тапкам
Суу бөтөлкөсүн колдонуу менен аба ырайы бузулган зымсыз тармак адаптери: 4 кадам (сүрөттөр менен)
Суу бөтөлкөсүнүн жардамы менен аба ырайы бузулган адаптер: Иракта жүргөндө, мен зымсыз тармак адаптеримди аба ырайынан ажыратуу үчүн суу бөтөлкөсүн колдондум. Бул жөнөкөй жол -жобосу, бирок абдан натыйжалуу. Албетте, бул көрсөтмө Жакынкы Чыгыштагы эркектер менен аялдарга кызмат кылуу үчүн эң пайдалуу болот, бирок ошондой эле колдонулушу мүмкүн