Мазмұны:

ESP01: 19 қадамдары бар арзан автоматика
ESP01: 19 қадамдары бар арзан автоматика

Бейне: ESP01: 19 қадамдары бар арзан автоматика

Бейне: ESP01: 19 қадамдары бар арзан автоматика
Бейне: Управляйте 10 выходными контактами или реле с помощью 10 кнопочных переключателей с 1 входным контактом Arduino ANPB-V2. 2024, Қараша
Anonim
Image
Image
MCP23016
MCP23016

Бүгін біз 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

MCP23016
MCP23016

9-қадам: ESP-01

ESP-01
ESP-01
ESP-01
ESP-01

Бұл 16 релелік тақта.

10 -қадам: ESP01 орнату

ESP01 монтаждау
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

ParserData
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 қосымшасы - жүктеу

Басқа файлдарды жүктеңіз:

PDF

МЕН ЖОҚ

Ұсынылған: