Indholdsfortegnelse:
- Trin 1: Montering
- Trin 2: Montering - Tabel
- Trin 3: TFT_eSPI -bibliotek
- Trin 4: ESP32_Check_Internet_Connection.ino
- Trin 5: Download filerne
Video: Hvad hvis dit link går i stykker ?: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I denne video vil vi oprette en link drop -sensor med en ESP32 og et SIM800. Det betyder, at vi med dette projekt kan verificere forbindelsen til internettet, og i tilfælde af en forbindelsesfejl kan du ringe til et telefonnummer for at underrette om, at netværket er i problemer.
Dette er en af mange måder, du kan udføre denne type overvågning på. Selvom det er enkelt, giver det dig mulighed for at teste forskellige enheder, der kan eksistere inden for din CPD. Dens kontrolstyrke bliver meget større, når du bruger ESP32. Selvom jeg bruger WiFi i dette eksempel, kan du bruge kablet internet, hvis du foretrækker det.
Trin 1: Montering
Trin 2: Montering - Tabel
Trin 3: TFT_eSPI -bibliotek
I Arduino IDE skal du gå til Skitse-> Inkluder
Bibliotek-> Administrer biblioteker …
Installer TFT_eSPI
Gå til biblioteksmappen, og rediger linjerne i filen User_Setup.h for at efterlade den som vist på billedet.
Trin 4: ESP32_Check_Internet_Connection.ino
Inkluderer og definerer
#define TINY_GSM_MODEM_SIM800#inkludere
#omfatte
#omfatte
#omfatte
// Mude para o nome e senha da sua rede WiFi que 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 para omoddo gsm HardwareSerial SerialGSM (1); TinyGsm -modemGSM (SerialGSM); // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a última ligação. Colocamos como -MAX_CALL_TIME_INTERVAL para ligar imediatamente // da primeira vez que cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h til pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Opsætning
ugyldig opsætning () {Serial.begin (115200); setupDisplay (); // Inficial e konfigura o display setupGSM (); // 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 usamade) 2, // Prior da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Nummer til kerner, der sera eksekverer og tager (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); // Nummer på kerne, der ser udførelse og anvendelse (usamos o 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 o display 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}
OpsætningGSM
void setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); forsinkelse (1000); // Genstart eller åbn hvis (! ModemGSM.restart ()) {ESP.restart (); Vend tilbage; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM -netværksfejl"); forsinkelse (3000); ESP.restart (); Vend tilbage; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Forsinkelse med 1s da tarefa. É feita em flåter. For eksekver i millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com on nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Tilslutning"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); forsinkelse (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Tilsluttet"); }
checkInternet
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em flåter. For eksekver i millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; mens (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Anvend eller forsink vTaskDelay (taskDelay); }}
harInternet
bool hasInternet () {WiFiClient -klient; // Endreço IP til Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão client.setTimeout (5); // Tenta conectar bool tilsluttet = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se est est conectado ou false se está desconectado return connected; }
Sløjfe
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected"); // Se faz tempo que não liga para o telefone definido if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone definido callPhone (); }} andet {// Mostra no display que está conectado showDisplay ("Connected"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
isDisconnectedForTooLong
bool 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 phone for maior que o definido 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 entrou aqui é porque conseguiu realizar a ligação Serial.println ("callphone ok"); // Atualiza o tempo em que foi feita a última ligação lastTimeCalledPhone = millis (); } andet {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("callphone failed"); } // Termina og ligação modemGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (besked + ""); }
Trin 5: Download filerne
INO
Anbefalede:
Covid-19 maske, der skriger på dig, hvis du rører ved dit ansigt: 4 trin
Covid-19-maske, der skriger på dig, hvis du rører ved dit ansigt: Kan du ikke stoppe med at røre ved dit ansigt? Sæt denne elektronik på en maske, du har, og du bliver konstant mindet om ikke at gøre det
Hvad er en CPU, hvad gør den, og hvordan fejlfindes den: 5 trin
Hvad er en CPU, hvad gør den og hvordan foretages fejlfinding: Hver dag vil du her udtrykke " CPU " eller "Processor" bliver smidt rundt, men ved du virkelig, hvad det betyder? Jeg vil gå over, hvad en CPU er, og hvad den gør, så vil jeg gå over almindelige CPU -problemer og hvordan jeg eventuelt kan løse dem
Sådan bruges et par stykker træ til at samle sig til en sød og kraftfuld trærobotarm: 10 trin
Sådan bruges et par stykker træ til at samles i en sød og kraftig trærobotarm: Robotarmen hedder WoodenArm. Det ser meget sødt ud! Hvis du vil have flere detaljer om WoodenArm, kan du se www.lewansoul.com Nu kan vi lave en introduktion om WoodenArm, lad os komme videre
Hvad skal man gøre, hvis opladeren ikke ser 18650 Li-ion-batteri: 9 trin
Hvad skal man gøre, hvis opladeren ikke ser 18650 Li-ion-batteri: Hvad skal man gøre, hvis batteriet ikke oplades, oplader ser ikke batteriet af to grunde: lav spænding på det eller udløst termisk beskyttelse
Hvad skal man gøre, hvis chikaneret på instruktioner: 7 trin
Hvad skal man gøre, hvis man chikaneres på instruktioner: Instructables er en familie af gør -det -selv med medlemmer over hele verden. Bemærk vægten på familien. Nogle gange (heldigvis ikke særlig ofte) smutter et par dårlige æbler ind og forstyrrer vores familie. At håndtere denne type situationer er genstand for denne instruktion