Turinys:
- 1 žingsnis: Surinkimas
- 2 žingsnis: Surinkimas - stalas
- 3 veiksmas: TFT_eSPI biblioteka
- 4 veiksmas: ESP32_Check_Internet_Connection.ino
- 5 veiksmas: atsisiųskite failus
Video: Ką daryti, jei jūsų nuoroda sugenda?: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šiame vaizdo įraše sukursime nuorodos kritimo jutiklį su ESP32 ir SIM800. Tai reiškia, kad vykdydami šį projektą galime patikrinti prisijungimą prie interneto, o nutrūkus ryšiui - paskambinti telefono numeriu ir pranešti, kad tinklas turi problemų.
Tai yra vienas iš daugelio būdų, kaip galite atlikti tokio tipo stebėjimą. Nors tai paprasta, tai leidžia išbandyti įvairius įrenginius, kurie gali būti jūsų CPD. Jo tikrinimo galia tampa daug didesnė naudojant ESP32. Nors šiame pavyzdyje naudoju „WiFi“, jei norite, galite naudoti laidinį internetą.
1 žingsnis: Surinkimas
2 žingsnis: Surinkimas - stalas
3 veiksmas: TFT_eSPI biblioteka
„Arduino IDE“eikite į Sketch-> Include
Biblioteka-> Tvarkyti bibliotekas …
Įdiekite TFT_eSPI
Eikite į bibliotekos aplanką ir pakeiskite failo User_Setup.h eilutes, kad paliktumėte jį, kaip parodyta paveikslėlyje.
4 veiksmas: ESP32_Check_Internet_Connection.ino
Apima ir apibrėžia
#define TINY_GSM_MODEM_SIM800#include
#įtraukti
#įtraukti
#įtraukti
// 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" // Tempe que deve esperar para 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 1 metodo gsm HardwareSerial SerialGSM (1); „TinyGsm“modemasGSM („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 lastTimeConedPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h su pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Sąranka
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializacija arba GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executab "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 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 que será executab 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); // Número do core que será executab a 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 arba ekranas com or cor display. SetTextColor (TFT_WHITE, TFT_BLUE); // Coloca arba 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}
SąrankaGSM
void setupGSM () {showDisplay („GSM sąranka“); // O „Modulo GSM está nos GPIOs 4 e 2 SerialGSM.begin“(9600, SERIAL_8N1, 4, 2, false); vėlavimas (1000); // Paleisti iš naujo arba metodą if (! ModemGSM.restart ()) {ESP.restart (); grįžti; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay („GSM tinklo klaida“); vėlavimas (3000); ESP.restart (); grįžti; }}
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. Fe fe em erkių. Paleiskite vykdytoją, turėdami milijardą dividendų, jei reikia, portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com o nome and senha WiFi.begin (SSID, PASSWORD); Serial.println („Prisijungimas“); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vėlavimas (500); } // Se chegou aqui está conectado Serial.println (); Serial.println („Prisijungta“); }
checkInternet
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em erkės. Paleiskite vykdytoją, turėdami milijardą dividendų, jei reikia, portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (tiesa) {// Se tem internet if (hasInternet ()) {// Atualizacija ar tempas em que aconteceu a utlima conexão lastTimeConnected = millis (); } // Aplica o delay vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {WiFiClient klientas; // Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão 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; }
Kilpa
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 (hasNotConedPhoneInAWhile ()) {// Liga para o telefone apibrėžtas callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Connected"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Sugrįžta tikra se o tempo tvarka ir pasiekiama, kai maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotConedPhoneInAWhile () {// Atkurti tikruosius tempus, kad būtų pasiektas telefono ryšys, skirtas maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
callPhone
void callPhone () {// Faz a ligação para or telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Žiūrėti įvestą akimirką ir susikurti realybę a serial.println ("callphone ok"); // 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 ("callphone nepavyko"); } // Termina a 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 (pranešimas + ""); }
5 veiksmas: atsisiųskite failus
AŠ NE
Rekomenduojamas:
„Steam“nuoroda jūsų „Raspberry Pi“: 4 žingsniai
„Steam Link“jūsų „Raspberry Pi“: „Steam Link“yra sprendimas išplėsti „Steam“žaidimų biblioteką į bet kurį namo kambarį per jūsų namų tinklą. „Raspberry Pi“galite paversti „Steam Link“
Ką daryti, jei įkroviklis nemato 18650 ličio jonų akumuliatoriaus: 9 žingsniai
Ką daryti, jei įkroviklis nemato 18650 ličio jonų akumuliatoriaus: ką daryti, jei akumuliatorius neįkraunamas, įkroviklis nemato akumuliatoriaus dėl 2 priežasčių: žemos įtampos arba suveikusios šiluminės apsaugos
Kaip gauti muzikos iš beveik bet kurios (Haha) svetainės (jei tik galite ją išgirsti, galite ją gauti Gerai, jei ji įterpta į „Flash“, galbūt negalėsite) REDAGUOTA !!!!! Pridėta informacija: 4 žingsniai
Kaip gauti muzikos iš beveik bet kurios (Haha) svetainės (jei tik galite ją išgirsti, galite ją gauti … Gerai, jei ji įterpta į „Flash“, galbūt negalėsite) REDAGUOTA !!!!! Pridėta informacija: jei jūs kada nors einate į svetainę ir ji groja jums patinkančią ir norimą dainą, tada čia yra nurodymas, kad jūs nesate mano kaltė, jei ką nors sujauksite (vienintelis būdas tai padaryti bus, jei pradėsite ištrinti medžiagą be priežasties) ) man pavyko gauti muzikos
Ką daryti, kai „iTunes“neatpažįsta jūsų „iPod“: 7 veiksmai
Ką daryti, kai „iTunes“neatpažįsta jūsų „iPod“.: Taigi gavote naują „iPod“ir labai džiaugiatės juo naudodamiesi. Prijunkite USB laidą prie kompiuterio, o kitą galą - prie „iPod“. Dabar susiduriate su problema. Dėl tam tikrų priežasčių „iTunes“neaptinka jūsų „iPod“. Galbūt manote, kad tai yra pr
Ką daryti, jei priekabiaujama prie instrukcijų: 7 žingsniai
Ką daryti, jei priekabiaujama prie „Instructables“: „Instructables“yra „pasidaryk pats“šeima, kurios nariai yra visame pasaulyje. Atkreipkite dėmesį į šeimą. Kartais (laimei, ne labai dažnai) keli blogi obuoliai įsmunka ir sutrikdo mūsų šeimą. Šios instrukcijos dalykas yra šios situacijos sprendimas