Innholdsfortegnelse:
- Trinn 1: Montering
- Trinn 2: Montering - Tabell
- Trinn 3: TFT_eSPI bibliotek
- Trinn 4: ESP32_Check_Internet_Connection.ino
- Trinn 5: Last ned filene
Video: Hva om lenken din krasjer ?: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
I denne videoen vil vi lage en link drop -sensor med en ESP32 og et SIM800. Dette betyr at vi med dette prosjektet kan bekrefte tilkoblingen til internett, og i tilfelle en tilkobling mislykkes, kan du ringe et telefonnummer for å varsle om at nettverket er i trøbbel.
Dette er mange måter du kan utføre denne typen overvåking på. Selv om det er enkelt, lar det deg teste forskjellige enheter som kan eksistere innenfor CPD. Kontrollens kraft blir mye større når du bruker ESP32. Selv om jeg bruker WiFi i dette eksemplet, kan du bruke internett via kabel hvis du foretrekker det.
Trinn 1: Montering
Trinn 2: Montering - Tabell
Trinn 3: TFT_eSPI bibliotek
I Arduino IDE, gå til Skisse-> Inkluder
Bibliotek-> Administrer biblioteker …
Installer TFT_eSPI
Gå til biblioteksmappen og endre linjene i User_Setup.h -filen for å la den stå som vist på bildet.
Trinn 4: ESP32_Check_Internet_Connection.ino
Inkluderer og definerer
#define TINY_GSM_MODEM_SIM800#inkluderer
#inkludere
#inkludere
#inkludere
// 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 omoddulo 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 og pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Oppsett
ugyldig oppsett () {Serial.begin (115200); setupDisplay (); // Innledende konfigurasjon av skjermoppsettGSM (); // 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 for kjerne som ser utførelse og 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); // Nummer for kjerne som ser utførelse og tarefa (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}
OppsettGSM
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); // Start på nytt hvis (! ModemGSM.restart ()) {ESP.restart (); komme tilbake; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM -nettverksfeil"); forsinkelse (3000); ESP.start (); komme tilbake; }}
checkWiFiConnection
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. É feita em flått. For execar em 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 ("Koble til"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); forsinkelse (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Tilkoblet"); }
sjekkInternett
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em flått. For execar em 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 (); } // Bruk eller forsink vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {WiFiClient -klient; // Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite for conexão client.setTimeout (5); // Tenta conectar bool tilkoblet = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se est est conectado ou false se está desconectado return connected; }
Løkke
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 (); }} annet {// 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 telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
ring telefon
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 (); } annet {// 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 melding) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (melding + ""); }
Trinn 5: Last ned filene
INO
Anbefalt:
Så, du laster STM32duino Bootloader i din "blå pille" Så hva nå ?: 7 trinn
Så, du laster inn STM32duino Bootloader i din "blå pille" … Så hva nå ?: Hvis du allerede har lest instruksjonene mine som forklarer hvordan du laster inn STM32duino bootloader eller annen lignende dokumentasjon, prøver du å laste inn kodeeksempel og …. kan være ingenting skjer i det hele tatt. Problemet er mange, om ikke alle eksempler for " Generic " STM32 vil
Hva er en CPU, hva gjør den og hvordan kan du feilsøke den: 5 trinn
Hva er en CPU, hva gjør den og hvordan kan du feilsøke den: Hver dag ser du her vilkårene " CPU " eller "Prosessor" blir kastet rundt, men vet du virkelig hva det betyr? Jeg vil gå over hva en CPU er og hva den gjør, så vil jeg gå over vanlige CPU -problemer og hvordan jeg eventuelt kan fikse dem
Slik krasjer du en datamaskin med en batchfil!: 10 trinn
Slik krasjer du hvilken som helst datamaskin med en batchfil
Slik krasjer du datamaskinen: 5 trinn
Slik krasjer du datamaskinen: Veldig enkel
Avslutte et program som krasjer: 4 trinn
Lukke et krasjet program: NÅR PC -EN FRYSER Et av de vanligste problemene å oppstå med en PC er når alt fryser eller låser seg mens du bruker et program, og musen og tastaturet ikke vil svare. Vel i denne instruksjonsboken er jeg skal vise deg hvordan