Cuprins:
- Pasul 1: Asamblare
- Pasul 2: Asamblare - Tabel
- Pasul 3: Biblioteca TFT_eSPI
- Pasul 4: ESP32_Check_Internet_Connection.ino
- Pasul 5: Descărcați fișierele
Video: Ce se întâmplă dacă legătura ta se blochează ?: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest videoclip, vom crea un senzor de cădere a legăturii cu un ESP32 și un SIM800. Aceasta înseamnă că, cu acest proiect, putem verifica conexiunea la internet și, în cazul unei defecțiuni a conexiunii, putem apela un număr de telefon pentru a anunța că rețeaua are probleme.
Acesta este unul dintre mai multe moduri în care puteți efectua acest tip de monitorizare. Deși este simplu, vă permite să testați diferite dispozitive care pot exista în CPD. Puterea sa de verificare devine mult mai mare atunci când se utilizează ESP32. Deși folosesc WiFi în acest exemplu, puteți utiliza internetul prin cablu, dacă preferați.
Pasul 1: Asamblare
Pasul 2: Asamblare - Tabel
Pasul 3: Biblioteca TFT_eSPI
În IDE-ul Arduino, accesați Sketch-> Include
Bibliotecă-> Gestionați bibliotecile …
Instalați TFT_eSPI
Accesați dosarul bibliotecii și schimbați liniile fișierului User_Setup.h pentru a-l lăsa așa cum se arată în imagine.
Pasul 4: ESP32_Check_Internet_Connection.ino
Include și definește
#define TINY_GSM_MODEM_SIM800 # include
#include
#include
#include
// Mude para o name e senha da sua rede WiFi that quer testar #define SSID "SSID" #define PASSWORD "12345678" // + 55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para considerar 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 pentru módulo gsm HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); // Tempo em que conectou à internet pela ultima vez uint32_t lastTimeConnected = 0; // Tempo em que fez a ultima ligação. Colocamos como -MAX_CALL_TIME_INTERVAL para ligar imediat // da prima dată care cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Înființat
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa și configura o afișare setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Funcția care va fi executată "checkWiFiConnection", // Numele da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no case não usamos) 2, // Prioritate da tarefa NULL, // Caso queria manter uma referência para a tarefa care vai ser criada (no caso não precisamos) 0); // Numărul de bază care va fi executat la tarefa (utilizăm o bază 0 pentru o buclă ficar de livrare cu o bază 1) xTaskCreatePinnedToCore (checkInternet, // Funcția care va fi executată "checkInternet", // Numele da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Prioritate da tarefa NULL, // Caso queria manter uma referência para a tarefa care va fi criada (no caso não precisamos) 0); // Numărul de bază care va fi executat la o tarefa (utilizăm o bază 0 pentru o buclă de livrare com o bază 1)}
SetupDisplay
void setupDisplay () {display.init (); // Inicializa o display display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o text ca branco com fundo azul display.setTextWrap (false, false); // Desativă a cărei linii display.setTextSize (1); // Muda o tamanho do text display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}
SetupGSM
void setupGSM () {showDisplay ("Configurare GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); întârziere (1000); // Reporniți o módulo if (! ModemGSM.restart ()) {ESP.restart (); întoarcere; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay („Eroare rețea GSM”); întârziere (3000); ESP.restart (); întoarcere; }}
verificați Conectare Wi-Fi
void checkWiFiConnection (void * p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Delay de 1s da tarefa. E feita em ticks. Pentru a executa millis divizii constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
conectațiWiFi
void connectWiFi () {// Manda conectar ao roteador com o name e senha WiFi.begin (SSID, PASSWORD); Serial.println („Conectarea”); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); întârziere (500); } // Se chegou aqui está conectado Serial.println (); Serial.println („Conectat”); }
verificați Internet
void checkInternet (void * p) {// Delay de 5 segundos da tarefa. E feita em ticks. Pentru a executa millis divizii constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em that aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o delay vTaskDelay (taskDelay); }}
areInternet
bool areInternet () {client Client WiFi; // Endreço IP de Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite pentru conexiune client.setTimeout (5); // Tenta conectar bool connected = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado return connected; }
Buclă
void loop () {// Se desconectează mai mult timp care definim dacă (isDisconnectedForTooLong ()) {// Afișează nu este afișat care este desconectat showDisplay ("Deconectat"); // Se faz tempo que não liga para o telefone definido if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone definido callPhone (); }} else {// Show no display que está conectado showDisplay ("Connected"); } // Espera 1 segundo pentru următoarea iterație do loop delay (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo de la ultima conexiune for maior care o definite return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo de la ultima ligă pentru telefonul pentru mai mare care să definească return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
callPhone
void callPhone () {// Faz a ligação para o telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se intră aici pentru că a realizat un liga Serial.println ("callphone ok"); // Atualiza o tempo em that foi feita a ultima ligação lastTimeCalledPhone = millis (); } else {// Se intră acum pentru că n-am obținut fază la liga Serial.println ("callphone failure"); } // Terminați un modem ligatGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Show a mensagem na prima linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (mesaj + ""); }
Pasul 5: Descărcați fișierele
EU NU
Recomandat:
Senzor de vreme compact cu legătură de date GPRS (cartela SIM): 4 pași
Senzor de vreme compact cu legătură de date GPRS (cartela SIM): Rezumatul proiectului Acesta este un senzor de vreme alimentat de la baterie bazat pe un senzor de temperatură / presiune / umiditate BME280 și un MCU ATMega328P. Funcționează cu două baterii litiu tionil AA de 3,6 V. Are un consum de somn ultra-mic de 6 µA. Trimite date
Deci, încărcați încărcătorul de boot STM32duino în „pastila albastră” Deci, ce se întâmplă acum ?: 7 pași
Deci, încărcați încărcătorul de boot STM32duino în „pastila albastră” … Deci, ce se întâmplă acum ?: Dacă ați citit deja instrucțiunile mele explicând modul în care se încarcă încărcătorul de boot STM32duino sau orice altă documentație similară, încercați să încărcați exemplul de cod și …. s-ar putea să nu fie nimic Se întâmplă deloc.Problema este, multe, dacă nu toate exemple pentru „Generic” STM32 va
Cum se blochează portul USB fără software ?: 6 pași
Cum se blochează portul USB fără software ?: Sursă: http://www.cybernel.com/how-to-lock-usb-port-without-software/ Puteți împiedica portul USB al computerului de la hardware fără a-l detecta. nu aveți nevoie de niciun software pentru a bloca portul USB. dacă sunteți utilizatorul Windows este foarte simplu
Norii se întâmplă: 3 pași
Clouds Happen: Weather Station Acest sistem este o stație meteorologică low cost care folosește eticheta senzorului Raspberry 3 și Texas Instruments CC2650 pentru a compara vremea exterioară cu condițiile interne. Folosind Node Red și Freeboard, se poate crea un tablou de bord pentru a vizualiza t
Urmăriți în secret ce se întâmplă, indiferent unde vă aflați: 4 pași
Urmăriți în secret ce se întâmplă, indiferent de locul în care vă aflați. Această instrucțiune vă va arăta cum să utilizați aplicația iphone / ipod touch „iCam” și computerul dvs. pentru a vedea ce se întâmplă folosind camera web oriunde vă aflați. Aceasta este prima mea instrucțiune, așa că vă rog, fără critici dure. Nu mă deranjează niciun feedback pe care să-l