Სარჩევი:
- ნაბიჯი 1: შეკრება
- ნაბიჯი 2: შეკრება - მაგიდა
- ნაბიჯი 3: TFT_eSPI ბიბლიოთეკა
- ნაბიჯი 4: ESP32_Check_Internet_Connection.ino
- ნაბიჯი 5: ჩამოტვირთეთ ფაილები
ვიდეო: რა მოხდება, თუ თქვენი ბმული იშლება?: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ამ ვიდეოში ჩვენ შევქმნით ბმულის ვარდნის სენსორს ESP32 და SIM800. ეს ნიშნავს, რომ ამ პროექტის საშუალებით ჩვენ შეგვიძლია შევამოწმოთ ინტერნეტთან კავშირი, ხოლო კავშირის გაწყვეტის შემთხვევაში დარეკეთ ტელეფონის ნომერზე, რომ შეატყობინოთ, რომ ქსელს პრობლემები აქვს.
ეს არის ერთ -ერთი მრავალი გზა ამ ტიპის მონიტორინგის შესასრულებლად. მიუხედავად იმისა, რომ ეს მარტივია, ის საშუალებას გაძლევთ შეამოწმოთ სხვადასხვა მოწყობილობები, რომლებიც შეიძლება არსებობდეს თქვენს CPD– ში. მისი შემოწმების ძალა გაცილებით დიდი ხდება ESP32– ის გამოყენებისას. მიუხედავად იმისა, რომ მე ვიყენებ WiFi- ს ამ მაგალითში, თუ გსურთ, შეგიძლიათ გამოიყენოთ სადენიანი ინტერნეტი.
ნაბიჯი 1: შეკრება
ნაბიჯი 2: შეკრება - მაგიდა
ნაბიჯი 3: TFT_eSPI ბიბლიოთეკა
Arduino IDE– ში გადადით Sketch-> Include
ბიბლიოთეკა-> ბიბლიოთეკების მართვა…
დააინსტალირეთ TFT_eSPI
გადადით ბიბლიოთეკის საქაღალდეში და შეცვალეთ User_Setup.h ფაილის სტრიქონები, რათა დატოვოთ ის, როგორც ნაჩვენებია სურათზე.
ნაბიჯი 4: ESP32_Check_Internet_Connection.ino
მოიცავს და განსაზღვრავს
#განსაზღვრეთ TINY_GSM_MODEM_SIM800#მოიცავს
#ჩართეთ
#ჩართეთ
#ჩართეთ
// 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 konsiderrar como desconectado #განსაზღვრეთ MAX_DISCONNECTED_TIME 10000 // 10 თებერვალი // დროთა განმავლობაში გამოიყენეთ ეს მითითებები #განსაზღვრეთ MAX_CALL_TIME_INTERVAL 1800000 // 30 წთ // გამოყენება სერიული 1 para or módulo gsm HardwareSerial SerialGSM (TinyGsm მოდემი GSM (SerialGSM); // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a tltima ligação. Colocamos como -MAX_CALL_TIME_INTERVAL imigiatamente // იმდენად, რამდენადაც ეს იქნება უწინ 32, ბოლო დროს დარეკილი ტელეფონი = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h და მაკარონი ბიბლიოთეკაში TFT_eSPI ჩვენება = TFT_eSPI ();
Აწყობა
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura ან ჩვენების setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será შესრულება "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (არა caso não), 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á ekzada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executiveada "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á exeada 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 o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (ყალბი, ყალბი); // 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 ("GSM დაყენება"); // O Módulo GSM არის GPIOs 4 e 2 SerialGSM. დასაწყისი (9600, SERIAL_8N1, 4, 2, false); დაგვიანება (1000); // გადატვირთეთ თუ (! ModemGSM.restart ()) {ESP.restart (); დაბრუნების; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM ქსელის შეცდომა"); დაგვიანება (3000); ESP.restart (); დაბრუნების; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// მანდა conectar connectWiFi (); } // Delay de 1s da tarefa. É feita em ტკიპები. შემსრულებლებისთვის ჩვენ უნდა გავყოთ მუდმივი პორტი TICK_PERIOD_MS TickType_t ამოცანა გადადება = 1000 / პორტი TICK_PERIOD_MS; vTaskDelay (taskDelay); }}
დაკავშირება Wi -Fi
void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("დაკავშირება"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); დაგვიანება (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("დაკავშირებულია"); }
შეამოწმეთ ინტერნეტი
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em ტკიპები. შემსრულებლებისთვის ჩვენ უნდა გავყოთ მუდმივი პორტი TICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // განაცხადის გადადება vTaskDelay (taskDelay); }}
აქვს ინტერნეტი
bool hasInternet () {WiFiClient კლიენტი; // 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 დაკავშირებულია = client.connect (ადრ, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado დაბრუნება დაკავშირებული; }
მარყუჟი
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("გათიშული"); // გთხოვთ შეცვალოთ თქვენი ტელეფონის განსაზღვრება თუ (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone definido callPhone (); }} სხვა {// Mostra no display que está conectado showDisplay ("დაკავშირებულია"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
არის გათიშული ForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a tltima conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo desde a tltima ligacão para or telefone for myior que que definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
ტელეფონზე დარეკვა
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 (); } else {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("ზარის ტელეფონი ვერ მოხერხდა"); } // Termina a ligação modemGSM.callHangup (); }
ჩვენება ჩვენება
void showDisplay (სიმებიანი შეტყობინება) {// Mostra a mensagem na primira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (შეტყობინება + ""); }
ნაბიჯი 5: ჩამოტვირთეთ ფაილები
ინო
გირჩევთ:
კომპაქტური ამინდის სენსორი GPRS (SIM ბარათი) მონაცემთა ბმული: 4 ნაბიჯი
კომპაქტური ამინდის სენსორი GPRS (SIM ბარათი) მონაცემთა ბმული: პროექტის შეჯამება ეს არის ბატარეაზე მომუშავე ამინდის სენსორი, რომელიც ემყარება BME280 ტემპერატურის/წნევის/ტენიანობის სენსორს და ATMega328P MCU. ის მუშაობს ორ 3.6 V ლითიუმ -თიონილის AA ბატარეაზე. მას აქვს ძალიან დაბალი ძილის მოხმარება 6 μA. ის აგზავნის
ორთქლის ბმული თქვენს ჟოლოს პიზე: 4 ნაბიჯი
ორთქლის ბმული თქვენს ჟოლოს პიზე: ორთქლის ბმული არის გამოსავალი თქვენი ორთქლის თამაშების ბიბლიოთეკის გაფართოებისთვის სახლის ნებისმიერ ოთახში თქვენი სახლის ქსელის საშუალებით. შეგიძლიათ თქვენი Raspberry Pi გადააქციოთ ორთქლის ბმულად
Yaesu FT-100 PC ბმული ინტერფეისი ციფრული რეჟიმებისთვის: 3 ნაბიჯი
Yaesu FT-100 PC Link ინტერფეისი ციფრული რეჟიმებისთვის: აქ წარმოგიდგენთ მითითებებს Yaesu FT-100– ისთვის PC ბმულის ინტერფეისის შესაქმნელად. ეს ინტერფეისი გაძლევთ საშუალებას გადასცეს და მიიღოთ აუდიო სიგნალები ხმის ბარათიდან, რათა გამოიყენოთ HAM ციფრული რეჟიმები (FT8, PSK31 და სხვ.). დამატებითი ინფორმაცია ხელმისაწვდომია
OpenManipulator ბმული: 20 ნაბიჯი (სურათებით)
OpenManipulator Link: რობოტი მანიპულატორები შემუშავებულია მრავალი სახის სტრუქტურისთვის. OpenManipulator– ს აქვს ყველაზე მარტივი სერიული კავშირის სტრუქტურა, მაგრამ სხვა სტრუქტურა შეიძლება სასარგებლო იყოს კონკრეტული ამოცანებისთვის, ამიტომ ჩვენ ვაძლევთ მანიპულატორებს, რომლებსაც ჰქონდათ სხვადასხვა სტრუქტურა, როგორც OpenManipulat
გამტარ წებო და გამტარი ძაფი: გააკეთეთ LED ეკრანი და ქსოვილის წრე, რომელიც იშლება: 7 ნაბიჯი (სურათებით)
გამტარ წებო და გამტარი ძაფი: გააკეთეთ LED ეკრანი და ქსოვილის წრე, რომელიც იშლება: გააკეთეთ საკუთარი გამტარი ქსოვილები, ძაფი, წებო და ლენტი და გამოიყენეთ ისინი პოტენომეტრების, რეზისტორების, კონცენტრატორების, LED მონიტორებისა და სქემების დასამზადებლად. გამტარ წებოს გამოყენება და გამტარი ძაფი შეგიძლიათ გააკეთოთ LED მონიტორები და სქემები ნებისმიერ მოქნილ ქსოვილზე