Cov txheej txheem:
- Kauj ruam 1: Sib dhos
- Kauj Ruam 2: Sib dhos - Rooj
- Kauj ruam 3: TFT_eSPI Library
- Kauj ruam 4: ESP32_Check_Internet_Connection.ino
- Kauj ruam 5: Rub tawm Cov Ntaub Ntawv
Video: Yuav Ua Li Cas Yog Koj Qhov Txuas Crashes?: 5 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:26
Hauv daim vis dis aus no, peb yuav tsim qhov txuas txuas qhov ntsuas nrog ESP32 thiab SIM800. Qhov no txhais tau tias nrog txoj haujlwm no, peb tuaj yeem txheeb xyuas qhov kev txuas mus rau is taws nem, thiab thaum muaj kev sib txuas tsis tiav, hu xov tooj mus ceeb toom tias lub network muaj teeb meem.
Nov yog ib txoj hauv kev ntau yam uas koj tuaj yeem ua rau kev txheeb xyuas hom no. Thaum nws yooj yim, nws tso cai rau koj sim ntau yam khoom siv uas yuav muaj nyob hauv koj li CPD. Nws lub zog ntawm kev tshuaj xyuas ua ntau dua thaum siv ESP32. Txawm hais tias kuv siv WiFi hauv qhov piv txwv no, koj tuaj yeem siv wired internet, yog tias koj xav tau.
Kauj ruam 1: Sib dhos
Kauj Ruam 2: Sib dhos - Rooj
Kauj ruam 3: TFT_eSPI Library
Hauv Arduino IDE, mus rau Sketch-> Xws li
Tsev qiv ntawv-> Tswj cov tsev qiv ntawv…
Nruab TFT_eSPI
Mus rau lub tsev qiv ntawv ntawv tais ceev tseg thiab hloov kab ntawm Cov Ntaub Ntawv User_Setup.h kom tso nws raws li qhia hauv daim duab.
Kauj ruam 4: ESP32_Check_Internet_Connection.ino
Suav nrog thiab txhais
#define TINY_GSM_MODEM_SIM800#suav nrog
#suav nrog
#suav nrog
#suav nrog
// 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 // Siv serial 1 para o módulo gsm HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); // Tempo em que conectou à internet pela imaltima 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 pasta da biblioteca TFT_eSPI zaub = TFT_eSPI ();
Teeb
teeb tsa tsis muaj dab tsi () {Serial.begin (115200); setupDisplay (); // Txheeb xyuas qhov teeb tsa lossis teeb tsa teeb tsa GSM (); // 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 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á executada 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á executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
Teeb Teeb
void setupDisplay () {display.init (); // Inicializa o tso saib 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 (cuav, cuav); // Desativa a quebra de linha display.setTextSize (1); // Tam sim no ua cov ntawv nyeem display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}
Teeb GSM
void setupGSM () {showDisplay ("Teeb GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, cuav); ncua (1000); // Restart o módulo yog (! ModemGSM.restart ()) {ESP.restart (); rov qab; } // Espera pela rede celular yog (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM Network Error"); ncua (3000); ESP.restart (); rov qab; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Ncua de 1s da tarefa. É feita em zuam. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
txuas Wi -nkaus
void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Txuas"); // Espera tsis yog thaum noj conectar thaum (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); ncua (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Txuas"); }
checkInternet
void checkInternet (void* p) {// Ncua sijhawm 5 segundos da tarefa. É feita em zuam. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; thaum (tseeb) {// Se tem internet yog (muajInternet ()) {// Atualiza o tempo em que aconteceu a limtlima conexão lastTimeConnected = millis (); } // Aplica o ncua vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {WiFiClient tus thov kev pab; // 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 txuas nrog = client.connect (adr, 80); // Fecha conexão client.stop (); // Retorna tseeb se está conectado ou cuav se está desconectado rov txuas nrog; }
Loop
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 yog (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone definido callPhone (); }} lwm qhov {// Mostra tsis muaj zaub que está conectado showDisplay ("Txuas"); } // Espera 1 segundo para a próxima iteração do loop ncua (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna tseeb se o tempo desde a última conexão rau maior que o definido rov qab millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna tseeb se o tempo desde a última ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
hu xov tooj
tsis muaj dab tsi hu xov tooj () {// Faz a ligação para o telefone definido yog (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 (); } lwm yam {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("hu xov tooj tsis tau"); } // Termina ligação modemGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Qhov zoo tshaj plaws ntawm cov ntaub ntawv tseem ceeb tshaj plaws, limpando os eventuais caracteres ntxiv display.setCursor (0, 0); display.println (xov + ""); }
Kauj ruam 5: Rub tawm Cov Ntaub Ntawv
INO
Pom zoo:
Yuav Ua Li Cas Rau Koj Tus Kheej WIFI Qhov Rooj Kom Txuas Koj Arduino rau IP Network?: 11 Kauj Ruam (nrog Duab)
Yuav Ua Li Cas Rau Koj Tus Kheej WIFI Qhov Rooj Kom Txuas Koj Arduino rau IP Network?: Raws li muaj coob tus neeg koj xav tias Arduino yog ib qho kev daws teeb meem zoo los ua tsev automationand robotic! Kuv tab tom ua haujlwm ntawm tus neeg hlau uas yuav tsum tau txuas nrog mus tas li nrog lub server uas ua haujlwm
Yuav Ua Li Cas Tau Txais Cov Nkauj Los Ntawm Txhua Qhov (Haha) Lub Vev Xaib (Ntev Li Koj Tau hnov Nws Koj Yuav Tau Txais Nws Ok Zoo Yog Nws Tau Ntxig Hauv Flash Koj Yuav Tsis Muaj Peev Xwm) EDITED !!!!! Ntxiv Info: 4 Cov Kauj Ruam
Yuav Ua Li Cas Tau Txais Cov Nkauj Los Ntawm Txhua Qhov (Haha) Lub Vev Xaib (Ntev Li Koj Tau hnov Nws Koj Yuav Tau Txais Nws … Ok Zoo Yog Nws Tau Ntxig Hauv Flash Koj Yuav Tsis Muaj Peev Xwm) EDITED !!!!! Ntxiv Cov Lus Qhia: yog tias koj tau mus rau lub vev xaib thiab nws ua nkauj nkauj uas koj nyiam thiab xav tau nws ntawm no yog cov lus qhia rau koj tsis yog kuv qhov txhaum yog tias koj cuam tshuam qee yam (tsuas yog txoj hauv kev nws yuav tshwm sim yog tias koj pib tshem cov khoom yam tsis muaj laj thawj. ) Kuv tuaj yeem tau txais cov nkauj rau
Yuav Txheeb Xyuas Li Cas Yog Game Yuav Ua Haujlwm Hauv Koj Lub Computer Ua Ntej Koj Yuav Game: 4 Kauj Ruam
Yuav Txheeb Xyuas Li Cas Yog Game Yuav Ua Haujlwm Hauv Koj Lub Computer Ua Ntej Koj Yuav Game: Kuv tsis ntev los no tau txais Hu ntawm Duty 4 los ntawm tus phooj ywg (pub dawb kuv yuav ntxiv) vim tias yuav tsis khiav hauv nws lub computer. Zoo, nws lub khoos phis tawj yog qhov tshiab haum, thiab nws tsis txaus ntseeg kuv vim li cas nws yuav tsis khiav. Yog li tom qab ob peb teev ntawm kev tshawb nrhiav hauv internet, Kuv tau hla
Cov lus qhia rau Ua Plaub Qhov Kev Txuas Txuas Txuas Rau Qhov Chaw Mounted Footrest: 9 Cov Kauj Ruam (nrog Duab)
Cov lus qhia rau Ua Plaub Qhov Kev Txuas Txuas Txuas Rau Lub Hauv Paus Mounted Footrest: Mid-drive fais fab log lub rooj zaum (PWC) tau dhau los ua neeg nyiam nyob rau xyoo tas los no. Txawm li cas los xij, vim qhov kev tso rau pem hauv ntej casters, cov tsoos sab-mounted footrests tau hloov los ntawm ib qho chaw nruab nrab-footrest. Hmoov tsis zoo, center-mou
Yuav Ua Li Cas Kom Tau Koj Tus Ipod Kov (lossis Iphone Yog Koj Ua Tau Nws Tiag Tiag) kom Txiav Tawm Los Ntawm Qhov Tsis Nco: 3 Kauj Ruam
Yuav Ua Li Cas Tau Txais Koj Tus Ipod Kov (lossis Iphone Yog Koj Ua Tau Nws Tiag Tiag) Kom Txiav Tawm Los Ntawm Qhov Tsis Muaj Nco: Nyob Zoo, Muaj, ipod kov thiab cov neeg siv iphone. Ok, yog li kuv paub tseeb tias koj txhua tus tau nkag siab me ntsis ntawm yuav ua li cas cov kua ipod ua haujlwm, txoj cai? Koj qhib ib qho app. Qhov app ntawd yuav siv nyob txhua qhov ntawm tej zaum ntawm tus ipod kov 1G, 5-30MB ntawm qhov muaj