Мазмуну:

Шилтемеңиз бузулса эмне болот ?: 5 кадам
Шилтемеңиз бузулса эмне болот ?: 5 кадам

Video: Шилтемеңиз бузулса эмне болот ?: 5 кадам

Video: Шилтемеңиз бузулса эмне болот ?: 5 кадам
Video: Тахикардия, журок тапырап же лукулдап соксо эмне кылуу керек? 2024, Ноябрь
Anonim
Image
Image
Шилтемеңиз бузулса эмне болот?
Шилтемеңиз бузулса эмне болот?

Бул видеодо биз ESP32 жана SIM800 менен шилтемени түшүрүү сенсорун түзөбүз. Бул бул долбоордун жардамы менен биз интернетке туташууну текшере алабыз жана туташуу бузулган учурда, телефондун номерине чалып, тармактын кыйынчылыкта экенин билдиребиз.

Бул мониторингдин бул түрүн аткаруунун көптөгөн жолдору. Бул жөнөкөй болгону менен, бул сиздин CPD ичинде болушу мүмкүн болгон ар кандай түзмөктөрдү сынап көрүүгө мүмкүндүк берет. ESP32 колдонууда анын текшерүү күчү алда канча чоң болот. Мен бул мисалда WiFi колдонсом да, сиз кааласаңыз зымдуу интернетти колдоно аласыз.

1 -кадам: Ассамблея

Ассамблея
Ассамблея

2 -кадам: Ассамблея - Таблица

Ассамблея - Таблица
Ассамблея - Таблица

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

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

Arduino IDEде Sketch-> Кошуу бөлүмүнө өтүңүз

Китепкана-> Китепканаларды башкаруу…

TFT_eSPI орнотуу

Китепкана папкасына барып, User_Setup.h файлынын саптарын сүрөттө көрсөтүлгөндөй калтыруу үчүн өзгөртүңүз.

4 -кадам: ESP32_Check_Internet_Connection.ino

Камтыйт жана аныктайт

#аныктоо TINY_GSM_MODEM_SIM800#камтыйт

#кошуу

#кошуу

#кошуу

// Сын -пикирлерди текшерүү #SSID "SSID" аныктоо #"12345678" сырсөзүн аныктоо //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Эсептөө мөөнөтү como desconectado #define MAX_DISCONNECTED_TIME 10000 // 10 сегмент // Tempo que deve esperar para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 мин // Usar serial 1 para módulo gsm HardwareSerial SerialGSM (1); TinyGsm модемGSM (SerialGSM); // Интернетке кирүү убактысы жана убактысы uint32_t lastTimeConnected = 0; // Төмөнкү убакыттын өтүшү менен: Colocamos como -MAX_CALL_TIME_INTERVAL акча каражаттарын алмаштыруу // эң башкысы uT32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // User_Setup.h макаронунун библиотекасы TFT_eSPI дисплейи = TFT_eSPI ();

Жайгашуу

void setup () {Serial.begin (115200); setupDisplay (); // Дисплейдин конфигурациясын орнотууGSM (); // GSM xTaskCreatePinnedToCore (checkWiFiConnection, // "CheckWiFiConnection", // 10000 номерлери, // Таманхо да пилха NULL, // Параметро да (эч кандай артыкчылыктуу эмес) 2, nare, NULL, // Caso queria manter uma referência a tarefa que vai ser criada (no caso não precisamos) 0); // Негизги тизмекти аткарыңыз (негизги 0) xTaskCreatePinnedToCore (checkInternet, // Функциялардын аткарылышы "checkInternet", // Nome da tarefa 10000, // Таманхо да НУЛЛ, // Параметро да тарефа (no caso não usamos) 2, // NULL артыкчылыгы, // Caso queria manter uma referência a tarefa que vai ser criada (caso não precisamos жок) 0); // Негизги тизмекти аткарыңыз (негизги 0 пункту 0 циклден ашпашы керек)}

SetupDisplay

void setupDisplay () {display.init (); // Көрсөтүү Display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limla дисплейи көрсөтүлүүчү Display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca же texto como branco com fundo azul display.setTextWrap (false, false); // Текстти көрсөтүү.setCursor (0, 0, 2); // Текстти жазуу}

GSM орнотуу

жараксыз setupGSM () {showDisplay ("GSM орнотуу"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); кечигүү (1000); // Эгерде (! ModemGSM.restart ()) {ESP.restart (); кайтуу; } // Espera pel rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM түйүнүнүн катасы"); кечигүү (3000); ESP.restart (); кайтуу; }}

checkWiFiConnection

жараксыз текшерүүWiFiConnection (void* p) {while (true) {// Эгерде сиз (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Кечиктирүү 1s da tarefa. Кенелер. Милдеттүү түрдө аткарылган иштер портTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}

Wi -Fiга туташуу

жараксыз байланышWiFi () {// WWW.begin (SSID, PASSWORD) менен байланышыңыз; Serial.println ("Туташуу"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); кечигүү (500); } // Serial.println (); Serial.println ("Туташты"); }

текшерүү Интернет

void checkInternet (void* p) {// Delay de 5 segundos da tarefa. Кенелер. Милдеттүү түрдө аткарылган иштер портTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Интернет байланышы if (hasInternet ()) {// Атмосферанын ылдамдыгы акыркы убакытка чейин lastTimeConnected = millis (); } // Кечиктирүү vTaskDelay (taskDelay); }}

Интернет бар

bool hasInternet () {WiFiClient кардары; // Endreço IP do do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão client.setTimeout (5); // Tenta conectar бол байланыштырылды = client.connect (adr, 80); // Fex a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado кайтуу туташты; }

Loop

void loop () {// Төмөнкү темпте if if is is disconnos if (isDisconnectedForTooLong ()) {// Mostra display no está desconectado showDisplay ("Disconnected"); // Качан гана телефон номери аныкталса, анда (hasNotCalledPhoneInAWhile ()) {// Лига үчүн телефон чалуу callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Туташты"); } // Espera 1 сегменттин мөөнөтү, циклди кечиктирүү (1000); }

isDisconnectedForTooLong

bool isDisconnectedForTooLong () {// Туура кайтуу миллис () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Кайра кайтаруу миллис () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }

чалуу Телефон

жараксыз CallPhone () {// Телефонду аныктоо үчүн, эгерде (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Катуу маалымат Serial.println ("чалуу телефону жакшы"); // Атмосфера темпинин эмнеси менен айырмаланат lastTimeCalledPhone = millis (); } else {// Serial.println ("чалуу телефону ишке ашпай калды"); } // Терминалдын модели GSM.callHangup (); }

showDisplay

void showDisplay (String билдирүү) {// Дисплейди көрсөтүү, экстрасенстин өзгөчөлүктөрү Display.setCursor (0, 0); display.println (билдирүү + ""); }

5 -кадам: Файлдарды жүктөп алыңыз

PDF

МЕН ЖОК

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