Mündəricat:
- Addım 1: Quraşdırma
- Addım 2: Montaj - Cədvəl
- Addım 3: TFT_eSPI Kitabxanası
- Addım 4: ESP32_Check_Internet_Connection.ino
- Addım 5: Dosyaları Yükləyin
Video: Bağlantınız çökərsə nə etməli ?: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
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
Addım 2: Montaj - Cədvəl
Addım 3: 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
MƏN YOX
Tövsiyə:
Sharp Optonica RP-114H-ni Necə Təmir / Xidmət etməli: 11 Addım (Şəkillərlə birlikdə)
Sharp Optonica RP-114H-ni Necə Təmir / Xidmət etməli: Vertikal dönər tablamı, Optonica RP-114H-ni təmir və xidmətimi belə başa vurdum. Bunu təmir edildiyini və tam işlədiyini iddia edən birindən aldım. ağlayan tip, buna görə də heç vaxt qulluq edilmədiyi məlum oldu
Təsadüfi Motor Kolleksiyaları ilə nə etməli: Layihə 2: Fırlanan İşıqlar (Model UFO): 12 addım (şəkillərlə)
Təsadüfi Motor Koleksiyonları ilə nə etməli: Layihə 2: Fırlanan İşıqlar (Model UFO): Deməli, hələ də təsadüfi motor kolleksiyam var … Nə edəcəm? Yaxşı, düşünək. Bir LED işıq əyirici haqqında necə? (Əl ilə deyil, üzr istəməyən həvəskarlar.) Bir növ UFO kimi görünür, bir alaq otu ilə bir qarışdırıcı arasındakı qarışıq kimi səslənir
Şarj cihazı 18650 Li-ion Batareya görmürsə nə etməli: 9 addım
Şarj cihazı 18650 Li-ion Batareya görmürsə nə etməli: Batareya şarj olmursa nə etməli, şarj cihazı batareyanı 2 səbəbdən görmür: aşağı gərginlik və ya tetiklenen istilik qorunması
Bütün bu AOL CD'ləri ilə nə etməli: 6 addım (şəkillərlə)
Bütün bu AOL CD -lərlə nə etməli: Torpaq doldurulmasına əlavə etməklə yanaşı plastik CD -lərlə də bir şey etmək istədim - Mənim həllim onlardan 3 -D həndəsi konstruksiyalar qurmaq idi. Bir Dodecahedron qurmaq üçün 12 CD -dən necə istifadə etdiyimi burada təsvir edirəm. Həm də 32 CD trucated Icosahedron qurdum, 1
Flash Sürücünüzü Əvəzedilməz Məlumatlara Necə Etibarlı Etməli: P: 4 Addım
Flaş Sürücünüzü Əvəzolunmaz Məlumatlara Necə Etibarlı Etməli: P: Tamam, buna görə də ümumi flash sürücünüzü və ya mp3 pleyerinizi (əsasən flash yaddaşdan istifadə edən hər şeyi …) təhlükəsiz edə bilərsiniz. yırtıcı onu tapır və üzərində saxladıqlarını keçirir