Mundarija:

Agar sizning havolangiz buzilsa nima bo'ladi ?: 5 qadam
Agar sizning havolangiz buzilsa nima bo'ladi ?: 5 qadam

Video: Agar sizning havolangiz buzilsa nima bo'ladi ?: 5 qadam

Video: Agar sizning havolangiz buzilsa nima bo'ladi ?: 5 qadam
Video: NAMOZNI BUZADIGAN AMALLAR - ABROR MUXTOR ALIY DOMLA. 2024, Noyabr
Anonim
Image
Image
Agar sizning havolangiz buzilsa nima bo'ladi?
Agar sizning havolangiz buzilsa nima bo'ladi?

Ushbu videoda biz ESP32 va SIM800 bilan bog'lanish tushish sensori yaratamiz. Bu shuni anglatadiki, ushbu loyiha yordamida biz internetga ulanishni tekshira olamiz va ulanish uzilgan taqdirda, telefon muammosiga duch kelganini xabar qilish uchun telefon raqamiga qo'ng'iroq qilamiz.

Bu shunday monitoringni amalga oshirishning ko'p usullaridan biri. Bu oddiy bo'lsa -da, bu sizning CPD ichida bo'lishi mumkin bo'lgan turli xil qurilmalarni sinab ko'rishga imkon beradi. ESP32 -dan foydalanganda uning tekshirish kuchi ancha oshadi. Men bu misolda WiFi -dan foydalansam ham, agar xohlasangiz, simli Internetdan foydalanishingiz mumkin.

1 -qadam: yig'ish

O'rnatish
O'rnatish

2 -qadam: O'rnatish - Jadval

O'rnatish - Jadval
O'rnatish - Jadval

3 -qadam: TFT_eSPI kutubxonasi

TFT_eSPI kutubxonasi
TFT_eSPI kutubxonasi
TFT_eSPI kutubxonasi
TFT_eSPI kutubxonasi

Arduino IDE-da Sketch-> Qo'shish-ga o'ting

Kutubxona-> Kutubxonalarni boshqarish …

TFT_eSPI -ni o'rnating

Kutubxona papkasiga o'ting va User_Setup.h faylining satrlarini rasmda ko'rsatilgandek qoldiring.

4 -qadam: ESP32_Check_Internet_Connection.ino

O'z ichiga oladi va aniqlanadi

#ta'rif TINY_GSM_MODEM_SIM800#o'z ichiga oladi

#qo'shing

#qo'shing

#qo'shing

// Wi -Fi tarmog'ini qayta tekshirish #SSID "SSID" ni belgilash #"12345678" parolini belgilash //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Hisob -kitoblarni aniqlang como desconectado #dexine MAX_DISCONNECTED_TIME 10000 // 10 -sonli segmenti // vaqtni belgilash #MAX_CALL_TIME_INTERVAL 1800000 // 30 min // Usar seriyasi 1 yoki apparat uskunalari SerialGSM (1); TinyGsm modemGSM (SerialGSM); // Internetga kirish tezligi uint32_t lastTimeConnected = 0; // Vaqt o'tishi kerak. -MAX_CALL_TIME_INTERVAL -bu bir vaqtning o'zida emas, balki bir vaqtning o'zida -32 -son lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Foydalanuvchining_Setup.h ni yozib qo'ying, biblioteca TFT_eSPI displeyi = TFT_eSPI ();

Sozlash

void setup () {Serial.begin (115200); setupDisplay (); // Displeyni sozlash uchun GSM konfiguratsiyasi (); // GSM xTaskCreatePinnedToCore -ni rasmiylashtirish (checkWiFiConnection, // "CheckWiFiConnection", // 10000, // Tamanho da pilha NULL, // Parametrlar ham (hech qanday afzalliklarga ega emas) // da nare, NULL, // Caso queria manter uma referência a tarefa que vai ser criada (no caso não precisamos) 0); // Umumiy vazifalarni bajarish uchun asosiy vazifalar bajariladi (yadro 0 ga teng), xTaskCreatePinnedToCore (checkInternet, // Funnyuo "checkInternet", // Nome da tarefa 10000, // Tamanho da) NULL, // Parametrlar (no caso não usamos) 2, // NULLning afzalligi, // Caso queria manter uma referência a tarefa que vai ser criada (no caso não precisamos) 0); // Noma'lum vazifalar bajarilgan bo'lsa (yadro 0 ga teng)

O'rnatish Displeyi

void setupDisplay () {display.init (); // Displeyni ko'rsatish.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limfa displeyi displey.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca yoki texto como branco com fundo azul display.setTextWrap (noto'g'ri, yolg'on); // Muda o tamanho do texto display.setCursor (0, 0, 2); // Posicão x, y e fonte do text}

GSM -ni sozlash

void setupGSM () {showDisplay ("GSM ni sozlash"); // OMODO GSM 4 yoki 2 SerialGSM.begin boshlandi (9600, SERIAL_8N1, 4, 2, noto'g'ri); kechikish (1000); // Agar (! ModemGSM.restart ()) {ESP.restart (); qaytish; } // Espera peles redel celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM tarmog'idagi xato"); kechikish (3000); ESP.restart (); qaytish; }}

Wi -Fi ulanishini tekshiring

void checkWiFiConnection (void* p) {while (rost) {// Agar siz (WiFi.status ()! = WL_CONNECTED) {// Mate conectar connectWiFi (); } // Kechikish 1 s da tarefa. Shomil. Boshqaruv buyrug'i portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}

Wi -Fi -ga ulanish

void connectWiFi () {// Mana conectar ao roteador com nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Ulanish"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kechikish (500); } // Serial.println () ni tanlang; Serial.println ("Ulangan"); }

Internetni tekshiring

void checkInternet (void* p) {// Delay 5 de segundos da tarefa. Shomil. Boshqaruv buyrug'i portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Internet Internet if (hasInternet ()) {// Atrof -muhit tezligi lastTimeConnected = millis (); } // Aplikatsiya yoki kechiktirish vTaskDelay (taskDelay); }}

Internet bor

bool hasInternet () {WiFiClient mijozi; // Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // mijozning vaqtini cheklash mijoz.setTimeout (5); // Tenta conectar bool ulangan = client.connect (adr, 80); // Fex a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado qaytish ulandi; }

Loop

void loop () {// Ma'lumotlar tezligi if (isDisconnectedForTooLong ()) uchun aniqlanadi {// Mostra desconectado showDisplay ("Uzilgan"); // Telefon tezligini aniqlang, agar (hasNotCalledPhoneInAWhile ()) {// Liga yoki telefon qo'ng'irog'i uchun telefon raqami (); }} else {// Mostra no display que está conectado showDisplay ("Ulangan"); } // Espera 1 protsessorini takrorlashni kechiktirish (1000); }

isDisconnectedForTooLong

bool isDisconnectedForTooLong () {// Ma'lumotni qaytarish millis () - oxirgi vaqt uchun aniq vaqtni belgilash kerak - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Ma'lumotni qaytarish uchun milis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }

telefon

void callPhone () {// telefon raqamini aniqlash yoki o'chirish uchun (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Bu erda Serial.println ("telefon qo'ng'irog'i"); // O'tish tezligi va vaqtini o'lchash lastTimeCalledPhone = millis (); } else {// Serial.println ("telefon aloqasi ishlamay qoldi"); } // Terminal va modemGSM.callHangup (); }

ko'rsatish

void showDisplay (String xabari) {// Displeyni ko'rsatish uchun asosiy vazifalar, displey.setCursor (0, 0); display.println (xabar + ""); }

5 -qadam: Fayllarni yuklab oling

PDF

INO

Tavsiya: