Мазмұны:
- 1 -қадам: есте сақтауға кеңес
- 2 -қадам: MCP23016
- 3 -қадам: мекен -жай
- 4 -қадам: Командалар
- 5 -қадам: Санаттар
- 6 -қадам: Байланыс құрылымы
- 7 -қадам: Бағдарлама
- 8 -қадам: MCP23016
- 9-қадам: ESP-01
- 10 -қадам: ESP01 орнату
- 11 -қадам: Кітапханалар мен айнымалылар
- 12 -қадам: Орнату
- 13 -қадам: ілмек
- 14 -қадам: ParserData
- 15 -қадам: Портты конфигурациялаңыз
- 16 -қадам: WritePinData
- 17 -қадам: WriteBlockData & SetupWiFi
- 18 -қадам: қосымша
- 19 -қадам: жүктеу
Бейне: ESP01: 19 қадамдары бар арзан автоматика
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бүгін біз ESP01 көмегімен 16 релесі бар автоматтандыруды талқылаймыз. Бұл өте арзан дизайн моделі, онда сіз модульдерді көбейтуге және 128 релеге дейін алуға болады, себебі бұл микроконтроллерге сегізге дейін порт кеңейтушілерін қоюға болады.
Біздің тізбекте сізде смартфонда ESP01 байланысатын қосымша болады. Оның әрқайсысы реле қосылған 16 порты бар кеңейткіш болады. Бізде 3v3 реттелетін көзі де бар. Сондықтан біз сіздерге ұсынатын Android қосымшасы арқылы ESP01 көмегімен 16 арналы реле модулін басқарамыз.
1 -қадам: есте сақтауға кеңес
Менің достарым, мен бұл чипті MCP23016 деп аталатын тізбекте қолданғанымды атап өту маңызды. IOS -тің ESP32, ESP8266 және ARDUINO үшін EXPANSOR бейнесін көру маңызды, онда мен құрылғыны тексеріп, оның осы үш түрдегі тақталар үшін жұмыс істейтінін көрсетемін.
2 -қадам: MCP23016
Мұнда бізде 28 түйреуіші бар чип болатын MCP23016 бейнесі бар. Айта кету керек, MCP23017 моделі жиі кездеседі, ол резистор мен конденсаторды қажет етпейді, себебі оның ішкі сағаты бар. Бұл оны жеңілдетеді, бірақ оның бекітілуі бұл бейнеде көрсетілгеннен өзгеше.
3 -қадам: мекен -жай
MCP23016 адресін анықтау үшін біз A0, A1 және A2 түйреуіштерін қолданамыз. Мекенжайдың өзгеруі үшін оларды ЖОҒАРЫ немесе ТӨМЕН күйінде қалдыруға болады.
Мекенжай келесі түрде құрылады:
MCP_Address = 20 + (A2 A1 A0)
Бұл жерде A2 A1 A0 HIGH / LOW мәндерін қабылдай алады, екілік сан 0 -ден 7 -ге дейін болады.
Мысалға:
A2> GND, A1> GND, A0> GND (000 дегенді білдіреді, содан кейін 20 + 0 = 20)
Немесе басқаша, A2> HIGH, A1> GND, A0> HIGH (101 дегенді білдіреді, содан кейін 20 + 5 = 25)
4 -қадам: Командалар
Міне, байланыс командалары бар кесте:
5 -қадам: Санаттар
GP0 / GP1 - деректер портының регистрлері
Екі GPIO портына кіруді қамтамасыз ететін екі регистр бар.
Тізілімнің оқылуы сол порттағы түйреуіштердің күйін қамтамасыз етеді.
Bit = 1> HIGH Bit = 0> LOW
IODIR0 / IODIR1
Пин режимін басқаратын екі регистр бар. (Кіріс немесе шығыс)
Bit = 1> INPUT Bit = 0> OUTPUT
6 -қадам: Байланыс құрылымы
Бұл жерде біз чиптің мекен -жайы туралы айтамыз және ақпаратты жіберу үшін жасалуы керек протоколдың түрі болып табылатын пәрмен мен деректерге қол жеткіземіз.
7 -қадам: Бағдарлама
Біз GPIO -ді қолдану үшін ESP01 -ді MCP23016 -мен байланыстырудан тұратын бағдарламаны жасаймыз. Бізде болатын 16 жаңа GPIO 16 арналы реле модулін басқарады.
Командалар Android қосымшасы арқылы ESP01 -ге жіберіледі.
8 -қадам: MCP23016
9-қадам: ESP-01
Бұл 16 релелік тақта.
10 -қадам: ESP01 орнату
11 -қадам: Кітапханалар мен айнымалылар
Бізде i2c байланысына, кіру нүктесі мен веб -серверді құруға жауапты кітапханалар қосылады. Біз чиптің және порттардың мекен -жайын анықтаймыз. Соңында біз MCP түйреуіштерінің мәндерін сақтау үшін айнымалыларды анықтаймыз.
#include // Жауаптар комуникасы i2c. #қосу // кіру нүктесі WiFiServer сервері (80); // веб -сервері адрессивті байланыстар // endereço I2C - MCP23016 #MCPAddress 0x20 шешті GP0 0x00 анықтаңыз // DATA PORT REGISTER 0 #GP1 0x01 анықтаңыз // DATA PORT REGISTER 1 #deodine IODIR0 0x06 // I/O DIRECTION REGISTER 0 #deine IODIR1 0x07 // I/O DIRECTION REGISTER 1 анықтаңыз. mCP uint8_t currentValueGP0 = 0; uint8_t currentValueGP1 = 0;
12 -қадам: Орнату
Біз ESP01 инициализациялаймыз және порттарды конфигурациялаймыз. Біз сонымен қатар кіру нүктесін конфигурациялаймыз және серверді инициализациялаймыз.
void setup () {Serial.begin (9600); кешіктіру (1000); Wire.begin (0, 2); // ESP01 Wire.setClock (200000); configurePort (IODIR0, OUTPUT); configurePort (IODIR1, OUTPUT); writeBlockData (GP0, 0x00); writeBlockData (GP1, 0x00); setupWiFi (); // Access Point серверін конфигурациялау.begin (); // серверге кіру}
13 -қадам: ілмек
Мұнда мен кез келген клиент серверге қосылғанын тексеремін. Біз сондай -ақ бірінші сұрау жолын оқимыз. Біз манипуляция үшін деректерді шығарамыз, әдепкі жауап тақырыбын анықтаймыз және бұл жауапты клиентке жібереміз.
void loop () {WiFiClient client = server.available (); // Verifica se um cliente foi conectado if (! Client) {return; } String req = client.readStringUntil ('\ r'); // Тапсырмалар/ */MR - бұл префикске арналған префикс және оның байланысы */if (req.indexOf («/MR»)! = -1) {parserData (req); // a partir da Requisição extrai os dados para manipulação} else {Serial.println («жарамсыз сұраныс»); қайтару; } client.flush (); Жол s = «HTTP/1.1 200 OK / r / n»; // cabeçalho padrão de resposta client.print (s); // envia a Resposta para o cliente delay (1); } // соңғы цикл
14 -қадам: ParserData
Сұраудан біз реле туралы мәліметтерді іздейміз. Содан кейін біз деректерді MCP23016 жібереміз.
// a partirès busão osca dérosentes aos relésvoid parserData (String data) {uint8_t relay = -1; uint8_t gp = -1; uint8_t мәні = -1; int индексі = data.indexOf («/MR»); // busca o index MR префиксі, егер (деректер [индекс+5] == '/') ///MR01/1, онда 0 = GP; 1 = RELE; 1 = ESTADO (қосу/өшіру) {gp = деректер [индекс+3]-'0'; реле = деректер [индекс+4]-'0'; мән = деректер [индекс+6]-'0'; // envia os dados para o MCP23016 // [реле-1] порк немесе MCP мен 0-7 жазулар PinPinData (реле-1, мән, gp); }}
15 -қадам: Портты конфигурациялаңыз
Біз GPIO pin режимін орнатамыз (GP0 немесе GP1).
// GPIO (GP0 ou GP1) конфигурациясы // параметірдің параметрлері: // порт: GP0 немесе GP1 // INPUT парольдері GP -дің порттары сияқты // OUTPUT порттары GP -тің порттары сияқты. // 0-255 стандартты нұсқалары (1 = INPUT, 0 = OUTPUT) // мысалы: 0x01 немесе B00000001 ou 1: нұсқаулықтар GPX.0 нұсқасы, ол сіздің келісіміңізді бұзады configurePort (uint8_t порт, uint8_t реттелетін) {if (custom == INPUT) {writeBlockData (порт, 0xFF); } else if (custom == OUTPUT) {writeBlockData (порт, 0x00); } else {writeBlockData (порт, реттелетін); }}
16 -қадам: WritePinData
Кодтың бұл бөлігінде біз қажетті түйреуіштің күйін өзгертіп, деректерді MCP -ге жібереміз.
// мудао эстадо де ум пино десежадо, пасандо комо параметрі: // pin = pino desejado; мән = 0/1 (қосу/өшіру); gp = 0/1 (PORT do MCP) жарамсыз writePinData (int pin, int мәні, uint8_t gp) {uint8_t statusGP = 0; if (gp == GP0) statusGP = currentValueGP0; else statusGP = currentValueGP1; if (мән == 0) {statusGP & = ~ (B00000001 << (түйреуіш)); // muda o pino para LOW} else if if (value == 1) {statusGP | = (B00000001 << (pin)); // muda o pino para HIGH} if (gp == GP0) currentValueGP0 = statusGP; else currentValueGP1 = statusGP; // MCP writeBlockData (gp, statusGP) бойынша қосымша мәліметтер; кешіктіру (10); }
17 -қадам: WriteBlockData & SetupWiFi
Мұнда біз деректерді MCP23016 -ға i2c шинасы арқылы жібереміз. Содан кейін біз кіру нүктесін қосу үшін қасиеттерді конфигурациялаймыз. Ақырында, біз WiFi кіру нүктесі режиміне конфигурацияладық және SSID және PASSWORD бар AP құрдық.
// envia dados para mCP23016 através to barramento i2c // reg: REGISTRADOR // деректер: dados (0-255) жарамсыз writeBlockData (uint8_t порт, uint8_t деректер) {Wire.beginTransmission (MCPAddress); Wire.write (порт); Wire.write (деректер); Wire.endTransmission (); кешіктіру (10); }
// ACCESS POINTvoid setupWiFi () {WiFi.mode (WIFI_AP); WiFi.softAP («ESP01_RELAY», «12345678»); }
18 -қадам: қосымша
Қолданбаны құру үшін біз MIT App Inventor 2 қолданамыз, оған сілтеме арқылы кіруге болады:
ai2.appinventor.mit.edu/
Қолданба әр реле күйін көрсететін сегіз жұп батырмасы бар екі экраннан тұрады.
Төменде бағдарламалау блоктарының кейбірі берілген:
МАҢЫЗДЫ: ESP әдепкі IP -адресі, себебі қатынас нүктесі 192.168.4.1
1. Экран инициализацияланған кезде, біз IP жадында сақтаймыз және түймелердің күйін қалпына келтіру процедурасын шақырамыз (ON / OFF).
2. Басқа экранға қоңырау шалыңыз
1. Реленің бірінің ҚОСУ түймесін басқанда, біз батырмада визуалды өзгерістер жасаймыз (жасыл блоктар). WebViewer1. GoToUrl URL мекенжайындағы MR01 / 1 деректерін байланыстыру арқылы біздің ESP01 сұранысын жасайды.
2. Релей бірінің ӨШІРУ түймесін басқанда, біз батырмада визуалды өзгерістер жасаймыз (жасыл блоктар). WebViewer1. GoToUrl URL мекенжайындағы MR01 / 0 деректерін байланыстыру арқылы біздің ESP01 -ге сұраныс жасайды.
Бұл процедура батырмалардың (релелердің) күйін қалпына келтіру үшін қолданылады, себебі экранды өзгерту кезінде ол құру үлгісіне оралады.
Сары блок түйме жұптарының әрқайсысы үшін қайталанады.
19 -қадам: жүктеу
Міне, жүктеуге болатын жоба файлдары:
MIT App Inventor 2 жобасының файлы - жүктеу
Android -те орнатылатын APK қосымшасы - жүктеу
Басқа файлдарды жүктеңіз:
МЕН ЖОҚ
Ұсынылған:
MadMapper & Teensy 3.2: 14 қадамдары бар клубтық жарықтандыру жүйесі
MadMapper & Teensy 3.2 көмегімен клубтық жарықтандыру жүйесі: 2018 жылы мен Палестинадағы Рамалладағы Жаңа жылдық кешке бюджеттік клубтың жарықтандыру жүйесінің бірінші нұсқасын жасадым, бұл туралы менің Одақ ұжымыммен әңгіме мен ұжым туралы толығырақ. мақала. Жүйе WS2812 -ге негізделген
COVID-19: 3 қадамдары үшін есікті басқару жүйесі бар сенсорсыз кран
Ковид-19 үшін есікті басқару жүйесі бар сенсорсыз кран: COVID-19-қазіргі уақытта күрделі пандемия. Коронавирус адамдар арасында тез және оңай таралады. Бұл вирустың таралуын тежеудің әдістері бар және бір жолы - қолды сабынмен кем дегенде 20 секунд жуу. Кейде, егер адам
MQTT/Google Home Flood/ESP-01: 7 қадамдары бар WIFI су сенсоры
MQTT/Google Home Flood/ESP-01 бар WIFI сенсоры: Бұл нұсқаулықта мен сізге Wi-Fi тасқынының/су сенсорын минималды шығынмен қалай салу керектігін көрсетемін. Бүкіл жоба eBay мен қолда бар қосалқы бөлшектерден алатын бөлшектерім үшін маған 8 доллардан төмен тұрады. Бұл жобада біз WIF ұсыну үшін ESP-01 қолданамыз
4Duino-24: 4 қадамдары бар сымсыз импульстік жиілік мониторы
4Duino-24 бар сымсыз импульстік жылдамдық мониторы: сымсыз импульстік жылдамдық мониторы-бұл ауруханалар мен емханаларға арналған тұжырымдамалық жоба, оның негізгі функциясы-медбикелер мен дәрігерлердің ауруханадағы әрбір науқасқа бару уақытын азайту. Әдетте дәрігерлер мен медбикелер әр науқасқа тексеруден өтеді
Benewake TFmini - Teensy 3.5: 3 қадамдары бар арзан LiDAR
Benewake TFmini - Teensy 3.5 көмегімен қымбат емес LiDAR: Benewake TFmini LiDAR қондырғысы шамамен 50 доллар тұратын шағын, өте жеңіл LiDAR сенсоры. Құжаттар жақсы болды, бірақ толық емес. Ол сенсордан деректерді алу туралы егжей -тегжейлі мәлімет берді, бірақ сенсорды қою үшін қажет сигнал туралы айтуды ұмытып кетті