Mündəricat:
- Addım 1: Yadda saxlamaq üçün məsləhət
- Addım 2: MCP23016
- Addım 3: Ünvan
- Addım 4: Əmrlər
- Addım 5: Kateqoriyalar
- Addım 6: Ünsiyyət quruluşu
- Addım 7: Proqram
- Addım 8: MCP23016
- Addım 9: ESP-01
- Addım 10: ESP01 -in quraşdırılması
- Addım 11: Kitabxanalar və Dəyişənlər
- Addım 12: Quraşdırma
- Addım 13: Döngə
- Addım 14: ParserData
- Addım 15: Portu konfiqurasiya edin
- Addım 16: WritePinData
- Addım 17: WriteBlockData və SetupWiFi
- Addım 18: Tətbiq
- Addım 19: Yükləyin
Video: ESP01: 19 Addımlı Aşağı Qiymətli Avtomatlaşdırma
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bu gün 16 röle ilə ESP01 istifadə edərək avtomatlaşdırma haqqında danışacağıq. Bu mikrokontrolördə səkkiz port genişləndiricisini yerləşdirmək mümkün olduğu üçün modulları çoxalda və 128 röle əldə edə biləcəyiniz super ucuz dizayn modelidir.
Dövrümüzdə, ESP01 ilə ünsiyyət quran bir smartfonda bir tətbiqiniz olacaq. Hər biri bir röle ilə əlaqəli 16 portu olan bir genişləndiriciyə sahib olacaq. 3v3 tənzimlənən bir mənbəyimiz də var. Buna görə sizə təqdim etdiyim Android proqramı vasitəsilə ESP01 istifadə edərək 16 kanallı bir relay modulunu idarə edəcəyik.
Addım 1: Yadda saxlamaq üçün məsləhət
Dostlarım, bu çipi MCP23016 adlı bir dövrədə istifadə etdiyimi qeyd etmək vacibdir. Cihazı sınadığım və bu üç növ lövhə üçün işlədiyini göstərdiyim ESP32, ESP8266 və ARDUINO İOS İÇİN EXPANSOR videosuna baxmaq da sizin üçün vacibdir.
Addım 2: MCP23016
Burada 28 sancaqlı bir çip olan MCP23016 görüntüsü var. Daxili saatı olduğu üçün daha çox yayılmış və rezistora və kondansatörə ehtiyac duymayan MCP23017 modelinin də olduğunu qeyd etmək vacibdir. Bu, işi asanlaşdırır, lakin onun bağlanması bu videoda göstərdiyimizdən fərqlidir.
Addım 3: Ünvan
MCP23016 ünvanını təyin etmək üçün A0, A1 və A2 sancaqlarından istifadə edirik. Onları ünvan dəyişikliyi üçün YÜKSƏK və ya DÜŞÜK olaraq tərk edə bilərsiniz.
Ünvan aşağıdakı kimi formalaşacaq:
MCP_Address = 20 + (A2 A1 A0)
A2 A1 A0 -un YÜKSƏK / DÜŞÜK dəyərləri götürə biləcəyi yerlərdə, 0 -dan 7 -ə qədər olan ikili ədəd.
Misal üçün:
A2> GND, A1> GND, A0> GND (000 deməkdir, sonra 20 + 0 = 20)
Yoxsa başqa cür, A2> YÜKSEK, A1> GND, A0> Yüksək (101 deməkdir, sonra 20 + 5 = 25)
Addım 4: Əmrlər
İşdə ünsiyyət əmrləri olan bir cədvəl:
Addım 5: Kateqoriyalar
GP0 / GP1 - Məlumat Portu Qeydləri
İki GPIO limanına çıxışı təmin edən iki qeyd var.
Qeyd oxunuşu həmin limandakı sancaqların vəziyyətini təmin edir.
Bit = 1> HIGH Bit = 0> LOW
IODIR0 / IODIR1
Pin rejimini idarə edən iki qeyd var. (Giriş və ya Çıxış)
Bit = 1> GİRİŞ Bit = 0> Çıxış
Addım 6: Ünsiyyət quruluşu
Burada çipin ünvanı haqqında danışırıq və məlumat göndərmək üçün edilməsi lazım olan bir növ protokol olan əmr və məlumatlara daxil oluruq.
Addım 7: Proqram
Daha çox GPIO istifadə etmək üçün ESP01 -in MCP23016 ilə əlaqə qurmasından ibarət bir proqram edəcəyik. Əldə edəcəyimiz bu 16 yeni GPIO, 16 kanallı bir relay modulunu idarə edəcək.
Əmrlər Android tətbiqi ilə ESP01 -ə göndəriləcək.
Addım 8: MCP23016
Addım 9: ESP-01
Bu 16 relay lövhəsidir.
Addım 10: ESP01 -in quraşdırılması
Addım 11: Kitabxanalar və Dəyişənlər
İ2c ünsiyyətindən, Access Point və web serverinin yaradılmasından məsul olan kitabxanaları daxil edəcəyik. Çipin və limanların ünvanını təyin edirik. Nəhayət, MCP pinlərinin dəyərlərini saxlamaq üçün dəyişənləri təyin edirik.
#include // responsável pela comunicação i2c. #include // cavablar daxil olmaq üçün WiFiServer serveri (80); // web server serverləri üçün heç bir fayda yoxdur // endereço I2C do MCP23016 #MCPAddress təyin edin 0x20 TƏDBİR EDİN #ENDEREÇ. GP0 0x00 təyin edin // DATA PORT QEYDİYYATI 0 #GP1 təyin edin 0x01 // DATA PORT QEYDİYYATI 1 #IODIR0 0x06 təyin edin // I/O YÖN QEYDİYYATÇI 0 #təyin IODIR1 0x07 // I/O YÖNÜ QEYDİYYATÇI 1 // guarda os valores dos MCP uint8_t currentValueGP0 = 0 edin; uint8_t currentValueGP1 = 0;
Addım 12: Quraşdırma
ESP01 -i işə salırıq və portları konfiqurasiya edirik. Giriş nöqtəsini konfiqurasiya edirik və serveri işə salırıq.
void setup () {Serial.begin (9600); gecikmə (1000); Wire.begin (0, 2); // ESP01 Wire.setClock (200000); configurePort (IODIR0, Çıxış); configurePort (IODIR1, Çıxış); writeBlockData (GP0, 0x00); writeBlockData (GP1, 0x00); setupWiFi (); // Access Point server.begin () konfiqurasiya edin; // serverə daxil olun}
Addım 13: Döngə
Burada hər hansı bir müştərinin serverə bağlı olub olmadığını yoxlayıram. İlk istək sətirini də oxuduq. Manipulyasiya üçün məlumatları çıxarırıq, standart cavab başlığını təyin edirik və bu cavabı müştəriyə göndəririk.
void loop () {WiFiClient client = server.available (); // Verifica se um cliente foi conectado if (! Client) {return; } String req = client.readStringUntil ('\ r'); // Başlanğıcda və/və/və ya başlıqdakı prefiks üçün bir ön sözün tələbi */if (req.indexOf) ("/MR")! = -1) {parserData (req); // başqa bir şeyə ehtiyac yoxdur} başqa {Serial.println ("etibarsız istək"); qayıtmaq; } client.flush (); String s = "HTTP/1.1 200 OK / r / n"; // cabeçalho padrão de resposta client.print (s); // müştəri gecikməsi (1); } // son döngə
Addım 14: ParserData
İstəkdən, rölelerle əlaqəli məlumatları axtarırıq. Sonra məlumatları MCP23016 -a göndəririk.
// bir hissə ayrılıqda ayrılıqda parserData (String data) {uint8_t relay = -1; uint8_t gp = -1; uint8_t dəyəri = -1; int indeksi = data.indexOf ("/MR"); // indeks MR prefiksindədirsə (data [index+5] == '/') ///MR01/1, on 0 = GP; 1 = RELE; 1 = ESTADO (açma/söndürmə) {gp = data [index+3]-'0'; röle = məlumat [indeks+4]-'0'; dəyər = məlumatlar [indeks+6]-'0'; // MCP23016 üçün envia os dados // [relay-1] 0 və ya 7-7 pinPinData (röle-1, dəyər, gp); }}
Addım 15: Portu konfiqurasiya edin
GPIO pin rejimini təyin edirik (GP0 və ya GP1).
// GPIO (GP0 və ya GP1) konfiqurasiya parametrləri: // keçid: GP0 və ya GP1 // GİRİŞ, GP -lərin daxil olduğu kimi, GP -lərin daxil olduğu kimi, Çıxışlar da GP -lərin çıxışları ilə əlaqədardır. // 0-255 göstərişləri var (1 = GİRİŞ, 0 = ÇIXIŞ) // məsələn: 0x01 ya da B00000001 ya da 1: göstərici və ya GPX.0 trabalhará como entrada, or restante como saoid void configurePort (uint8_t port, uint8_t custom) {if (custom == INPUT) {writeBlockData (port, 0xFF); } başqa if (xüsusi == ÇIXIŞ) {writeBlockData (port, 0x00); } başqa {writeBlockData (port, xüsusi); }}
Addım 16: WritePinData
Kodun bu hissəsində, istədiyiniz bir pin vəziyyətini dəyişdiririk və məlumatları MCP -yə göndəririk.
// çox güman ki, parametrlər: // pin = pino desejado; dəyər = 0/1 (açma/söndürmə); gp = 0/1 (PORT do MCP) yazmaPinData boşluğu (int pin, int dəyəri, uint8_t gp) {uint8_t statusGP = 0; əgər (gp == GP0) statusGP = currentValueGP0; başqa statusGP = cariValueGP1; if (dəyər == 0) {statusGP & = ~ (B00000001 << (pin)); // LOW} üçün aşağı} başqa if (dəyər == 1) {statusGP | = (B00000001 << (pin)); // YÜKSEK} üçün}} (əgər gp == GP0) currentValueGP0 = statusGP; başqa currentValueGP1 = statusGP; // MCP yazmaq üçün blockBataData (gp, statusGP); gecikmə (10); }
Addım 17: WriteBlockData və SetupWiFi
Burada məlumatları i2c avtobusu ilə MCP23016 -a göndəririk. Sonra, Giriş nöqtəsini aktiv etmək üçün xüsusiyyətləri konfiqurasiya edirik. Nəhayət, WiFi -ni Giriş nöqtəsi rejimi üçün konfiqurasiya etdik və SSID və PASSWORD ilə bir AP yaratdıq.
// MCP23016 através to barramento i2c // reg: REGISTRADOR // data: dados (0-255) writeBlockData (uint8_t port, uint8_t data) {Wire.beginTransmission (MCPAddress); Wire.write (liman); Wire.write (məlumatlar); Wire.endTransmission (); gecikmə (10); }
// ACCESS POINT üçün lazım olan konfiqurasiyaTwoid setupWiFi () {WiFi.mode (WIFI_AP); WiFi.softAP ("ESP01_RELAY", "12345678"); }
Addım 18: Tətbiq
Tətbiq yaratmaq üçün MIT App Inventor 2 -dən istifadə edirik, bu linkə daxil olmaq mümkündür:
ai2.appinventor.mit.edu/
Tətbiq, hər rölin vəziyyətini göstərən, hər birində səkkiz cüt düymə olan iki ekrandan ibarətdir.
İstifadə olunan proqramlaşdırma bloklarından bəziləri bunlardır:
Vacibdir: Giriş nöqtəsi 192.168.4.1 olduğu üçün ESP -nin standart IP ünvanıdır
1. Ekran işə salındıqda, IP -ni yaddaşda saxlayırıq və düymələrin vəziyyətini bərpa etmək üçün proseduru çağırırıq (ON / OFF).
2. Digər ekrana zəng edin
1. Rölelərdən birinin ON düyməsini sıxarkən düymədə vizual dəyişikliklər edəcəyik (yaşıl bloklar). WebViewer1. GoToUrl, MR01 / 1 məlumatlarını URL -də əlaqələndirməklə ESP01 üçün bir sorğu edir.
2. Rölelərdən birinin OFF düyməsini sıxarkən düymədə vizual dəyişikliklər edəcəyik (yaşıl bloklar). WebViewer1. GoToUrl, URL -dəki MR01 / 0 məlumatlarını əlaqələndirməklə ESP01 -ə müraciət edir.
Bu prosedur düymələrin (rölelərin) vəziyyətini bərpa etmək üçün istifadə olunur, çünki ekranı dəyişdirərkən yaradılış nümunəsinə qayıdır.
Sarı blok düymə cütlərinin hər biri üçün təkrarlanır.
Addım 19: Yükləyin
Yükləmək üçün layihə faylları:
MIT App Inventor 2 layihə faylı - yükləyin
Android -də quraşdırmaq üçün APK tətbiqi - yükləyin
Digər faylları yükləyin:
MƏN YOX
Tövsiyə:
Aşağı Qiymətli Reometr: 11 Addım (Şəkillərlə birlikdə)
Aşağı Qiymətli Reometr: Bu təlimatın məqsədi, mayenin özlülüyünü eksperimental olaraq tapmaq üçün aşağı qiymətli bir reometr yaratmaqdır. Bu layihə Brown Universitetinin Mexaniki Sistemlərin Titrəməsi sinifində oxuyan bir tələbə və magistr tələbəsi tərəfindən yaradılmışdır
Aşağı Qiymətli EKQ Cihazı Necə Qurulur: 26 Addım
Aşağı Qiymətli EKQ Cihazı Necə Qurulur: Hamıya Salam! Adım Mariano və mən biotibbi mühəndisiyəm. Bir neçə həftə sonu Bluetooth vasitəsilə bir Android cihazına (smartfon və ya tablet) qoşulmuş Arduino lövhəsinə əsaslanan aşağı qiymətli EKQ cihazının prototipini hazırlamaq və həyata keçirmək üçün keçirdim. Mən istərdim ki
Arduino, Esp8266 və ya Esp32 üçün aşağı qiymətli E32 (sx1278/sx1276) cihazı ilə LoRa 3Km -dən 8Km -ə qədər Simsiz Əlaqə: 15 Addım
Arduino, Esp8266 və ya Esp32 üçün E32 (sx1278/sx1276) Cihazı ilə LoRa 3Km -dən 8Km -ə qədər Simsiz Əlaqə: Çox güclü, sadə və ucuz bir cihaz olan LoRa cihazının Semtech seriyasına əsaslanan EBYTE E32 -ni idarə etmək üçün bir kitabxana yaradıram. Buradakı 3Km versiyası, Buradakı 8Km versiyası 3000m -dən 8000m -ə qədər məsafədə işləyə bilərlər və bir çox xüsusiyyətlərə malikdirlər
Danışıqlı Avtomatlaşdırma -- Arduinodan Audio -- Səslə idarə olunan avtomatlaşdırma -- HC - 05 Bluetooth Modulu: 9 Addım (Şəkillərlə birlikdə)
Danışıqlı Avtomatlaşdırma || Arduinodan Audio || Səslə idarə olunan avtomatlaşdırma || HC - 05 Bluetooth Modulu: …………………………. Daha çox video üçün YouTube kanalıma ABUNƏ OLUN …. …. Bu videoda Danışıqlı Avtomatlaşdırma qurduq .. Mobil vasitəsi ilə səsli komanda göndərdiyiniz zaman ev cihazlarını işə salacaq və geribildirim göndərəcək
ESP-01: 8 Addımlı Ev Avtomatlaşdırma WiFi İşıq Açarı
ESP-01 ilə Ev Avtomatlaşdırma WiFi İşıq Açarı: Bu sarsılmaz ilə, ilk wifi işıq açarınızı hazırlamaq üçün addımlar atacağam, sonra sensorlar edəcəyik və nəticədə Home Assistant quraşdırma və konfiqurasiyalarına gedəcəyik