Përmbajtje:

Po sikur lidhja juaj të prishet?: 5 hapa
Po sikur lidhja juaj të prishet?: 5 hapa

Video: Po sikur lidhja juaj të prishet?: 5 hapa

Video: Po sikur lidhja juaj të prishet?: 5 hapa
Video: "Dëgjojeni perlën e Jorit"😅😅 - Big Brother Vip Albania 2024, Nëntor
Anonim
Image
Image
Po sikur lidhja juaj të prishet?
Po sikur lidhja juaj të prishet?

Në këtë video, ne do të krijojmë një sensor të rënies së lidhjes me një ESP32 dhe një SIM800. Kjo do të thotë që me këtë projekt, ne mund të verifikojmë lidhjen me internetin, dhe në rast të dështimit të lidhjes, telefononi një numër telefoni për të njoftuar se rrjeti është në telashe.

Kjo është një nga mënyrat e shumta që mund të kryeni këtë lloj monitorimi. Ndërsa është e thjeshtë, ju lejon të provoni pajisje të ndryshme që mund të ekzistojnë brenda CPD -së tuaj. Fuqia e tij e kontrollit bëhet shumë më e madhe kur përdorni ESP32. Megjithëse unë përdor WiFi në këtë shembull, ju mund të përdorni internetin me kabllo, nëse preferoni.

Hapi 1: Asambleja

Kuvendi
Kuvendi

Hapi 2: Kuvendi - Tabela

Kuvendi - Tabela
Kuvendi - Tabela

Hapi 3: Biblioteka TFT_eSPI

Biblioteka TFT_eSPI
Biblioteka TFT_eSPI
Biblioteka TFT_eSPI
Biblioteka TFT_eSPI

Në Arduino IDE, shkoni te Sketch-> Include

Biblioteka-> Menaxho Bibliotekat…

Instaloni TFT_eSPI

Shkoni te dosja e bibliotekës dhe ndryshoni linjat e skedarit User_Setup.h për ta lënë atë siç tregohet në imazh.

Hapi 4: ESP32_Check_Internet_Connection.ino

Përfshin dhe përcaktojnë

#përcaktoni TINY_GSM_MODEM_SIM800#përfshini

#përfshi

#përfshi

#përfshi

// Përzgjidhni numrin e të dhënave tuaja për të përcaktuar testin #define SSID "SSID" #define PASSWORD "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para parasysh como desconectado #define 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 (ModemGSM TinyGsm (SerialGSM); // Tempo em que conectou à internet në lidhje me uint32_t lastTimeConnected = 0; // Tempo em que fez a última ligação. Colocamos como -MAX_CALL_TIME_INTERVAL për imediatamente të tjera // për herë të parë në kohën e funditTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h dhe makarona për bibliotekën TFT_eSPI display = TFT_eSPI ();

Konfigurimi

void setup () {Serial.begin (115200); setupDisplay (); // Inicializa dhe konfigurimi i shfaqjes setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será ekzekutimi "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (pa caso 2), pa përdorim 2, da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Número do core që do të ekzekutojë një tarefa (përdorimi i një baze 0 për o loop ficar livre com o core 1) xTaskCreatePinnedToCore (kontrolloni Internetin, // Função que será ekzekutimin "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); // Número do core që të ekzekutojë një tarefa (përdorimi i core 0 para o loop ficar livre com o core 1)}

SetupDisplay

void setupDisplay () {display.init (); // Inicializa o display display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa ose shfaqje com a 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 do texto display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}

SetupGSM

void setupGSM () {showDisplay ("Konfiguro GSM"); // O Módulo GSM nuk ka GPIO 4 e 2 SerialGSM.fillojnë (9600, SERIAL_8N1, 4, 2, false); vonesa (1000); // Restart o módulo nëse (! ModemGSM.restart ()) {ESP.restart (); kthim; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Gabim në Rrjetin GSM"); vonesë (3000); ESP.restart (); kthim; }}

checkWiFiConnection

void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Vonesa e 1s da tarefa. É feita em rriqrat. Për ekzekutuesin ne jemi të ndarë në portin konstante TICK_PERIOD_MS TickType_t taskVonesë = 1000 / portTICK_PERIOD_MS; vTaskDelay (detyraVonesa); }}

lidh Wi -Fi

void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Lidhja"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vonesë (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("I lidhur"); }

kontrollInternet

kontroll i pavlefshëm në internet (i pavlefshëm* p) {// Vonesa në 5 ditë më parë. É feita em rriqrat. Për ekzekutuesin tonë mund të ndani një port të vazhdueshëmTICK_PERIOD_MS TickType_t taskVonesë = 5000 / portTICK_PERIOD_MS; ndërsa (e vërtetë) {// Se tem internet nëse (kaInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplikimi ose vonesa vTaskDelay (taskDelay); }}

kaInternet

bool hasInternet () {klienti WiFiClient; // Endreço IP për Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão client.setTimeout (5); // Tenta conectar bool lidhur = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado kthimi i lidhur; }

Lak

void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Shkyçur"); // Se shpejti nuk mund të lidhet me telefonin nëse do të ketë (hasNotCalledPhoneInAWhile ()) {// Liga për telefonin tuaj definitivisht callPhone (); }} else {// Mostra nuk ka shfaqje que está conectado showDisplay ("I lidhur"); } // Espera 1 segundo para a próxima iteração bëni lak vonesë (1000); }

ështëShkyçurPërTëLatë

bool isDisconnectedForTooLong () {// Retorna true o o tempo desde a última conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna e vërtetë se o tempo ju deshi të lidhni një lidhje paralele me telefonin për një kohë të caktuar ose të kthimit përfundimtar () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }

telefonPhone

i pavlefshëm callPhone () {// Faz a ligação para ose telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entrou aqui é porque conseguiu realizar a ligação Serial.println ("telefoni në rregull"); // Atualiza o tempo em que foi feita a última ligação lastTimeCalledPhone = millis (); } else {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("telefoni dështoi"); } // Termina a ligação modemGSM.callHangup (); }

showDisplay

void showDisplay (Mesazhi me varg) {// Më shumë për një menaxher kryesor për të shfaqur, shfaqni parametrat shtesë të shfaqjes.setCursor (0, 0); display.println (mesazh + ""); }

Hapi 5: Shkarkoni skedarët

PDF

INO

Recommended: