Orodha ya maudhui:

Je! Ikiwa Kiungo chako kitaanguka ?: Hatua 5
Je! Ikiwa Kiungo chako kitaanguka ?: Hatua 5

Video: Je! Ikiwa Kiungo chako kitaanguka ?: Hatua 5

Video: Je! Ikiwa Kiungo chako kitaanguka ?: Hatua 5
Video: 10 привычек, чтобы стать счастливым 2024, Julai
Anonim
Image
Image
Je! Ikiwa Kiungo chako kitaanguka?
Je! Ikiwa Kiungo chako kitaanguka?

Katika video hii, tutaunda kiunga cha kushuka kwa kiunga na ESP32 na SIM800. Hii inamaanisha kuwa na mradi huu, tunaweza kudhibitisha unganisho kwa wavuti, na ikiwa kutofaulu kwa unganisho, piga nambari ya simu kukujulisha kuwa mtandao uko matatani.

Hii ni njia moja wapo ambayo unaweza kufanya ufuatiliaji wa aina hii. Ingawa ni rahisi, hukuruhusu kujaribu vifaa anuwai ambavyo vinaweza kuwepo ndani ya CPD yako. Nguvu yake ya hundi inakuwa kubwa zaidi wakati wa kutumia ESP32. Ingawa mimi hutumia WiFi katika mfano huu, unaweza kutumia mtandao wa waya, ikiwa unapendelea.

Hatua ya 1: Mkutano

Mkutano
Mkutano

Hatua ya 2: Mkutano - Jedwali

Mkutano - Jedwali
Mkutano - Jedwali

Hatua ya 3: Maktaba ya TFT_eSPI

Maktaba ya TFT_eSPI
Maktaba ya TFT_eSPI
Maktaba ya TFT_eSPI
Maktaba ya TFT_eSPI

Katika IDE ya Arduino, nenda kwa Mchoro-> Jumuisha

Maktaba-> Simamia Maktaba…

Sakinisha TFT_eSPI

Nenda kwenye folda ya maktaba na ubadilishe mistari ya faili ya Mtumiaji_Setup.h kuiacha kama inavyoonyeshwa kwenye picha.

Hatua ya 4: ESP32_Check_Internet_Connection.ino

Inajumuisha na kufafanua

#fafanua TINY_GSM_MODEM_SIM800 # ni pamoja na

# pamoja

# pamoja

# pamoja

// Mude para o nome e senha da sua rede WiFi que quar testar #fine SSID "SSID" #fasili PASSWORD "12345678" // + 55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para considerar para considerar como desconectado #fasili MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 min // Usar serial 1 para o módulo gsm HardwareSerial SerialGSM (1); ModemGSM ya TinyGsm (SerialGSM); // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a timaltima ligação. Colocamos como -MAX_CALL_TIME_INTERVAL kwa ligar imediatamente // da primeira vez quir cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();

Sanidi

kuanzisha batili () {Serial.begin (115200); kuanzishaDisplay (); // Usanidi na usanidi wa kuonyesha kuanzishaGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executada "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamosade) 2, // Prior da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Neromero do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executada "checkInternet", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro 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); // Nero hufanya msingi wa kufanya kazi (usamos msingi 0 kwa kitanzi cha picha ya msingi 1)}

SetupDisplay

batili setupDisplay () {display.init (); // Inicializa o onyesha onyesho.setRotation (1); // onyesho la Rotaciona.fillScreen (TFT_BLUE); // Limpa o kuonyesha com cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (false, false); // Desativa a quebra de linha display.setTextSize (1); // Muda o tamanho fanya onyesho la maandishi. Cursor (0, 0, 2); // Posição x, y e fonte do texto}

KuanzishaGSM

batili setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM ni GPIOs 4 na 2 SerialGSM.anza (9600, SERIAL_8N1, 4, 2, uwongo); kuchelewesha (1000); // Anza tena o módulo ikiwa (! ModemGSM.restart ()) {ESP.restart (); kurudi; } // Espera pela rede celular ikiwa (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Kosa la Mtandao wa GSM"); kuchelewesha (3000); Kuanza kwa ESP (); kurudi; }}

kuangaliaWiFiConnection

batili checkWiFiConnection (batili * p) {wakati (ni kweli) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Kuchelewa kwa 1s da tarefa. Ita feita em kupe. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}

unganishaWiFi

batili connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Kuunganisha"); // Espera hakuna wakati akiwa kwenye koni wakati (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kuchelewesha (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Imeunganishwa"); }

kuangaliaInternet

kuangalia batili Mtandaoni (batili * p) {// Kuchelewesha kwa sekunde 5 za tarefa. Ita feita em kupe. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; wakati (kweli) {// Tazama mtandao ikiwa (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o kuchelewesha vTaskDelay (taskDelay); }}

anaInternet

bool hasInternet () {Wateja wa Wateja wa WiFi; // Endreo IP hufanya Google 172.217.3.110 IPAddress adr = IPAdress (172, 217, 3, 110); // Limite ya muda kwa mteja wa conexão.setTimeout (5); // boya ya Tenta conectar imeunganishwa = mteja. Unganisho (adr, 80); // Fecha mteja wa conexão.stop (); // Retorna kweli se está conectado ou false se está desconectado kurudi kushikamana; }

Kitanzi

kitanzi batili () {// Tazama mahali hapa kwa maana zaidi ikiwa (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected"); // Tazama wakati huu kwa sababu ya simu ikiwa utafafanua ikiwa (inaNoIsiyoitwaPhoneInAWhile ()) {// Liga kwa simu inayopigiwa simu (); }} mwingine {// Mostra no display que está conectado showDisplay ("Imeunganishwa"); } // Espera 1 segundo kwa próxima iteração kufanya kuchelewa kwa kitanzi (1000); }

imetenganishwaForTooLong

bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a timaltima conexão for maior que o definido return millis () - mwishoTimeConnected> MAX_DISCONNECTED_TIME; } bool haijaitwaPhoneInAWhile () {// Retorna true se o tempo desde a timaltima ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }

piga simu

batiliPigiaPhone () {// Faz a ligação para o telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entryou aqui é porque conseguiu realizar a ligação Serial.println ("simu ok"); // Atualiza o tempo em que foi feita a timaltima ligação lastTimeCalledPhone = millis (); } mwingine {// Se Entre aqui é porque não conseguiu fazer a ligação Serial.println ("simu ya simu imeshindwa"); } // Termina a ligação modemGSM.callHangup (); }

onyesha Onyesha

Onyesha batili Onyesha (Ujumbe wa Kamba) {// Ujumbe zaidi wa kuonyesha na kuonyesha, onyesho la tukio la caracteres ya ziada kuonyesha.setCursor (0, 0); onyesha.println (ujumbe + ""); }

Hatua ya 5: Pakua faili

PDF

INO

Ilipendekeza: