Агуулгын хүснэгт:
- Алхам 1: Санах зөвлөмж
- Алхам 2: MCP23016
- Алхам 3: Хаяг
- Алхам 4: Тушаалууд
- Алхам 5: Ангилалууд
- Алхам 6: Харилцааны бүтэц
- Алхам 7: Хөтөлбөр
- Алхам 8: MCP23016
- Алхам 9: ESP-01
- Алхам 10: ESP01 -ийг суурилуулах
- Алхам 11: Номын сан ба хувьсагчид
- Алхам 12: Тохиргоо
- Алхам 13: Loop
- Алхам 14: ParserData
- Алхам 15: Port -ийг тохируулна уу
- Алхам 16: WritePinData
- Алхам 17: WriteBlockData & SetupWiFi
- Алхам 18: Апп
- Алхам 19: Татаж авах
Видео: ESP01: 19 алхам бүхий хямд өртөгтэй автоматжуулалт
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Өнөөдөр бид ESP01 ашиглан 16 реле бүхий автоматжуулалтын талаар ярилцах болно. Энэ бол маш хямд дизайны загвар бөгөөд та модулийг үржүүлж, 128 хүртэлх реле авах боломжтой бөгөөд энэ микроконтроллерт найман порт өргөтгөгч оруулах боломжтой юм.
Манай хэлхээнд та ESP01 -тэй холбогддог ухаалаг гар утсан дээрх програмтай болно. Энэ нь тус бүрдээ релетэй холбогдсон 16 порттой өргөтгөгчтэй болно. Бид бас 3v3 тохируулгатай эх үүсвэртэй. Тиймээс бид ESP01 ашиглан 16 сувгийн реле модулийг Андройд аппликейшнээр дамжуулан хянаж үзэх болно.
Алхам 1: Санах зөвлөмж
Найзууд минь, би энэ чипийг MCP23016 хэмээх хэлхээнд ашигласан гэдгийг анхаарах нь чухал юм. ISP -ийн ESP32, ESP8266, ARDUINO -д зориулсан EXPANSOR видеог үзэх нь чухал бөгөөд энэ төхөөрөмж дээр би эдгээр гурван төрлийн самбар дээр ажилладаг болохыг харуулж байна.
Алхам 2: MCP23016
Энд бид 28 зүү бүхий чип болох MCP23016 -ийн дүр төрхийг олж авсан болно. MCP23017 загвар нь илүү түгээмэл байдаг бөгөөд дотоод цагтай тул резистор ба конденсатор шаардлагагүй байдаг гэдгийг дурдах нь чухал юм. Энэ нь үүнийг илүү хялбар болгодог, гэхдээ түүний бэхэлгээ нь энэ видеонд үзүүлсэнээс өөр юм.
Алхам 3: Хаяг
MCP23016 хаягийг тодорхойлохын тулд бид A0, A1, A2 зүү ашигладаг. Та хаягаа солихын тулд тэдгээрийг HIGH эсвэл LOW түвшинд үлдээж болно.
Хаягийг дараах байдлаар бүрдүүлэх болно.
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 // responsável pela comunicação i2c. #include // responsável criar o accesspoint eo webserver WiFiServer server (80); // webserver para acessarmos através do aplicativo // endereço I2C do MCP23016 #MCPAddress 0x20 -ийг тодорхойлно уу. GP0 0x00 // DATA PORT REGISTER 0 #тодорхойлох GP1 0x01 // DATA PORT REGISTER 1 #deodine IODIR0 0x06 // I/O DIRECTION REGISTER 0 #deodine IODIR1 0x07 // I/O DIRECTION REGISTER 1 // guarda os valores dos pin. 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: Loop
Энд би ямар нэгэн үйлчлүүлэгч сервертэй холбогдсон эсэхийг шалгадаг. Бид мөн эхний хүсэлтийн мөрийг уншдаг. Бид өгөгдлийг удирдах зорилгоор гаргаж, үндсэн хариултын толгойг тодорхойлж, энэ хариуг үйлчлүүлэгчид илгээдэг.
void loop () {WiFiClient client = server.available (); // Verifica se um cliente foi conectado if (! Client) {return; } String req = Client.readStringUntil ('\ r'); ("/MR")! = -1) {parserData (req); // a partir da Requisição extrai os dados para manipulação} else {Serial.println ("хүчингүй хүсэлт"); буцах; } client.flush (); String s = "HTTP/1.1 200 OK / r / n"; // cabeçalho padrão de resposta client.print (s); // envia a resposta para o kliente саатал (1); } // төгсгөлийн гогцоо
Алхам 14: ParserData
Хүсэлтээс бид релейтэй холбоотой өгөгдлийг хайж олох болно. Дараа нь бид өгөгдлийг MCP23016 руу илгээдэг.
// a partir da Requisição busca os dados referente aos relésvoid parserData (String data) {uint8_t relay = -1; uint8_t gp = -1; uint8_t утга = -1; int index = data.indexOf ("/MR"); // busca o index to prefixo MR if (data [index+5] == '/') ///MR01/1, on 0 = GP; 1 = RELE; 1 = ESTADO (асаах/унтраах) {gp = өгөгдөл [индекс+3]-'0'; реле = өгөгдөл [индекс+4]-'0'; утга = өгөгдөл [индекс+6]-'0'; // envia os dados para o MCP23016 // [relay-1] porque o MCP vai de 0-7 os pinos writePinData (буухиа-1, утга, gp); }}
Алхам 15: Port -ийг тохируулна уу
Бид GPIO зүү горимыг тохируулсан (GP0 эсвэл GP1).
// GPU (GP0 ou GP1) тохиргооны тохиргоо // passo параметрүүд: // порт: GP0 эсвэл GP1 // INPUT нь todos шиг портууд GP trabalharem como entrada хийх ёстой // custom um valor de 0-255 indicando o modo das portas (1 = INPUT, 0 = OUTPUT) // ex: 0x01 ou B00000001 ou 1: indica que apenas o GPX.0 trabalhará como entrada, or restante como saida void configurePort (uint8_t порт, uint8_t custom) {if (custom == INPUT) {writeBlockData (порт, 0xFF); } else if (custom == OUTPUT) {writeBlockData (порт, 0x00); } өөр {writeBlockData (порт, өөрчлөн тохируулсан); }}
Алхам 16: WritePinData
Кодын энэ хэсэгт бид хүссэн зүүгээ өөрчилж, өгөгдлийг MCP руу илгээдэг.
// muda o estado de um pino desejado, passando como parametro: // pin = pino desejado; утга = 0/1 (асаах/унтраах); gp = 0/1 (PORT do MCP) хүчингүй writePinData (int pin, int value, uint8_t gp) {uint8_t statusGP = 0; хэрэв (gp == GP0) statusGP = currentValueGP0; else statusGP = currentValueGP1; if (утга == 0) {statusGP & = ~ (B00000001 << (зүү)); // muda o pino para LOW} else if (утга == 1) {statusGP | = (B00000001 << (зүү)); // muda o pino para HIGH} if (gp == GP0) currentValueGP0 = statusGP; else currentValueGP1 = statusGP; // envia os dados para or MCP writeBlockData (gp, statusGP); саатал (10); }
Алхам 17: WriteBlockData & SetupWiFi
Энд бид өгөгдлийг i2c автобусаар MCP23016 руу илгээдэг. Дараа нь бид хандалтын цэгийг идэвхжүүлэхийн тулд шинж чанаруудыг тохируулдаг. Эцэст нь бид WiFi -ийг Access Point горимд тохируулж, SSID болон PASSWORD -тэй AP үүсгэсэн.
// envia dados para o MCP23016 através do barramento i2c // reg: REGISTRADOR // data: 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/
Энэхүү програм нь тус бүрдээ найман хос товчлуур агуулсан хоёр дэлгэцээс бүрдэх бөгөөд реле бүрийн статусыг харуулна.
Дараахь програмчлалын блокуудыг ашиглаж болно.
ЧУХАЛ: Хандалтын цэг нь 192.168.4.1 тул ESP -ийн анхдагч IP хаяг юм
1. Дэлгэцийг эхлүүлэх үед бид IP хаягийг санах ойд хадгалж, товчлууруудын төлөвийг сэргээх процедурыг дууддаг (ON / OFF).
2. Нөгөө дэлгэц рүү залгаарай
1. Релений аль нэгний ON товчлуур дээр дарахад бид товчлуур дээр харааны өөрчлөлт хийх болно (ногоон блокууд). WebViewer1. GoToUrl нь URL дахь MR01 / 1 өгөгдлийг холбож манай ESP01 -д хүсэлт тавьдаг.
2. Релений аль нэгний унтраах товчлуурыг дарахад бид товчлуур дээр харааны өөрчлөлт хийх болно (ногоон блокууд). WebViewer1. GoToUrl нь URL дахь MR01 / 0 өгөгдлийг холбож манай ESP01 -д хүсэлт тавьдаг.
Энэ процедур нь товчлууруудын (реле) төлөвийг сэргээхэд ашиглагддаг, учир нь дэлгэцийг өөрчлөх үед энэ нь бүтээх загвар руу буцдаг.
Шар блок нь товчлуурын хос тус бүрт давтагдана.
Алхам 19: Татаж авах
Татаж авах төслийн файлууд энд байна:
MIT App Inventor 2 төслийн файл - татаж авах
Андройд дээр суулгах APK програм - татаж авах
Бусад файлыг татаж авах:
INO
Зөвлөмж болгож буй:
Хямд өртөгтэй ЭКГ төхөөрөмжийг хэрхэн бүтээх вэ: 26 алхам
Хямд өртөгтэй ЭКГ төхөөрөмжийг хэрхэн яаж бүтээх вэ: Сайн байцгаана уу! Намайг Мариано гэдэг би биоанагаахын инженер юм. Би амралтын өдрүүдийг Bluetooth ашиглан Android төхөөрөмж (смартфон эсвэл таблет) -т холбогдсон Arduino самбар дээр суурилсан хямд өртөгтэй ЭКГ төхөөрөмжийн загварыг бүтээх, хэрэгжүүлэх зорилгоор хэдэн амралтын өдрүүдийг өнгөрөөсөн. Би
Пандеми: Хямд өртөгтэй робот халдваргүйжүүлэх систем: 7 алхам
Пандеми: Хямд өртөгтэй робот халдваргүйжүүлэх систем: Энэ бол хямд, хийхэд хялбар робот юм. Энэ нь таны өрөөг хэт ягаан туяаны гэрлээр ариутгах боломжтой, хөнгөн бөгөөд уян хатан, ямар ч газар нутгаар явж, ямар ч үүдэнд багтах боломжтой. Энэ нь бас хүний аюулгүй, бүрэн бие даасан юм
Esp8266: 6 алхамыг ашиглан DIY хямд өртөгтэй гэрийн автоматжуулалт
Esp8266 ашиглан DIY хямд өртөгтэй гэрийн автоматжуулалт: Сайн байна уу, өнөөдөр энэ зааварчилгаанд би өөрийн гэрийн автоматжуулалтыг nodemcu гэж нэрлэдэг ESP 8266 модулийг ашиглан ухаалаг байшин руу чиглэсэн алхам болохын тулд цаг алдалгүй хэрхэн яаж хийхийг харуулах болно. Эхэлцгээе:)
Хямд өртөгтэй мэдрэгчтэй замыг хэдхэн минутын дотор хий!: 10 алхам (зурагтай)
Хямд өртөгтэй мэдрэгчтэй замыг хэдхэн минутын дотор хий !: Өмнөх зааварчилгаандаа би автомат салаа бүхий галт тэрэгний загварыг хэрхэн яаж хийхийг зааж өгсөн. Энэ нь "мэдрэгчтэй зам" нэртэй трек сегментийг ашигласан. Төмөр замын загвар зохион байгуулалт хийх нь маш ашигтай зүйл юм. Би дараахь зүйлийг ашиглаж болно: Блоклох
Raspberry Pi бүхий хямд, үр дүнтэй гэрийн автоматжуулалт: 11 алхам (зурагтай)
Raspberry Pi -тай хямд, үр дүнтэй гэрийн автоматжуулалт: Би гэрлийг утасгүй удирдахыг үргэлж хүсч байсан боловч арилжааны сонголтууд ихэвчлэн үнэтэй байдаг. Philips Hue гэрэл ойролцоогоор 70 долларын үнэтэй бөгөөд WiFi сүлжээнд холбогдсон гэрэл нь бас үнэтэй байдаг. Энэхүү гарын авлагад таван гэрэл/л хүртэл хэрхэн хянах талаар танд хэлэх болно