Orodha ya maudhui:
- Hatua ya 1: Mkutano
- Hatua ya 2: Mkutano - Jedwali
- Hatua ya 3: Maktaba ya TFT_eSPI
- Hatua ya 4: ESP32_Check_Internet_Connection.ino
- Hatua ya 5: Pakua faili
Video: Je! Ikiwa Kiungo chako kitaanguka ?: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Katika video hii, tutaunda kiunga cha kushuka kwa kiunga na ESP32 na SIM800. Hii inamaanisha kuwa na mradi huu, tunaweza kudhibitisha unganisho kwa wavuti, na ikiwa kutofaulu kwa unganisho, piga nambari ya simu kukujulisha kuwa mtandao uko matatani.
Hii ni njia moja wapo ambayo unaweza kufanya ufuatiliaji wa aina hii. Ingawa ni rahisi, hukuruhusu kujaribu vifaa anuwai ambavyo vinaweza kuwepo ndani ya CPD yako. Nguvu yake ya hundi inakuwa kubwa zaidi wakati wa kutumia ESP32. Ingawa mimi hutumia WiFi katika mfano huu, unaweza kutumia mtandao wa waya, ikiwa unapendelea.
Hatua ya 1: Mkutano
Hatua ya 2: Mkutano - Jedwali
Hatua ya 3: Maktaba ya TFT_eSPI
Katika IDE ya Arduino, nenda kwa Mchoro-> Jumuisha
Maktaba-> Simamia Maktaba…
Sakinisha TFT_eSPI
Nenda kwenye folda ya maktaba na ubadilishe mistari ya faili ya Mtumiaji_Setup.h kuiacha kama inavyoonyeshwa kwenye picha.
Hatua ya 4: ESP32_Check_Internet_Connection.ino
Inajumuisha na kufafanua
#fafanua TINY_GSM_MODEM_SIM800 # ni pamoja na
# pamoja
# pamoja
# pamoja
// Mude para o nome e senha da sua rede WiFi que quar testar #fine SSID "SSID" #fasili PASSWORD "12345678" // + 55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para considerar para considerar como desconectado #fasili 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 (1); ModemGSM ya TinyGsm (SerialGSM); // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a timaltima ligação. Colocamos como -MAX_CALL_TIME_INTERVAL kwa ligar imediatamente // da primeira vez quir cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Sanidi
kuanzisha batili () {Serial.begin (115200); kuanzishaDisplay (); // Usanidi na usanidi wa kuonyesha kuanzishaGSM (); // 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 usamosade) 2, // Prior da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Neromero 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); // Nero hufanya msingi wa kufanya kazi (usamos msingi 0 kwa kitanzi cha picha ya msingi 1)}
SetupDisplay
batili setupDisplay () {display.init (); // Inicializa o onyesha onyesho.setRotation (1); // onyesho la Rotaciona.fillScreen (TFT_BLUE); // Limpa o kuonyesha com 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 fanya onyesho la maandishi. Cursor (0, 0, 2); // Posição x, y e fonte do texto}
KuanzishaGSM
batili setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM ni GPIOs 4 na 2 SerialGSM.anza (9600, SERIAL_8N1, 4, 2, uwongo); kuchelewesha (1000); // Anza tena o módulo ikiwa (! ModemGSM.restart ()) {ESP.restart (); kurudi; } // Espera pela rede celular ikiwa (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Kosa la Mtandao wa GSM"); kuchelewesha (3000); Kuanza kwa ESP (); kurudi; }}
kuangaliaWiFiConnection
batili checkWiFiConnection (batili * p) {wakati (ni kweli) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Kuchelewa kwa 1s da tarefa. Ita feita em kupe. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
unganishaWiFi
batili connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Kuunganisha"); // Espera hakuna wakati akiwa kwenye koni wakati (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kuchelewesha (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Imeunganishwa"); }
kuangaliaInternet
kuangalia batili Mtandaoni (batili * p) {// Kuchelewesha kwa sekunde 5 za tarefa. Ita feita em kupe. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; wakati (kweli) {// Tazama mtandao ikiwa (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o kuchelewesha vTaskDelay (taskDelay); }}
anaInternet
bool hasInternet () {Wateja wa Wateja wa WiFi; // Endreo IP hufanya Google 172.217.3.110 IPAddress adr = IPAdress (172, 217, 3, 110); // Limite ya muda kwa mteja wa conexão.setTimeout (5); // boya ya Tenta conectar imeunganishwa = mteja. Unganisho (adr, 80); // Fecha mteja wa conexão.stop (); // Retorna kweli se está conectado ou false se está desconectado kurudi kushikamana; }
Kitanzi
kitanzi batili () {// Tazama mahali hapa kwa maana zaidi ikiwa (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected"); // Tazama wakati huu kwa sababu ya simu ikiwa utafafanua ikiwa (inaNoIsiyoitwaPhoneInAWhile ()) {// Liga kwa simu inayopigiwa simu (); }} mwingine {// Mostra no display que está conectado showDisplay ("Imeunganishwa"); } // Espera 1 segundo kwa próxima iteração kufanya kuchelewa kwa kitanzi (1000); }
imetenganishwaForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a timaltima conexão for maior que o definido return millis () - mwishoTimeConnected> MAX_DISCONNECTED_TIME; } bool haijaitwaPhoneInAWhile () {// Retorna true se o tempo desde a timaltima ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
piga simu
batiliPigiaPhone () {// Faz a ligação para o telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entryou aqui é porque conseguiu realizar a ligação Serial.println ("simu ok"); // Atualiza o tempo em que foi feita a timaltima ligação lastTimeCalledPhone = millis (); } mwingine {// Se Entre aqui é porque não conseguiu fazer a ligação Serial.println ("simu ya simu imeshindwa"); } // Termina a ligação modemGSM.callHangup (); }
onyesha Onyesha
Onyesha batili Onyesha (Ujumbe wa Kamba) {// Ujumbe zaidi wa kuonyesha na kuonyesha, onyesho la tukio la caracteres ya ziada kuonyesha.setCursor (0, 0); onyesha.println (ujumbe + ""); }
Hatua ya 5: Pakua faili
INO
Ilipendekeza:
Synthesizer ya Analog ya Ajabu / Kiungo kinachotumia Vipengele vya Diskret tu: Hatua 10 (na Picha)
Synthesizer ya Analog ya Kutisha / Kiungo kinachotumia Vipengele vya Dhahiri tu: Viunganishi vya Analog ni baridi sana, lakini pia ni ngumu sana kutengeneza. Kwa hivyo nilitaka kumfanya mtu awe rahisi kama inavyoweza kupata, kwa hivyo utendaji wake unaweza kueleweka kwa urahisi. Ili iweze kufanya kazi, wewe unahitaji mizunguko michache ya msingi: oscillator rahisi na resis
MIDIKufanya Kiungo cha Elektroniki: Hatua 6
KUFUNGA kiungo cha elektroniki: Hii inakuelekeza kuchukua kile chombo cha zamani cha umeme kisichopendwa ambacho unayo kwenye karakana yako au basement, na kugeuza kuwa ala ya kisasa ya muziki. Hatutakaa sana juu ya maelezo ya chombo fulani ulichonacho, nyingine t
Kiungo cha Steam kwenye Raspberry yako Pi: Hatua 4
Kiungo cha Steam kwenye Raspberry yako Pi: Kiungo cha Steam ni suluhisho la kupanua maktaba yako ya michezo ya Steam kwenye chumba chochote cha nyumba kupitia mtandao wako wa nyumbani. Unaweza kugeuza Raspberry yako kuwa Kiungo cha Mvuke
Kiungo cha OpenManipulator: Hatua 20 (na Picha)
Kiungo cha OpenManipulator: Waendeshaji wa Robot wameundwa kwa aina nyingi za muundo. OpenManipulator ina muundo rahisi zaidi wa uhusiano, lakini muundo mwingine unaweza kuwa muhimu kwa majukumu fulani, kwa hivyo tunatoa wafanyabiashara walikuwa na muundo tofauti kama OpenManipulat
Kiungo rahisi cha Kiungo cha Muziki: Hatua 5 (na Picha)
Kitufe cha Muziki cha Kitufe Rahisi: Mradi huu unabadilisha Kitufe Rahisi cha Dola 5 na kibodi cha bei ghali cha USB ili ziweze kutumika kama kifaa cha kuingiza kwa maonyesho ya muziki wa moja kwa moja (au kitu kingine chochote kinachohitaji kitufe au kitovu). Inapunguza vifungo vya bei rahisi kuunda