Բովանդակություն:
- Քայլ 1: Հավաքում
- Քայլ 2. Հավաքում - Աղյուսակ
- Քայլ 3: TFT_eSPI գրադարան
- Քայլ 4: ESP32_Check_Internet_Connection.ino
- Քայլ 5: Ներբեռնեք ֆայլերը
Video: Ի՞նչ անել, եթե ձեր հղումը խափանվի: 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս տեսանյութում մենք կստեղծենք հղման անկման սենսոր ESP32- ով և SIM800- ով: Սա նշանակում է, որ այս նախագծով մենք կարող ենք ստուգել կապը ինտերնետին, իսկ կապի խափանման դեպքում զանգահարել հեռախոսահամար ՝ տեղեկացնելու համար, որ ցանցը դժվարության մեջ է:
Սա մեկն է այն բազմաթիվ եղանակներից, որոնցով դուք կարող եք իրականացնել այս տեսակի մոնիտորինգ: Թեև դա պարզ է, այն թույլ է տալիս փորձարկել տարբեր սարքեր, որոնք կարող են գոյություն ունենալ ձեր CPD- ում: ESP32- ի օգտագործման դեպքում դրա ստուգման ուժը շատ ավելի մեծ է դառնում: Թեև ես օգտագործում եմ WiFi այս օրինակում, եթե նախընտրում եք, կարող եք օգտագործել լարային ինտերնետ:
Քայլ 1: Հավաքում
Քայլ 2. Հավաքում - Աղյուսակ
Քայլ 3: TFT_eSPI գրադարան
Arduino IDE- ում գնացեք Sketch-> Include
Գրադարան-> Կառավարեք գրադարանները…
Տեղադրեք TFT_eSPI
Գնացեք գրադարանի թղթապանակ և փոխեք User_Setup.h ֆայլի տողերը ՝ այն թողնելու համար, ինչպես ցույց է տրված նկարում:
Քայլ 4: ESP32_Check_Internet_Connection.ino
Ներառում է և սահմանում
#սահմանեք TINY_GSM_MODEM_SIM800#ներառել
#ներառում
#ներառում
#ներառում
// Mude para o nome e senha da sua rede WiFi que quer testar #define SSID "SSID" #define PASSWORD "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para konsiderrar como desconectado #սահմանել MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cada ligação #սահմանել MAX_CALL_TIME_INTERVAL 1800000 // 30 րոպե // Usar serial 1 para o módulo gsm HardwareSerial SerialGSM (TinyGsm modemGSM (SerialGSM); // Tempo em que conectou à ինտերնետը հասանելի է uint32_t lastTimeConnected = 0; // Tempo em que fez a tltima ligação. Colocamos como -MAX_CALL_TIME_INTERVAL- ը պետք է հաշվի առնի իմիջըմբռնումը // նախքան այն պետք է օգտագործվի uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h և մակարոնեղեն ՝ biblioteca TFT_eSPI ցուցադրում = TFT_eSPI ();
Կարգավորում
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura կամ display setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será performanceada "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não us, 2 caso não), da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Número do core que será exeada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será exeada "checkInternet", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Prioridade da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Número do core que será exeada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
SetupDisplay
void setupDisplay () {display.init (); // Inicializa o display display.setRotation (1); // Rotaciona 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 (կեղծ, կեղծ); // Desativa a quebra de linha display.setTextSize (1); // Muda o tamanho do texto display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}
SetupGSM
void setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM est GP nos GPIOs 4 e 2 SerialGSM. սկիզբ (9600, SERIAL_8N1, 4, 2, false); ուշացում (1000); // Վերագործարկեք եթե ((modemGSM.restart ()) {ESP.restart (); վերադարձ; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay («GSM ցանցի սխալ»); ուշացում (3000); ESP.restart (); վերադարձ; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Delay de 1s da tarefa. Feita em ticks. Կատարման համար մենք պետք է կիսվենք մեր մշտական նավահանգստով TICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println («Միացում»); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); ուշացում (500); } // Se chegou aqui está conectado Serial.println (); Serial.println («Միացված է»); }
ստուգել ինտերնետը
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. Feita em ticks. Կատարման համար մենք պետք է կիսվենք մեր մշտական նավահանգստով TICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Դիմում կամ հետաձգում vTaskDelay (taskDelay); }}
ունի ինտերնետ
bool hasInternet () {WiFiClient հաճախորդ; // Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão client.setTimeout (5); // Tenta conectar bool Connect = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado վերադառնալ կապված; }
Օղակ
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Անջատված է"); // Se faz tempo que não liga para o telefone definido if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone definido callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Միացված է"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
isDononnectedForTooLong- ը
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a tltima conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo desde a última ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
callPhone
void callPhone () {// Faz a ligação para o telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entrou aqui é porque conseguiu realizar a ligação Serial.println ("callphone ok"); // Atualiza o tempo em que foi feita a última ligação lastTimeCalledPhone = millis (); } else {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println («զանգը ձախողվեց»); } // Termina a ligação modemGSM.callHangup (); }
showDisplay
void showDisplay (Լարային հաղորդագրություն) {// Mostra a menagem na primira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (հաղորդագրություն + ""); }
Քայլ 5: Ներբեռնեք ֆայլերը
ԻՆՈ
Խորհուրդ ենք տալիս:
Covid-19 դիմակ, որը գոռում է ձեզ վրա, եթե դիպչեք ձեր դեմքին ՝ 4 քայլ
Covid-19 դիմակ, որը գոռում է ձեզ վրա, եթե դիպչեք ձեր դեմքին. Չե՞ք կարող դադարել դիպչել ձեր դեմքին: Կպչեք այս էլեկտրոնիկան ձեր ունեցած դիմակի վրա և ձեզ անընդհատ կհիշեցնեն դա չանել
Ավելացրեք լույսեր և սարսափելի երաժշտություն ձեր Jack-O-Lantern- ին ՝ առանց զոդման և ծրագրավորման (եթե չեք ցանկանում). 9 քայլ (նկարներով)
Ավելացրեք լույսեր և սարսափելի երաժշտություն ձեր Jack-O-Lantern- ին ՝ առանց զոդման կամ ծրագրավորման (եթե չեք ուզում). Սա նաև հիանալի միջոց է Arduino և ծրագրավորվող էլեկտրոնիկա փորձարկելու համար, քանի որ ամբողջ նախագիծը կարող է ավարտվել առանց ծածկագիր գրելու կամ զոդման:
Ինչ անել, եթե լիցքավորիչը չի տեսնում 18650 Li-ion մարտկոց ՝ 9 քայլ
Ինչ անել, եթե լիցքավորիչը չի տեսնում 18650 Li-ion մարտկոց. Ինչ անել, եթե մարտկոցը չի լիցքավորվում, լիցքավորիչը չի տեսնում մարտկոցը երկու պատճառով ՝ դրա ցածր լարման կամ ջերմային պաշտպանության գործարկման պատճառ
Ինչ անել, եթե ոտնձգությունների ենթարկվեն հրահանգների վրա. 7 քայլ
Ինչ անել, եթե ոտնձգություն կատարվի Instructables- ի վրա. Instructables- ը DIY- ների ընտանիք է, որի անդամներն են ամբողջ աշխարհում: Ուշադրություն դարձրեք ընտանիքի շեշտադրմանը: Երբեմն (բարեբախտաբար, ոչ հաճախ) մի քանի վատ խնձոր ներս են մտնում և խաթարում մեր ընտանիքը: Այս տեսակի իրավիճակի հետ առնչվելը սույն Հրահանգի թեման է
Ինչպես ձեռք բերել ձեր Ipod Touch- ը (կամ Iphone- ը, եթե դա իսկապես խառնաշփոթ եք) `հիշողության պակասից վթարից դուրս գալու համար. 3 քայլ
Ինչպես ձեռք բերել ձեր Ipod Touch- ը (կամ Iphone- ը, եթե դա իսկապես խառնաշփոթ է) `դադարեցնելու համար հիշողության պակասից խափանումները: Բարև, այնտեղ, ipod touch և iphone օգտագործողներ: Լավ, ես համոզված եմ, որ դուք բոլորդ մի փոքր տարրական պատկերացում ունեք, թե ինչպես է աշխատում խնձորի iPod- ը, այնպես չէ՞: Դուք բացում եք ծրագիր: Այդ ծրագիրը կօգտագործի գուցե ipod touch 1G- ի միջև առկա ՝ 5-30 ՄԲ