विषयसूची:

क्या होगा यदि आपका लिंक क्रैश हो जाता है ?: 5 कदम
क्या होगा यदि आपका लिंक क्रैश हो जाता है ?: 5 कदम

वीडियो: क्या होगा यदि आपका लिंक क्रैश हो जाता है ?: 5 कदम

वीडियो: क्या होगा यदि आपका लिंक क्रैश हो जाता है ?: 5 कदम
वीडियो: 5 CRAZY Magic Tricks Anyone Can Do | Revealed 2024, जुलाई
Anonim
Image
Image
क्या होगा अगर आपका लिंक क्रैश हो जाता है?
क्या होगा अगर आपका लिंक क्रैश हो जाता है?

इस वीडियो में, हम एक ESP32 और एक SIM800 के साथ एक लिंक ड्रॉप सेंसर बनाएंगे। इसका मतलब यह है कि इस परियोजना के साथ, हम इंटरनेट से कनेक्शन को सत्यापित कर सकते हैं, और कनेक्शन विफल होने की स्थिति में, एक टेलीफोन नंबर पर कॉल करके सूचित करें कि नेटवर्क संकट में है।

यह कई तरीकों में से एक है जिससे आप इस प्रकार की निगरानी कर सकते हैं। हालांकि यह आसान है, यह आपको विभिन्न उपकरणों का परीक्षण करने की अनुमति देता है जो आपके सीपीडी में मौजूद हो सकते हैं। ESP32 का उपयोग करते समय इसकी जांच की शक्ति बहुत अधिक हो जाती है। हालांकि मैं इस उदाहरण में वाईफाई का उपयोग करता हूं, आप चाहें तो वायर्ड इंटरनेट का उपयोग कर सकते हैं।

चरण 1: विधानसभा

सभा
सभा

चरण 2: विधानसभा - तालिका

विधानसभा - तालिका
विधानसभा - तालिका

चरण 3: TFT_eSPI लाइब्रेरी

TFT_eSPI लाइब्रेरी
TFT_eSPI लाइब्रेरी
TFT_eSPI लाइब्रेरी
TFT_eSPI लाइब्रेरी

Arduino IDE में, स्केच पर जाएँ-> शामिल करें

पुस्तकालय-> पुस्तकालय प्रबंधित करें …

TFT_eSPI स्थापित करें

लाइब्रेरी फोल्डर में जाएं और User_Setup.h फाइल की लाइन्स को बदलें, जैसा कि इमेज में दिखाया गया है।

चरण 4: ESP32_Check_Internet_Connection.ino

शामिल करें और परिभाषित करें

#परिभाषित करें TINY_GSM_MODEM_SIM800#शामिल करें

#शामिल

#शामिल

#शामिल

// मड पैरा ओ नोम ई सेना दा सुआ रेड वाईफाई क्यू टेस्टर #परिभाषित एसएसआईडी "एसएसआईडी" # परिभाषित पासवर्ड "12345678" // +55 डीडीडी नोमेरो सेल्यूलर # परिभाषित करें USER_PHONE_NUMBER "+5518912345678" // टेम्पो पर विचार करें कोमो डिस्कोनेक्टैडो #define MAX_DISCONNECTED_TIME 10000 ///10 seg // टेम्पो क्यू देवे एस्पेरार पैरा कैडा लीगाको #define MAX_CALL_TIME_INTERVAL 1800000 // 30 मिनट // उसर सीरियल 1 पैरा ओ मोडुलो जीएसएम हार्डवेयर सीरियल सीरियल जीएसएम (1); टाइनीजीएसएम मॉडेमजीएसएम (सीरियलजीएसएम); // टेम्पो एम क्यू कनेक्टो इंटरनेट पेला ltima vez uint32_t lastTimeConnected = 0; // टेम्पो एम क्यू फेज़ ए अल्टिमा लिगाकाओ। कोलोकैमोस कोमो -MAX_CALL_TIME_INTERVAL पैरा लीगर इमीडियाटामेंट // दा प्राइमेरा वेज़ क्यू केयर uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; //Pinagem em User_Setup.h और पास्ता दा biblioteca TFT_eSPI डिस्प्ले = TFT_eSPI();

सेट अप

शून्य सेटअप () {Serial.begin (115200); सेटअप डिस्प्ले (); // इनिशियलाइज़ा ई कॉन्फिगुरा या डिस्प्ले सेटअपजीएसएम (); // इनिशियलाइज़ा ओ मोडुलो जीएसएम xTaskCreatePinnedToCore(checkWiFiConnection, //Função que será executada "checkWiFiConnection", // Nome da tarefa 10000, //Tamanho da pilha NULL, // Parametro da tarefa (no caso não usamos) दा तारेफा न्यूल, // कैसो क्वेरिया मैन्टर उमा रेफरेन्सिया पैरा ए तारेफा क्यू वै सेर क्रिआडा (नो कैसो नो प्रीसीसामोस) 0); // नोमेरो डू कोर क्यू सेरा एक्सक्यूटाडा ए तारेफा (उसमोस ओ कोर 0 पैरा ओ लूप फिकर लाइवर कॉम ओ कोर 1) xTaskCreatePinnedToCore(checkInternet, //Função que será executada "checkInternet", //Nome da tarefa 10000, //Tamanho da पिला नल, // Parametro 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); // नोमेरो डू कोर क्यू सेरा एक्जीक्यूटाडा ए तारेफा (उसमोस ओ कोर ० पैरा ओ लूप फिकर लिवर कॉम ओ कोर १) }

सेटअप प्रदर्शन

शून्य सेटअप डिस्प्ले () {डिस्प्ले.इनिट (); // इनिशियलाइज़ या डिस्प्ले डिस्प्ले.सेटरोटेशन(1); // रोटासिओना डिस्प्ले.फिलस्क्रीन (TFT_BLUE); // लिम्पा ओ डिस्प्ले कॉम ए कोर अज़ुल डिस्प्ले।सेटटेक्स्टकोलर (टीएफटी_व्हाइट, टीएफटी_बीएलयूई); // कोलोका या टेक्स्टो कोमो ब्रैंको कॉम फंडो अज़ुल डिस्प्ले.सेटटेक्स्टवाप (झूठा, झूठा);//Desativa a quebra de linha display.setTextSize(1); // मुदा ओ तमनहो दो टेक्स्टो डिस्प्ले।सेट कर्सर (0, 0, 2); // Posição x, y e Fonte do texto }

सेटअपजीएसएम

शून्य सेटअपजीएसएम () {शोडिस्प्ले ("सेटअप जीएसएम"); // ओ मोडुलो जीएसएम एस्टा नोस जीपीआईओ 4 ई 2 सीरियलजीएसएम.बेगिन (9600, SERIAL_8N1, 4, 2, झूठा); देरी (1000); // रीस्टार्ट या मोडुलो अगर (!modemGSM.restart ()) {ESP.restart (); वापसी; } // Espera pela rede celular if (!modemGSM.waitForNetwork()) {display.setCursor(0, 0); शोडिस्प्ले ("जीएसएम नेटवर्क त्रुटि"); देरी (3000); ईएसपी.पुनरारंभ (); वापसी; } }

चेकवाईफाईकनेक्शन

void checkWiFiConnection(void* p){ जबकि(true) {//Se não estiver conectado ao roteador if(WiFi.status() != WL_CONNECTED) { // Manda conectar ConnectWiFi (); }//दे 1s दा तारिफा। फीता एम टिक। पैरा एक्जीक्यूटर एम मिलिस डिविडिमोस पेला कॉन्स्टेंट पोर्टTICK_PERIOD_MS TickType_t टास्कडेल = 1000 / portTICK_PERIOD_MS; vTaskDelay (टास्कडेले); } }

कनेक्टवाईफाई

शून्य कनेक्टवाईफाई () {// मांडा कनेक्टर एओ रोटेडोर कॉम ओ नोम ई सेना वाईफाई। बेगिन (एसएसआईडी, पासवर्ड); Serial.println ("कनेक्टिंग"); // Espera no जबकि até conectar जबकि(WiFi.status() != WL_CONNECTED) { Serial.print("."); देरी (500); } // से चेगौ एक्वी एस्टा कोनेक्टैडो सीरियल.प्रिंट्लन (); Serial.println ("कनेक्टेड"); }

चेकइंटरनेट

शून्य चेकइंटरनेट (शून्य * पी) {// विलंब डे 5 सेगुंडोस दा तारेफा। फीता एम टिक। पैरा एक्जीक्यूटर एम मिलिस डिविडिमोस पेला कॉन्स्टेंट पोर्टTICK_PERIOD_MS TickType_t टास्कडेल = 5000 / portTICK_PERIOD_MS; जबकि (सच) {// इंटरनेट से इंटरनेट अगर (हैइंटरनेट ()) {//अटुआलिज़ा ओ टेम्पो एम क्यू एक कॉन्टेसेयू ए útlima conexão lastTimeConnected = मिलिस (); }//अनुप्रयोग या विलंब vTaskDelay(taskDelay); } }

इंटरनेट है

बूल हैइंटरनेट () {वाईफाई क्लाइंट क्लाइंट; //Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress(172, 217, 3, 110); // क्लाइंट के लिए टेम्पो लिमिट। क्लाइंट.सेटटाइमआउट(5); // टेंटा कनेक्टर बूल कनेक्टेड = क्लाइंट। कनेक्ट (एडीआर, 80); // एक ग्राहक के लिए फेचा।स्टॉप (); // रिटोर्ना ट्रू से एस्टा कनेक्टेडो या फॉल्स से एस्टा डिस्कोनेक्टैडो रिटर्न कनेक्टेड; }

कुंडली

शून्य लूप () {// इस तरह से इस गति को परिभाषित करता है अगर (isDisconnectedForTooLong ()) {//Mostra कोई प्रदर्शन नहीं इस प्रकार प्रदर्शित किया जाता है शोडिस्प्ले ("डिस्कनेक्ट किया गया"); // से फ़ैज़ टेम्पो क्यू नो लीगा पैरा ओ टेलीफ़ोन डेफिनिडो अगर (हैसनॉटकॉलेडफ़ोनइनएव्हाइल ()) {//लिगा पैरा ओ टेलीफ़ोन डेफिनिडो कॉलफ़ोन (); } } और {// मोस्ट्रा नो डिस्प्ले क्यू एस्टा कोनेक्टैडो शोडिस्प्ले ("कनेक्टेड"); } // Espera 1 segundo para a proxima iteração do लूप विलंब(1000); }

डिसकनेक्टेडफॉरटूलॉन्ग

बूल isDisconnectedForTooLong(){//Retorna true se o tempo desde a ltima 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; }

स्वन करो

शून्य कॉलफ़ोन () {// फ़ज़ ए लिगाकाओ पैरा ओ टेलीफ़ोन डिफिनिडो अगर (मोडेमजीएसएम। कॉलनंबर (USER_PHONE_NUMBER)) {// से एंट्रो एक्वी और पोर्क कॉन्सेगुई रियलिज़र ए लीगाको सीरियल.प्रिंटल ("कॉलफ़ोन ओके"); // अटुआलिज़ा ओ टेम्पो एम क्यू फोई फीता ए अंतिम लिगाकाओ लास्टटाइमकॉलेडफोन = मिलिस (); } और {// से एंट्रौ एक्वी é porque não conseguiu fazer a ligação Serial.println ("कॉलफ़ोन विफल"); } // टर्मिना ए लीगाकाओ मोडेमजीएसएम.कॉलहैंगअप (); }

शोडिस्प्ले

शून्य शोडिस्प्ले (स्ट्रिंग संदेश) {// मोस्ट्रा ए मेन्सेजम और प्राइमिरा लिन्हा डू डिस्प्ले, लिम्पांडो ओएस इवेंटुआइस कैरेक्टर एक्स्ट्रा डिस्प्ले।सेट कर्सर (0, 0); display.println (संदेश + ""); }

चरण 5: फ़ाइलें डाउनलोड करें

पीडीएफ

मैं नहीं

सिफारिश की: