Mündəricat:

Bağlantınız çökərsə nə etməli ?: 5 addım
Bağlantınız çökərsə nə etməli ?: 5 addım

Video: Bağlantınız çökərsə nə etməli ?: 5 addım

Video: Bağlantınız çökərsə nə etməli ?: 5 addım
Video: Bağlantınız Gizli Değil Hatası ( %100 Çözüm) (3 Dakika) 2024, Iyul
Anonim
Image
Image
Bağlantınız Çökərsə Nə Edərsiniz?
Bağlantınız Çökərsə Nə Edərsiniz?

Bu videoda ESP32 və SIM800 ilə bir əlaqə düşmə sensoru yaradacağıq. Bu o deməkdir ki, bu layihə ilə internet bağlantısını yoxlaya bilərik və bir əlaqə pozulduqda bir telefon nömrəsinə zəng edərək şəbəkənin problem içində olduğunu bildirə bilərik.

Bu cür monitorinqi həyata keçirməyin bir çox yolu budur. Sadə olsa da, CPD daxilində ola biləcək müxtəlif cihazları sınamağa imkan verir. ESP32 istifadə edərkən yoxlama gücü daha da artır. Bu nümunədə WiFi istifadə etsəm də, istəsəniz simli internetdən istifadə edə bilərsiniz.

Addım 1: Quraşdırma

Məclis
Məclis

Addım 2: Montaj - Cədvəl

Montaj - Cədvəl
Montaj - Cədvəl

Addım 3: TFT_eSPI Kitabxanası

TFT_eSPI Kitabxanası
TFT_eSPI Kitabxanası
TFT_eSPI Kitabxanası
TFT_eSPI Kitabxanası

Arduino IDE-də, Sketch-> Daxil et bölməsinə keçin

Kitabxana-> Kitabxanaları İdarə Edin …

TFT_eSPI quraşdırın

Kitabxana qovluğuna gedin və User_Setup.h faylının sətirlərini şəkildəki kimi tərk etmək üçün dəyişdirin.

Addım 4: ESP32_Check_Internet_Connection.ino

Daxildir və müəyyən edir

#TINY_GSM_MODEM_SIM800#daxil edin

#daxil edin

#daxil edin

#daxil edin

// Mütəmadi olaraq Wi -Fi sorğularını yoxlayın #SSID "SSID" təyin edin #"12345678" ŞİFRƏSİNİ təyin edin //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Müvafiq hesablamalar como desconectado #define MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cla ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 min // Usar serial 1 və ya módulo gsm HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); // İnternet bağlantısı çox böyükdür və uint32_t lastTimeConnected = 0; // Müvəqqəti məlumat. Bir -birinə kömək etmək üçün -MAX_CALL_TIME_INTERVAL // daha çox məlumat əldə etmək üçün, 32 -ci lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // User_Setup.h ilə biblioteca TFT_eSPI ekran = TFT_eSPI ();

Qurmaq

void setup () {Serial.begin (115200); setupDisplay (); // Ekran qurulması və ya qurulmasıGSM (); // GSM xTaskCreatePinnedToCore məlumatlarını yoxlayın (checkWiFiConnection, // "checkWiFiConnection" funksiyasını yerinə yetirir, // 10000 nömrəsi, // Tamanho da pilha NULL, // Parametro da tarefa (heç bir üstünlük yoxdur) // da nare, NULL, // hər hansı bir məlumatı yoxlamaq üçün heç bir şərt yoxdur (0); // Başlanğıc proqramını yerinə yetirmək (əsas 0 ilə əlaqəli), xTaskCreatePinnedToCore (checkInternet, // FunCão "checkInternet", // Nome da tarefa 10000, // Tamanho da) pil NULL, // Parametr da tarefa (no caso não usamos) 2, // Priorityade da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Başlanğıcda bir tapşırıq yerinə yetirmək lazımdır (əsas 0 -dan çox olmayan dövrdə)

Quraşdırma Ekranı

void setupDisplay () {display.init (); // Display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Ekran görüntüsünü göstərin, Display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca və ya mətndən istifadə edərək, Display.setTextWrap (yanlış, yalan); // Müstəqil olaraq mətn display.setCursor (0, 0, 2); // Postsão x, y e fonte do texto}

GSM qurmaq

boşluq quraşdırmaGSM () {showDisplay ("GSM Quraşdırma"); // O Módulo GSM GPIOs 4 və 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, yanlış); gecikmə (1000); // if (! ModemGSM.restart ()) {ESP.restart (); qayıtmaq; } // Espera celular rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM Şəbəkə Xətası"); gecikmə (3000); ESP.restart (); qayıtmaq; }}

Wi -Fi bağlantısını yoxlayın

void checkWiFiConnection (void* p) {while (true) {// Əgər (WiFi.status ()! = WL_CONNECTED) {// Müntəzəm əlaqəWiFi (); } // Gecikmə de 1s da tarefa. Gənələr əmələ gəlir. Müvafiq olaraq, portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}

Wi -Fi bağlantısı

void connectWiFi () {// Başqa bir əlaqə qurmaq üçün WiFi.begin (SSID, PASSWORD); Serial.println ("Bağlanır"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); gecikmə (500); } // Serial.println () proqramını seçin; Serial.println ("Bağlandı"); }

İnternetdə yoxlayın

void checkInternet (void* p) {// Delay de 5 segundos da tarefa. Gənələr əmələ gəlir. Müvafiq olaraq, portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (doğru) {// İnternetin if (hasInternet ()) {// Ətraflı məlumat üçün sonTimeConnected = millis (); } // Tətbiq və ya gecikmə vTaskDelay (taskDelay); }}

İnternet var

bool hasInternet () {WiFiClient müştəri; // Google -dan 172.217.3.110 IP ünvanları adr = IPAddress (172, 217, 3, 110); // Client.setTimeout üçün vaxt məhdudiyyəti (5); // Tenta conectar bool bağlı = client.connect (adr, 80); // Müştəri ilə əlaqə qurmaq.stop (); // Retorna true se está conectado ou false se está desconectado qayıtmaq bağlıdır; }

Döngə

void loop () {// İstifadəçi məlumatlarını if (isDisconnectedForTooLong ()) ilə müəyyən etmək lazımdır {// Mostra desconectado showDisplay ("Bağlantı kəsildi"); // Telefonun müəyyən olması üçün telefon nömrəsi müəyyən edildikdə, (CallPhone (); }} başqa {// Mostra heç bir şəkildə göstərilmir showDisplay ("Bağlandı"); } // Döngə gecikdirmək üçün bir neçə gün (1000); }

isDisconnectedForTooLong

bool isDisconnectedForTooLong () {// Geri qaytarma millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Geri qaytarma millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }

zəng telefon

etibarsız callPhone () {// Telefon nömrəsi müəyyən edildikdə (modemGSM.callNumber (KULLANICI_PHONE_NUMBER)) {{Telefon nömrəsi Serial.println ("zəng telefonu tamam")); // Atışma və ya sürətləndirmə sonuncu dəfə TimeTallCalledPhone = millis (); } başqa {// Giriş Serial.println ("zəng telefonu uğursuz oldu"); } // Terminal və modemGSM.callHangup (); }

şouDisplay

void showDisplay (String mesajı) {// Başlanğıcda ekran görüntüsünü və xüsusiyyətlərini əlavə edin, display.setCursor (0, 0); display.println (mesaj + ""); }

Addım 5: Dosyaları Yükləyin

PDF

MƏN YOX

Tövsiyə: