Obsah:
- Krok 1: Tip na zapamätanie
- Krok 2: MCP23016
- Krok 3: Adresa
- Krok 4: Príkazy
- Krok 5: Kategórie
- Krok 6: Štruktúra pre komunikáciu
- Krok 7: Program
- Krok 8: MCP23016
- Krok 9: ESP-01
- Krok 10: Montáž ESP01
- Krok 11: Knižnice a premenné
- Krok 12: Nastavenie
- Krok 13: Slučka
- Krok 14: ParserData
- Krok 15: ConfigurePort
- Krok 16: WritePinData
- Krok 17: WriteBlockData & SetupWiFi
- Krok 18: Aplikácia
- Krok 19: Stiahnutie
Video: Nízkonákladová automatizácia s ESP01: 19 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Dnes budeme diskutovať o automatizácii pomocou ESP01 so 16 relé. Jedná sa o super lacný dizajnový model, kde môžete znásobiť moduly a získať až 128 relé, pretože do tohto mikrokontroléra je možné vložiť až osem expandérov portov.
V našom obvode budete mať aplikáciu v smartfóne, ktorá komunikuje s ESP01. Bude mať expandér so 16 portami, každý pripojený k relé. Máme tiež nastaviteľný zdroj 3v3. Budeme preto ovládať 16-kanálový reléový modul pomocou ESP01 prostredníctvom aplikácie pre Android, ktorú vám dávam k dispozícii.
Krok 1: Tip na zapamätanie
Je dôležité poznamenať, priatelia, že som použil tento čip v obvode s názvom MCP23016. Je tiež dôležité, aby ste si pozreli video EXPANZOR IOS PRE ESP32, ESP8266 A ARDUINO, v ktorom zariadenie otestujem a ukážem, že funguje pre tieto tri typy dosiek.
Krok 2: MCP23016
Tu máme obrázok MCP23016, čo je čip s 28 kolíkmi. Je dôležité spomenúť, že existuje aj model MCP23017, ktorý je bežnejší a nepotrebuje odpor a kondenzátor, pretože má vnútorné hodiny. Je to jednoduchšie, ale jeho pripnutie sa líši od toho, čo uvádzame v tomto videu.
Krok 3: Adresa
Na definovanie adresy MCP23016 používame piny A0, A1 a A2. Na zmenu adresy ich môžete nechať na HIGH alebo LOW.
Adresa bude mať nasledujúci tvar:
MCP_Address = 20 + (A2 A1 A0)
Ak A2 A1 A0 môže nadobúdať VYSOKÉ / NÍZKE hodnoty, tvorí binárne číslo od 0 do 7.
Napríklad:
A2> GND, A1> GND, A0> GND (znamená 000, potom 20 + 0 = 20)
Alebo inak, A2> VYSOKÝ, A1> GND, A0> VYSOKÝ (znamená 101, potom 20 + 5 = 25)
Krok 4: Príkazy
Tu je tabuľka s príkazmi na komunikáciu:
Krok 5: Kategórie
GP0 / GP1 - Registre dátových portov
Existujú dva registre, ktoré poskytujú prístup k dvom portom GPIO.
Čítanie registra poskytuje stav pinov na tomto porte.
Bit = 1> VYSOKÝ Bit = 0> NÍZKY
IODIR0 / IODIR1
Režim pinov ovládajú dva registre. (Vstup alebo výstup)
Bit = 1> VSTUP Bit = 0> VÝSTUP
Krok 6: Štruktúra pre komunikáciu
Tu hovoríme o adrese čipu a prístupe k príkazu a údajom, čo je druh protokolu, ktorý je potrebné vykonať na odosielanie informácií.
Krok 7: Program
Urobíme program, ktorý pozostáva z komunikácie ESP01 s MCP23016, aby bolo možné použiť viac GPIO. Týchto 16 nových GPIO, ktoré budeme mať, bude ovládať 16-kanálový reléový modul.
Príkazy budú odoslané do ESP01 prostredníctvom aplikácie pre Android.
Krok 8: MCP23016
Krok 9: ESP-01
Toto je 16-reléová doska.
Krok 10: Montáž ESP01
Krok 11: Knižnice a premenné
Zahrneme knižnice zodpovedné za komunikáciu i2c a za vytvorenie prístupového bodu a webového servera. Definujeme adresu čipu a porty. Nakoniec definujeme premenné na ukladanie hodnôt pinov MCP.
#include // responzel pela comunicação i2c. #include // responzel por criar o accesspoint eo webserver WiFiServer server (80); // webserver para acessarmos através do application // endereco I2C do MCP23016 #define MCPAddress 0x20 // ENDEREORES DE REGIS definovať GP0 0x00 // REGISTRÁCIA DÁTOVÝCH ÚDAJOV 0 #definovať GP1 0x01 // REGISTRÁCIA DÁTOVÝCH ÚDAJOV 1 #definovať IODIR0 0x06 // REGISTRÁCIA I/O SMERU 0 #definovať IODIR1 0x07 // I/O REGISTRÁCIA 1 // strážca os valores dos pinos do MCP uint8_t currentValueGP0 = 0; uint8_t currentValueGP1 = 0;
Krok 12: Nastavenie
Inicializujeme ESP01 a nakonfigurujeme porty. Tiež nakonfigurujeme prístupový bod a inicializujeme server.
void setup () {Serial.begin (9600); oneskorenie (1000); Wire.begin (0, 2); // ESP01 Wire.setClock (200000); configurePort (IODIR0, VÝSTUP); configurePort (IODIR1, VÝSTUP); writeBlockData (GP0, 0x00); writeBlockData (GP1, 0x00); setupWiFi (); // konfigurácia servera Access Point.begin (); // inicializácia servera}
Krok 13: Slučka
Tu skontrolujem, či boli k serveru pripojení nejakí klienti. Čítali sme aj prvý riadok žiadosti. Extrahujeme údaje na manipuláciu, definujeme predvolenú hlavičku odpovede a odošleme túto odpoveď klientovi.
void loop () {WiFiClient client = server.available (); // Overenie počtu klientov, ktorí pripojili if (! Client) {return; } Reťazec req = client.readStringUntil ('\ r'); // Faz a leitura da primeira linha da requisição/ */MR é o hlavička prefixo para para saber a a requisição é a esperada para os oss */if (req.indexOf ("/MR")! = -1) {parserData (požiadavka); // čiastočná požiadavka na dodatočnú manipuláciu} else {Serial.println ("neplatná žiadosť"); návrat; } client.flush (); Reťazec s = "HTTP/1,1 200 OK / r / n"; // cabeçalho padrão de resposta client.print (s); // záväzné alebo oneskorené oneskorenie klienta (1); } // koncová slučka
Krok 14: ParserData
Z požiadavky hľadáme údaje súvisiace s relé. Údaje potom odošleme na MCP23016.
// a časť požadovaných odkazov na referencie a opakované vyhýbanie sa parserData (reťazcové údaje) {uint8_t relay = -1; uint8_t gp = -1; hodnota uint8_t = -1; int index = data.indexOf ("/MR"); // busca o index do prefixo MR if (data [index+5] == '/') ///MR01/1, onde 0 = GP; 1 = SPOJENIE; 1 = ESTADO (zapnuté/vypnuté) {gp = údaje [index+3]-'0'; relé = údaje [index+4]-'0'; hodnota = údaje [index+6]-'0'; // envia os dados para o MCP23016 // [relay-1] porque o MCP vai de 0-7 os pinos writePinData (relay-1, value, gp); }}
Krok 15: ConfigurePort
Nastavili sme režim GPIO pin (GP0 alebo GP1).
// konfigurácia alebo režim GPIO (GP0 alebo GP1) // kombinované parametre: // port: GP0 alebo GP1 // VSTUP pre všetky porty ako porty pre GP trabalharem como entrada // VÝSTUP pre všetky typy portov ako pre GP trabalharem como saida // vlastná hodnota 0-255 indikátorov alebo režimov portov (1 = VSTUP, 0 = VÝSTUP) // ex: 0x01 alebo B00000001 ou 1: indikácia ukončenia platnosti GPX.0 trabalhará como entrada, o restante como saida void configurePort (port uint8_t, vlastný uint8_t) {if (custom == INPUT) {writeBlockData (port, 0xFF); } else if (custom == VÝSTUP) {writeBlockData (port, 0x00); } else {writeBlockData (port, vlastny); }}
Krok 16: WritePinData
V tejto časti kódu zmeníme stav požadovaného pinu a odošleme údaje do MCP.
// muda o estado de um pino desejado, passando como parameter: // pin = pino desejado; hodnota = 0/1 (zapnuté/vypnuté); gp = 0/1 (PORT do MCP) neplatné writePinData (int pin, int value, uint8_t gp) {uint8_t statusGP = 0; if (gp == GP0) statusGP = currentValueGP0; else statusGP = currentValueGP1; if (hodnota == 0) {statusGP & = ~ (B00000001 << (pin)); // muda o pino para LOW} else if (hodnota == 1) {statusGP | = (B00000001 << (pin)); // muda o pino para HIGH} if (gp == GP0) currentValueGP0 = statusGP; else currentValueGP1 = statusGP; // envia alebo dda o para o MCP writeBlockData (gp, statusGP); oneskorenie (10); }
Krok 17: WriteBlockData & SetupWiFi
Tu odosielame údaje na MCP23016 cez zbernicu i2c. Ďalej nakonfigurujeme vlastnosti tak, aby povolili prístupový bod. Nakoniec sme nakonfigurovali WiFi pre režim prístupového bodu a vytvorili AP s SSID a HESLOM.
// všetky údaje o MCP23016 através do barramento i2c // reg: REGISTRADOR // data: dados (0-255) void writeBlockData (uint8_t port, uint8_t data) {Wire.beginTransmission (MCPAddress); Wire.write (port); Wire.write (údaje); Wire.endTransmission (); oneskorenie (10); }
// konfigurácia ako proprietárny program pre prístupový bod Vyhnite sa setupWiFi () {WiFi.mode (WIFI_AP); WiFi.softAP („ESP01_RELAY“, „12345678“); }
Krok 18: Aplikácia
Na vytvorenie aplikácie používame MIT App Inventor 2, ku ktorému sa dostanete prostredníctvom odkazu:
ai2.appinventor.mit.edu/
Aplikácia pozostáva z dvoch obrazoviek, z ktorých každá obsahuje osem párov tlačidiel indikujúcich stav každého relé.
Nasledujú niektoré z použitých programovacích blokov:
DÔLEŽITÉ: Predvolená adresa IP ESP, pretože prístupový bod je 192.168.4.1
1. Keď sa obrazovka inicializuje, uložíme IP do pamäte a zavoláme procedúru na obnovenie stavu tlačidiel (ON / OFF).
2. Zavolajte na druhú obrazovku
1. Po kliknutí na tlačidlo ON jedného z relé vykonáme v tlačidle vizuálne zmeny (zelené bloky). WebViewer1. GoToUrl odošle žiadosť o náš ESP01 prepojením údajov MR01 / 1 s adresou URL.
2. Po kliknutí na tlačidlo VYPNUTIE jedného z relé vykonáme v tlačidle vizuálne zmeny (zelené bloky). WebViewer1. GoToUrl odošle požiadavku na náš ESP01 prepojením údajov MR01 / 0 s adresou URL.
Tento postup sa používa na obnovenie stavu tlačidiel (relé), pretože pri zmene obrazovky sa vráti do vzoru vytvárania.
Žltý blok sa opakuje pre každý z párov tlačidiel.
Krok 19: Stiahnutie
Tu sú súbory projektu na stiahnutie:
Súbor projektu MIT App Inventor 2 - stiahnutie
Aplikácia APK na inštaláciu na Android - stiahnutie
Stiahnite si ostatné súbory:
INO
Odporúča:
DIY nízkonákladová domáca automatizácia pomocou Esp8266: 6 krokov
DIY nízkonákladová automatizácia domácnosti s použitím Esp8266: Ahoj všetci, dnes vám v tomto návode ukážem, ako som pripravil svoju vlastnú domácu automatizáciu ako krok k inteligentnej domácnosti pomocou modulu ESP 8266, všeobecne známeho ako nodemcu, takže bez plytvania časom Začnime:)
Hovorová automatizácia -- Zvuk z Arduina -- Hlasom riadená automatizácia -- Modul Bluetooth HC - 05: 9 krokov (s obrázkami)
Hovorová automatizácia || Zvuk z Arduina || Hlasom riadená automatizácia || Modul Bluetooth HC - 05: …………………………. REGISTRUJTE SA na môj kanál YouTube pre ďalšie videá …. …. V tomto videu sme vytvorili Talkative Automation .. Keď odošlete hlasový príkaz cez mobil, zapne domáce zariadenia a odošle spätnú väzbu
Jednoduchá, nízkonákladová, ovládateľná ruka Arduino: 5 krokov
Jednoduchá, nízkonákladová, ovládateľná ruka Arduino: Na celom internete je k dispozícii mnoho drahých 3D tlačených a flexibilných robotických ramien založených na snímačoch. Ako študent však nemám veľký prístup k veciam, ako sú CNC, 3D tlačiarne a elektrické náradie. Mám riešenie, postavíme l
MQmax 0,7 a nízkonákladová WiFi IoT platforma založená na Esp8266 a Arduino Mini Pro: 6 krokov
MQmax 0,7 a nízkonákladová platforma WiFi IoT založená na Esp8266 a Arduino Mini Pro: Dobrý deň, toto je môj druhý pokyn (odteraz prestávam počítať). Vytvoril som to, aby som vytvoril jednoduchú (aspoň pre mňa), lacnú, ľahko vyrobiteľnú a efektívnu platformu pre aplikácie Real IoT, ktoré obsahujú prácu M2M. Táto platforma funguje s esp8266 a
Nízkonákladová biotlačiareň: 13 krokov (s obrázkami)
Nízko nákladová biotlačiareň: Sme výskumným tímom vedeným pod úrovňou kvality v UC Davis. Sme súčasťou skupiny BioInnovation Group, ktorá pôsobí v laboratóriu TEAM Molecular Prototyping and BioInnovation Lab (poradcovia Dr. Marc Facciotti a Andrew Yao, M.S.). Laboratórium spája študentov