ዝርዝር ሁኔታ:

ዝቅተኛ ወጭ አውቶማቲክ በ ESP01: 19 ደረጃዎች
ዝቅተኛ ወጭ አውቶማቲክ በ ESP01: 19 ደረጃዎች

ቪዲዮ: ዝቅተኛ ወጭ አውቶማቲክ በ ESP01: 19 ደረጃዎች

ቪዲዮ: ዝቅተኛ ወጭ አውቶማቲክ በ ESP01: 19 ደረጃዎች
ቪዲዮ: ከወሲብ በፊት ይህን ከጠጣህ አለቀላት ! | ማለቂያ ለሌለው የወሲብ ብቃት | 2024, ህዳር
Anonim
Image
Image
MCP23016
MCP23016

ዛሬ ፣ ESP01 ን በ 16 ቅብብሎች በመጠቀም አውቶማቲክን እንወያይበታለን። በዚህ ማይክሮ መቆጣጠሪያ ውስጥ እስከ ስምንት የወደብ ማስፋፊያዎችን ማስቀመጥ ስለሚቻል ሞጁሎቹን ማባዛት እና እስከ 128 ሬሴሎች ድረስ ማግኘት የሚችሉበት እጅግ በጣም ርካሽ የዲዛይን ሞዴል ነው።

በእኛ ወረዳ ውስጥ ከ ESP01 ጋር በሚገናኝ ዘመናዊ ስልክ ላይ ማመልከቻ ይኖርዎታል። እያንዳንዳቸው ከቅብብል ጋር የተገናኙ 16 ወደቦች ያሉት ማስፋፊያ ይኖረዋል። እኛ ደግሞ 3v3 ሊስተካከል የሚችል ምንጭ አለን። ስለዚህ እኔ ለእርስዎ ባዘጋጀው በ Android መተግበሪያ በኩል ESP01 ን በመጠቀም የ 16-ሰርጥ ማስተላለፊያ ሞዱልን እንቆጣጠራለን።

ደረጃ 1 - ለማስታወስ ጠቃሚ ምክር

ጓደኞቼ ፣ ይህንን ቺፕ MCP23016 በሚባል ወረዳ ውስጥ መጠቀሜን ልብ ማለት አስፈላጊ ነው። መሣሪያውን የምሞክርበት እና ለእነዚህ ሶስት ዓይነት ቦርዶች የሚሰራ መሆኑን የሚያሳዩበትን የ EXPANSOR OF IOS FOR ESP32 ፣ ESP8266 እና ARDUINO ቪዲዮ ማየትም ለእርስዎ አስፈላጊ ነው።

ደረጃ 2 MCP23016

እዚህ 28 ፒኖች ያሉት ቺፕ የሆነውን የ MCP23016 ምስል አለን። እሱ በጣም የተለመደ እና ተከላካይ እና capacitor የማያስፈልገው የ MCP23017 አምሳያ መኖሩን መጥቀስ አስፈላጊ ነው ፣ ምክንያቱም ውስጣዊ ሰዓት አለው። ይህ ቀላል ያደርገዋል ፣ ግን መሰካቱ በዚህ ቪዲዮ ውስጥ ከምናሳየው የተለየ ነው።

ደረጃ 3 አድራሻ

አድራሻ
አድራሻ

የ MCP23016 አድራሻውን ለመለየት ፒን A0 ፣ A1 እና A2 ን እንጠቀማለን። ለአድራሻው ለውጥ በከፍተኛ ወይም በዝቅተኛ ደረጃ ሊተዋቸው ይችላሉ።

አድራሻው እንደሚከተለው ይመሰረታል።

MCP_Address = 20 + (A2 A1 A0)

A2 A1 A0 ከፍተኛ / ዝቅተኛ እሴቶችን ፣ የሁለትዮሽ ቁጥርን ከ 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 - የውሂብ ወደብ ምዝገባዎች

ሁለቱ የጂፒዮ ወደቦች መዳረሻ የሚሰጡ ሁለት መዝገቦች አሉ።

የመመዝገቢያ ንባቡ በዚያ ወደብ ላይ ያሉትን የፒንሶቹን ሁኔታ ይሰጣል።

ቢት = 1> ከፍተኛ ቢት = 0> ዝቅተኛ

IODIR0 / IODIR1

የፒን ሁነታን የሚቆጣጠሩ ሁለት መዝገቦች አሉ። (ግቤት ወይም ውፅዓት)

ቢት = 1> ግብዓት ቢት = 0> ውጣ

ደረጃ 6 - ለግንኙነት መዋቅር

ለግንኙነት መዋቅር
ለግንኙነት መዋቅር

እዚህ ስለ ቺፕ አድራሻው እንነጋገራለን ፣ እና መረጃን ለመላክ መደረግ ያለበት የፕሮቶኮል ዓይነት የሆነውን ትዕዛዙ እና ውሂቡን እናገኛለን።

ደረጃ 7 - ፕሮግራም

ፕሮግራም
ፕሮግራም

የሚጠቀሙባቸው ብዙ ጂፒአይዎች እንዲኖሯቸው ESP01 ን ከ MCP23016 ጋር መገናኘትን ያካተተ ፕሮግራም እናደርጋለን። እኛ ያለንባቸው እነዚህ 16 አዲስ ጂፒአይዎች የ 16-ሰርጥ ማስተላለፊያ ሞጁልን ይቆጣጠራሉ።

ትዕዛዞች በ ESP01 በ Android መተግበሪያ በኩል ይላካሉ።

ደረጃ 8: MCP23016

MCP23016
MCP23016

ደረጃ 9: ESP-01

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

ይህ ባለ 16-ቅብብል ሰሌዳ ነው።

ደረጃ 10 ESP01 ን በመጫን ላይ

ESP01 ን በመጫን ላይ
ESP01 ን በመጫን ላይ

ደረጃ 11: ቤተመፃህፍት እና ተለዋዋጮች

ለ i2c ግንኙነት ኃላፊነት ያላቸው ቤተመፃህፍት እና የመዳረሻ ነጥብ እና የድር አገልጋይ ለመፍጠር እንጨምራለን። እኛ ቺፕ እና ወደቦች አድራሻ እንገልጻለን. በመጨረሻም ፣ የ MCP ፒኖችን እሴቶች ለማከማቸት ተለዋዋጮችን እንገልፃለን።

#አካትቷል/Responsevel pela comunicação i2c. GP0 0x00 ///DATA PORT REGISTER 0 #መግለፅ GP1 0x01 // የውሂብ ወደብ መመዝገቢያ 1 #መግለፅ IODIR0 0x06 // I/O አቅጣጫ መመዝገቢያ 0 #መለየት IODIR1 0x07 // I/O DIRECTION REGISTER 1 // guarda os v MCP uint8_t currentValueGP0 = 0 ያድርጉ። uint8_t currentValueGP1 = 0;

ደረጃ 12: ማዋቀር

ESP01 ን እናስጀምራለን እና ወደቦችን እናዋቅራለን። እንዲሁም የመዳረሻ ነጥቡን እናዋቅራለን እና አገልጋዩን እናስጀምራለን።

ባዶነት ማዋቀር () {Serial.begin (9600); መዘግየት (1000); Wire.begin (0, 2); // ESP01 Wire.setClock (200000); configurePort (IODIR0, OUTPUT); configurePort (IODIR1, OUTPUT); BlockData (GP0 ፣ 0x00); BlockData (GP1 ፣ 0x00); setupWiFi (); // configuração do Access Point server.begin () ፤ // inicializa o server}

ደረጃ 13 - ሉፕ

እዚህ ማንኛውም ደንበኞች ከአገልጋዩ ጋር የተገናኙ መሆናቸውን እፈትሻለሁ። እንዲሁም የመጀመሪያውን የጥያቄ መስመር እናነባለን። ለማታለል ውሂቡን እናወጣለን ፣ ነባሪውን የምላሽ ራስጌ እንገልፃለን እና ይህንን ምላሽ ለደንበኛው እንልካለን።

ባዶነት loop () {WiFiClient client = server.available (); // (! ደንበኛ) {ከተመለሰ; } ሕብረቁምፊ req = ደንበኛ። ("/MR")! = -1) {parserData (req); // a partir da requisição extrai os dados para manipulação} ሌላ {Serial.println ("ልክ ያልሆነ ጥያቄ"); መመለስ; } client.flush (); ሕብረቁምፊ s = "HTTP/1.1 200 እሺ / r / n"; // cabeçalho padrão de resposta client.print (ዎች); // envia a resposta para o ደንበኛ መዘግየት (1); } // የመጨረሻ ዙር

ደረጃ 14: ParserData

ParserData
ParserData

ከጥያቄው ፣ ከሪሌሎች ጋር የተዛመደ መረጃን እንፈልጋለን። ከዚያ ውሂቡን ወደ MCP23016 እንልካለን።

// a partir da requisição busca os dados referente aos relésvoid parserData (ሕብረቁምፊ ውሂብ) {uint8_t relay = -1; uint8_t gp = -1; uint8_t እሴት = -1; int index = data.indexOf ("/MR"); // busca o ኢንዴክስ prefixo MR ከሆነ (ውሂብ [መረጃ+መረጃ ጠቋሚ+5] == '/') ///MR01/1 ፣ onde 0 = GP; 1 = መልቀቅ; 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 ፣ እሴት ፣ ጂፒ); }}

ደረጃ 15: ConfigurePort

የ GPIO ፒን ሁነታን (GP0 ወይም GP1) አዘጋጅተናል።

// አዋቅር o ሞዶ ዶስ ፒኖስ GPIO (GP0 ou GP1) // como parametro passamos: // port: GP0 ou GP1 // INPUT para todos as portas do GP trabalharem como entrada // OUTPUT para todos as portas do GP trabalharem como saida // ብጁ 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, o restante como saida void configurePort (uint8_t ወደብ ፣ uint8_t ብጁ) {ከሆነ (ብጁ == INPUT) {writeBlockData (ወደብ ፣ 0xFF); } ሌላ ከሆነ (ብጁ == ውጣ) {writeBlockData (ወደብ ፣ 0x00); } ሌላ {writeBlockData (ወደብ ፣ ብጁ) ፤ }}

ደረጃ 16: WritePinData

በዚህ የኮዱ ክፍል ውስጥ የተፈለገውን ፒን ሁኔታ እንለውጣለን እና ውሂቡን ወደ ኤም.ሲ.ፒ.

// muda o estado de um pino desejado, passando como parametro: // pin = pino desejado; እሴት = 0/1 (አብራ/አጥፋ); gp = 0/1 (PORT do MCP) ባዶ መጻፍPinData (int pin ፣ int value ፣ uint8_t gp) {uint8_t statusGP = 0; ከሆነ (gp == GP0) statusGP = currentValueGP0; ሌላ statusGP = currentValueGP1; ከሆነ (እሴት == 0) {statusGP & = ~ (B00000001 << (ፒን)); // muda o pino para LOW} ሌላ ከሆነ (እሴት == 1) {statusGP | = (B00000001 << (ፒን)); // muda o pino para HIGH} ከሆነ (gp == GP0) currentValueGP0 = statusGP; ሌላ የአሁኑValueGP1 = statusGP; // envia os dados para o MCP writeBlockData (gp, statusGP); መዘግየት (10); }

ደረጃ 17: WriteBlockData & SetupWiFi

እዚህ ፣ በ i2c አውቶቡስ በኩል ወደ MCP23016 ውሂብ እንልካለን። በመቀጠል የመዳረሻ ነጥቡን ለማንቃት ንብረቶቹን እናዋቅራለን። በመጨረሻ ፣ ለመዳረሻ ነጥብ ሁናቴ WiFi ን አዋቅረን ኤፒአይ ከ SSID እና PASSWORD ጋር ፈጠርን።

// envia dados para o MCP23016 através do barramento i2c // reg: REGISTRADOR // data: dados (0-255) ባዶ ጻፍBlockData (uint8_t port, uint8_t ውሂብ) {Wire.beginTransmission (MCPAddress); Wire.write (ወደብ); Wire.write (ውሂብ); Wire.endTransmission (); መዘግየት (10); }

// ያዋቅሩ እንደ propriedades para habilitar o ACCESS POIN ከመዋቀር WiFi () {WiFi.mode (WIFI_AP)) ያስወግዱ; WiFi.softAP ("ESP01_RELAY" ፣ "12345678"); }

ደረጃ 18: መተግበሪያ

መተግበሪያ
መተግበሪያ
መተግበሪያ
መተግበሪያ
መተግበሪያ
መተግበሪያ
መተግበሪያ
መተግበሪያ

መተግበሪያውን ለመፍጠር ፣ በአገናኝ በኩል ሊደረስበት የሚችል የ MIT መተግበሪያ ፈላጊ 2 ን እንጠቀማለን-

ai2.appinventor.mit.edu/

መተግበሪያው በእያንዳንዱ ውስጥ ስምንት ጥንድ አዝራሮችን የያዙ ሁለት ማያ ገጾችን ያካተተ ሲሆን የእያንዳንዱ ቅብብል ሁኔታን ያሳያል።

የሚከተሉት ጥቅም ላይ የዋሉ አንዳንድ የፕሮግራም ብሎኮች ናቸው

አስፈላጊ: የመዳረሻ ነጥብ 192.168.4.1 እንደመሆኑ መጠን የ ESP ነባሪ የአይፒ አድራሻ

1. ማያ ገጹ ሲጀመር ፣ አይፒውን በማስታወሻ ውስጥ እናከማቸዋለን እና የአዝራሮቹን ሁኔታ (አብራ / አጥፋ) ለመመለስ ሂደቱን እንጠራዋለን።

2. ወደ ሌላኛው ማያ ገጽ ይደውሉ

1. በአንዱ ቅብብል (ኦፕሬቲንግ) ላይ በር ላይ ጠቅ ሲያደርጉ በአዝራሩ (አረንጓዴ ብሎኮች) ውስጥ የእይታ ለውጦችን እናደርጋለን። WebViewer1. GoToUrl በዩአርኤል ውስጥ የ MR01 / 1 ውሂብን በማገናኘት ለ ESP01 ጥያቄ ያቀርባል።

2. ከአስተላላፊዎቹ የአንዱ የ OFF ቁልፍን ጠቅ ሲያደርጉ ፣ በአዝራሩ (አረንጓዴ ብሎኮች) ውስጥ የእይታ ለውጦችን እናደርጋለን። WebViewer1. GoToUrl በዩአርኤል ውስጥ የ MR01 / 0 ውሂብን በማገናኘት ለ ESP01 ጥያቄ ያቀርባል።

ይህ የአሠራር ሂደት የአዝራሮች (ሪሌሎች) ሁኔታን ለማገገም ያገለግላል ፣ ምክንያቱም ማያ ገጹን በሚቀይርበት ጊዜ ወደ ፍጥረት ንድፍ ይመለሳል።

ቢጫው እገዳ ለእያንዳንዱ የአዝራር ጥንድ ይደጋገማል።

ደረጃ 19: ያውርዱ

ለማውረድ የፕሮጀክት ፋይሎች እነ:ሁና ፦

የ MIT መተግበሪያ ፈላጊ 2 የፕሮጀክት ፋይል - ያውርዱ

በ android ላይ ለመጫን የመተግበሪያ APK - ያውርዱ

ሌሎች ፋይሎችን ያውርዱ:

ፒዲኤፍ

INO

የሚመከር: