INHOUDSOPGAWE:
- Stap 1: Montering
- Stap 2: Samestelling - Tabel
- Stap 3: TFT_eSPI -biblioteek
- Stap 4: ESP32_Check_Internet_Connection.ino
- Stap 5: Laai die lêers af
Video: Wat as u skakel ineenstort ?: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
In hierdie video skep ons 'n skakelvalsensor met 'n ESP32 en 'n SIM800. Dit beteken dat ons met hierdie projek die verbinding met die internet kan verifieer, en in die geval van 'n verbinding misluk, 'n telefoonnommer bel om in kennis te stel dat die netwerk in die moeilikheid is.
Dit is een van die vele maniere waarop u hierdie tipe monitering kan uitvoer. Alhoewel dit eenvoudig is, kan u verskillende toestelle wat binne u CPD bestaan, toets. Die kontrolevermoë word baie groter as u die ESP32 gebruik. Alhoewel ek WiFi in hierdie voorbeeld gebruik, kan u internet via kabel gebruik, indien u dit verkies.
Stap 1: Montering
Stap 2: Samestelling - Tabel
Stap 3: TFT_eSPI -biblioteek
Gaan in die Arduino IDE na Skets-> Sluit in
Biblioteek-> Bestuur biblioteke …
Installeer TFT_eSPI
Gaan na die biblioteekmap en verander die reëls van die User_Setup.h -lêer om dit soos in die prentjie te laat.
Stap 4: ESP32_Check_Internet_Connection.ino
Sluit in en definieer
#definieer TINY_GSM_MODEM_SIM800#insluit
#insluit
#insluit
#insluit
// 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 -modem GSM (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 na die biblioteca TFT_eSPI -vertoning = TFT_eSPI ();
Stel op
ongeldige opstelling () {Serial.begin (115200); setupDisplay (); // Inisieer en konfigurasie van die opstel van GSM (); // Inisializa 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); // Nommero do core que será executada a tarefa (usamos or core 0 par l loop ficar livre com 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); // Nommer die kern van die funksie (as 'n kern van 0 vir 'n lus om die kern van die reeks 1)}
SetupDisplay
leegte setupDisplay () {display.init (); // Inisieer o display display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Daar is 'n weergawe met 'n azul -display.setTextColor (TFT_WHITE, TFT_BLUE); // Verskeie teks vir 'n volledige weergawe.setTextWrap (vals, vals); // Desativa a quebra de linha display.setTextSize (1); // Ons kan ook teks vir display.setCursor (0, 0, 2) gebruik; // Posição x, y e fonte do texto}
Stel GSM op
ongeldig setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); vertraging (1000); // Herlaai of weer begin as (! ModemGSM.restart ()) {ESP.restart (); terugkeer; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM -netwerkfout"); vertraging (3000); ESP.start (); terugkeer; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Sien nie hoe dit met roteador verbind kan word nie (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Vertraging van 1s da tarefa. É feita em bosluise. Vir die uitvoer van 'n millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Verbind"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vertraging (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("verbind"); }
checkInternet
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em bosluise. Vir die uitvoer van een millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; terwyl (waar) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Gebruik die vertraging vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {WiFiClient -kliënt; // 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); // Om 'n goeie kliënt.stop (); // Retorna true se est est conectado ou false se está desconectado return connected; }
Lus
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 (); }} anders {// 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; }
bel Telefoon
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 (); } anders {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("belfoon misluk"); } // Termina en liga modemGSM.callHangup (); }
vertoning vertoon
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (boodskap + ""); }
Stap 5: Laai die lêers af
EK NEE
Aanbeveel:
Skakel-aanpas speelgoed: 'n stoomtrein speelgoed toeganklik gemaak !: 7 stappe (met foto's)
Switch-Adapt Toys: 'n Stoomtrein-speelgoed wat toeganklik is !: Speelgoedaanpassing bied nuwe moontlikhede en pasgemaakte oplossings oop sodat kinders met beperkte motoriese of ontwikkelingsgestremdhede onafhanklik met speelgoed kan omgaan. In baie gevalle kan die kinders wat die aangepaste speelgoed benodig, nie
Skakel-pas speelgoed: waterasemende draak toeganklik gemaak: 7 stappe (met foto's)
Switch-Adapt Toys: Water-ademende Walking Dragon gemaak toeganklik !: Speelgoedaanpassing bied nuwe moontlikhede en pasgemaakte oplossings oop sodat kinders met beperkte motoriese of ontwikkelingsgestremdhede onafhanklik met speelgoed kan omgaan. In baie gevalle kan die kinders wat die aangepaste speelgoed benodig, nie
Wat is 'n SVE, wat doen dit en hoe om dit op te los: 5 stappe
Wat is 'n SVE, wat doen dit en hoe om dit op te los: Elke dag vind u hier die terme " CPU " of " Verwerker " as ek rondgegooi word, maar weet u regtig wat dit beteken?
Skakel koptelefoon wat ruisonderdrukking van vliegtuie omskakel na stereo -koptelefoon: 6 stappe (met foto's)
Skakel vliegtuiggeluidsonderdrukkende koptelefoon om na stereo -koptelefoon: het u ooit 'n kans gehad om 'n paar van hierdie geraasonderdrukkende koptelefoon uit vliegtuie te kry? Hier is 'n paar besonderhede oor my soeke na die omskakeling van hierdie drie -koptelefoon na 'n gewone 3,5 mm -stereo -koptelefoonaansluiting vir 'n rekenaar/skootrekenaar of enige ander draagbare toestelle soos
Skakel 'n generiese plastiekapparaat in op iets wat mooier is: 14 stappe (met foto's)
Skakel 'n generiese plastiekapparaat in op 'n bietjie mooier: motivering: in die somer surf ek of werk aan projekte in ons klein tuin/plaas. Die winter is op hande hier in Boston en ek is gereed om die lang lys projekte wat ek vir die 'binnenshuise maande' uitgestel het, aan te val. Ek het egter