Përmbajtje:
- Hapi 1: Asambleja
- Hapi 2: Kuvendi - Tabela
- Hapi 3: Biblioteka TFT_eSPI
- Hapi 4: ESP32_Check_Internet_Connection.ino
- Hapi 5: Shkarkoni skedarët
Video: Po sikur lidhja juaj të prishet?: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Në këtë video, ne do të krijojmë një sensor të rënies së lidhjes me një ESP32 dhe një SIM800. Kjo do të thotë që me këtë projekt, ne mund të verifikojmë lidhjen me internetin, dhe në rast të dështimit të lidhjes, telefononi një numër telefoni për të njoftuar se rrjeti është në telashe.
Kjo është një nga mënyrat e shumta që mund të kryeni këtë lloj monitorimi. Ndërsa është e thjeshtë, ju lejon të provoni pajisje të ndryshme që mund të ekzistojnë brenda CPD -së tuaj. Fuqia e tij e kontrollit bëhet shumë më e madhe kur përdorni ESP32. Megjithëse unë përdor WiFi në këtë shembull, ju mund të përdorni internetin me kabllo, nëse preferoni.
Hapi 1: Asambleja
Hapi 2: Kuvendi - Tabela
Hapi 3: Biblioteka TFT_eSPI
Në Arduino IDE, shkoni te Sketch-> Include
Biblioteka-> Menaxho Bibliotekat…
Instaloni TFT_eSPI
Shkoni te dosja e bibliotekës dhe ndryshoni linjat e skedarit User_Setup.h për ta lënë atë siç tregohet në imazh.
Hapi 4: ESP32_Check_Internet_Connection.ino
Përfshin dhe përcaktojnë
#përcaktoni TINY_GSM_MODEM_SIM800#përfshini
#përfshi
#përfshi
#përfshi
// Përzgjidhni numrin e të dhënave tuaja për të përcaktuar testin #define SSID "SSID" #define PASSWORD "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para parasysh 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 o módulo gsm HardwareSerial SerialGSM (ModemGSM TinyGsm (SerialGSM); // Tempo em que conectou à internet në lidhje me uint32_t lastTimeConnected = 0; // Tempo em que fez a última ligação. Colocamos como -MAX_CALL_TIME_INTERVAL për imediatamente të tjera // për herë të parë në kohën e funditTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h dhe makarona për bibliotekën TFT_eSPI display = TFT_eSPI ();
Konfigurimi
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa dhe konfigurimi i shfaqjes setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será ekzekutimi "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (pa caso 2), pa përdorim 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 që do të ekzekutojë një tarefa (përdorimi i një baze 0 për o loop ficar livre com o core 1) xTaskCreatePinnedToCore (kontrolloni Internetin, // Função que será ekzekutimin "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 që të ekzekutojë një tarefa (përdorimi i 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 ose shfaqje 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}
SetupGSM
void setupGSM () {showDisplay ("Konfiguro GSM"); // O Módulo GSM nuk ka GPIO 4 e 2 SerialGSM.fillojnë (9600, SERIAL_8N1, 4, 2, false); vonesa (1000); // Restart o módulo nëse (! ModemGSM.restart ()) {ESP.restart (); kthim; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Gabim në Rrjetin GSM"); vonesë (3000); ESP.restart (); kthim; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Vonesa e 1s da tarefa. É feita em rriqrat. Për ekzekutuesin ne jemi të ndarë në portin konstante TICK_PERIOD_MS TickType_t taskVonesë = 1000 / portTICK_PERIOD_MS; vTaskDelay (detyraVonesa); }}
lidh Wi -Fi
void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Lidhja"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vonesë (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("I lidhur"); }
kontrollInternet
kontroll i pavlefshëm në internet (i pavlefshëm* p) {// Vonesa në 5 ditë më parë. É feita em rriqrat. Për ekzekutuesin tonë mund të ndani një port të vazhdueshëmTICK_PERIOD_MS TickType_t taskVonesë = 5000 / portTICK_PERIOD_MS; ndërsa (e vërtetë) {// Se tem internet nëse (kaInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplikimi ose vonesa vTaskDelay (taskDelay); }}
kaInternet
bool hasInternet () {klienti WiFiClient; // Endreço IP për Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão client.setTimeout (5); // Tenta conectar bool lidhur = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado kthimi i lidhur; }
Lak
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Shkyçur"); // Se shpejti nuk mund të lidhet me telefonin nëse do të ketë (hasNotCalledPhoneInAWhile ()) {// Liga për telefonin tuaj definitivisht callPhone (); }} else {// Mostra nuk ka shfaqje que está conectado showDisplay ("I lidhur"); } // Espera 1 segundo para a próxima iteração bëni lak vonesë (1000); }
ështëShkyçurPërTëLatë
bool isDisconnectedForTooLong () {// Retorna true o o tempo desde a última conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna e vërtetë se o tempo ju deshi të lidhni një lidhje paralele me telefonin për një kohë të caktuar ose të kthimit përfundimtar () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
telefonPhone
i pavlefshëm callPhone () {// Faz a ligação para ose telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entrou aqui é porque conseguiu realizar a ligação Serial.println ("telefoni në rregull"); // 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 ("telefoni dështoi"); } // Termina a ligação modemGSM.callHangup (); }
showDisplay
void showDisplay (Mesazhi me varg) {// Më shumë për një menaxher kryesor për të shfaqur, shfaqni parametrat shtesë të shfaqjes.setCursor (0, 0); display.println (mesazh + ""); }
Hapi 5: Shkarkoni skedarët
INO
Recommended:
Sensor kompakt i motit Me GPRS (Kartë SIM) Lidhja e të dhënave: 4 hapa
Sensor Kompakt i Motit Me GPRS (Kartë SIM) Lidhja e të dhënave: Përmbledhje projekti Ky është një sensor moti me bateri i bazuar në një sensor të temperaturës/presionit/lagështisë BME280 dhe një MCU ATMega328P. Punon me dy bateri litium tionil AA 3.6 V. Ka një konsum ultra të ulët të gjumit prej 6 µA. Ai dërgon datën
Lidhja e ESP 32 me sensorin tejzanor: 3 hapa
Lidhja e ESP 32 me Sensorin tejzanor: Sensorët tejzanor punojnë duke lëshuar valë zanore në një frekuencë shumë të lartë për t'u dëgjuar nga njerëzit. Ata pastaj presin që tingulli të reflektohet përsëri, duke llogaritur distancën bazuar në kohën e kërkuar. Kjo është e ngjashme me mënyrën se si radari mat kohën që i duhet një
Lidhja e MPU6050 Me ESP32: 4 hapa
Lidhja e MPU6050 Me ESP32: Në këtë projekt, unë do të ndërlidh sensorin MPU6050 me bordin ESP32 DEVKIT V1. MPU6050 njihet gjithashtu si sensor 6 boshtësh ose sensor 6 shkallë lirie (DOF). Të dy sensorët e akselerometrit dhe gyrometrit janë të pranishëm në këtë modul të vetëm. Përshpejtuesi
Lidhja e Raspberry Pi juaj me Uebin: 9 hapa
Lidhja e Raspberry Pi tuaj me Uebin: Në këtë mësim, do të mësoni se si të krijoni një faqe në internet, të mblidhni të dhëna duke përdorur uebin botëror dhe të përdorni API për të postuar imazhe në Tumblr dhe Twitter
Një mënyrë vërtet e thjeshtë/e lehtë/jo e ndërlikuar për t'i bërë njerëzit/njerëzit/kafshët/robotët të duken sikur kanë vërtet vizion të nxehtë të ftohtë/të ndritshëm (ngjyra sipas zgjedhjes suaj) duke përdorur GIMP: 4 hapa
Një mënyrë vërtet e thjeshtë/e lehtë/jo e komplikuar për t'i bërë njerëzit/njerëzit/kafshët/robotët të duken sikur kanë vërtet vizion të nxehtë të ftohtë/të ndritshëm (ngjyra sipas zgjedhjes suaj) Duke përdorur GIMP: Lexoni … titullin