Სარჩევი:
- ნაბიჯი 1: რჩევა დასამახსოვრებლად
- ნაბიჯი 2: MCP23016
- ნაბიჯი 3: მისამართი
- ნაბიჯი 4: ბრძანებები
- ნაბიჯი 5: კატეგორიები
- ნაბიჯი 6: სტრუქტურა კომუნიკაციისთვის
- ნაბიჯი 7: პროგრამა
- ნაბიჯი 8: MCP23016
- ნაბიჯი 9: ESP-01
- ნაბიჯი 10: მონტაჟი ESP01
- ნაბიჯი 11: ბიბლიოთეკები და ცვლადები
- ნაბიჯი 12: დაყენება
- ნაბიჯი 13: მარყუჟი
- ნაბიჯი 14: ParserData
- ნაბიჯი 15: კონფიგურაცია პორტი
- ნაბიჯი 16: ჩაწერეთ pin მონაცემები
- ნაბიჯი 17: ჩაწერეთBlockData & SetupWiFi
- ნაბიჯი 18: აპლიკაცია
- ნაბიჯი 19: ჩამოტვირთეთ
ვიდეო: დაბალი ღირებულების ავტომატიზაცია ESP01– ით: 19 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
დღეს ჩვენ განვიხილავთ ავტომატიზაციას ESP01 გამოყენებით 16 რელესთან ერთად. ეს არის სუპერ იაფი დიზაინის მოდელი, სადაც შეგიძლიათ გაამრავლოთ მოდულები და მიიღოთ 128 -მდე რელე, რადგან ამ მიკროკონტროლერში შესაძლებელია რვა პორტის გაფართოების განთავსება.
ჩვენს წრეში გექნებათ პროგრამა სმარტფონზე, რომელიც კომუნიკაციას უწევს ESP01– ს. მას ექნება გაფართოება 16 პორტით, თითოეული უკავშირდება რელეს. ჩვენ ასევე გვაქვს 3v3 რეგულირებადი წყარო. ამრიგად, ჩვენ გავაკონტროლებთ 16 არხიანი სარელეო მოდულს ESP01 გამოყენებით Android პროგრამის საშუალებით, რომელსაც მე თქვენთვის ხელმისაწვდომს გახდის.
ნაბიჯი 1: რჩევა დასამახსოვრებლად
მნიშვნელოვანია აღინიშნოს, ჩემო მეგობრებო, რომ მე ეს ჩიპი გამოვიყენე წრეში, სახელწოდებით MCP23016. თქვენთვის ასევე მნიშვნელოვანია უყუროთ ვიდეოს EXPANSOR OF IOS FOR ESP32, ESP8266 AND ARDUINO, რომელშიც მე ვამოწმებ მოწყობილობას და ვაჩვენებ რომ მუშაობს ამ სამი ტიპის დაფაზე.
ნაბიჯი 2: MCP23016
აქ ჩვენ გვაქვს MCP23016 გამოსახულება, რომელიც არის ჩიპი 28 ქინძისთავით. მნიშვნელოვანია აღინიშნოს, რომ არსებობს ასევე MCP23017 მოდელი, რომელიც უფრო ხშირია და არ სჭირდება რეზისტორი და კონდენსატორი, რადგან მას აქვს შიდა საათი. ეს ამარტივებს, მაგრამ მისი ჩამაგრება განსხვავდება იმისგან, რასაც ჩვენ ვაჩვენებთ ამ ვიდეოში.
ნაბიჯი 3: მისამართი
MCP23016 მისამართის დასადგენად, ჩვენ ვიყენებთ ქინძისთავებს A0, A1 და A2. თქვენ შეგიძლიათ უბრალოდ დატოვოთ ისინი HIGH ან LOW მისამართის შესაცვლელად.
მისამართი ჩამოყალიბდება შემდეგნაირად:
MCP_ მისამართი = 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 ორ პორტზე.
რეგისტრის კითხვა გვაწვდის ამ პორტზე ქინძისთავების სტატუსს.
ბიტი = 1> მაღალი ბიტი = 0> დაბალი
IODIR0 / IODIR1
არსებობს ორი რეგისტრი, რომლებიც აკონტროლებენ pin რეჟიმს. (შეყვანა ან გამომავალი)
Bit = 1> INPUT Bit = 0> OUTPUT
ნაბიჯი 6: სტრუქტურა კომუნიკაციისთვის
აქ ჩვენ ვსაუბრობთ ჩიპის მისამართზე და შედიხართ ბრძანებასა და მონაცემებზე, რაც არის ერთგვარი პროტოკოლი, რომელიც უნდა გაკეთდეს ინფორმაციის გასაგზავნად.
ნაბიჯი 7: პროგრამა
ჩვენ გავაკეთებთ პროგრამას, რომელიც შედგება ESP01– ის MCP23016– თან კომუნიკაციისგან, რათა გამოვიყენოთ მეტი GPIO. ეს 16 ახალი GPIO, რომელიც ჩვენ გვექნება, ვაპირებთ გავაკონტროლოთ 16 არხიანი სარელეო მოდული.
ბრძანებები გაიგზავნება ESP01– ზე Android პროგრამის საშუალებით.
ნაბიჯი 8: MCP23016
ნაბიჯი 9: ESP-01
ეს არის 16 სარელეო დაფა.
ნაბიჯი 10: მონტაჟი ESP01
ნაბიჯი 11: ბიბლიოთეკები და ცვლადები
ჩვენ შევიტანთ ბიბლიოთეკებს, რომლებიც პასუხისმგებელნი არიან i2c კომუნიკაციაზე და წვდომის წერტილისა და ვებ სერვერის შექმნაზე. ჩვენ განვსაზღვრავთ ჩიპის მისამართს და პორტებს. დაბოლოს, ჩვენ განვსაზღვრავთ ცვლადებს MCP ქინძისთავების მნიშვნელობების შესანახად.
#შეიტანეთ // საპასუხოდ გამოაქვეყნეთ i2c. #მოიცავს // პასუხი განსაზღვრეთ GP0 0x00 // DATA PORT REGISTER 0 #განსაზღვრეთ GP1 0x01 // DATA PORT REGISTER 1 #განსაზღვრეთ IODIR0 0x06 // I/O DIRECTION REGISTER 0 #განსაზღვრეთ IODIR1 0x07 // I/O DIRECTION REGISTER 1 // guarda os valores dos pinos გააკეთე MCP uint8_t მიმდინარეValueGP0 = 0; uint8_t მიმდინარეValueGP1 = 0;
ნაბიჯი 12: დაყენება
ჩვენ ვაყენებთ ESP01 ინიციალიზაციას და ვაკეთებთ პორტების კონფიგურაციას. ჩვენ ასევე ვაყენებთ წვდომის წერტილს და ვაყენებთ სერვერს.
void setup () {Serial.begin (9600); დაგვიანება (1000); Wire.begin (0, 2); // ESP01 Wire.setClock (200000); კონფიგურაციის პორტი (IODIR0, OUTPUT); კონფიგურაციის პორტი (IODIR1, OUTPUT); writeBlockData (GP0, 0x00); writeBlockData (GP1, 0x00); setupWiFi (); // configuração do Access Point server.begin (); // ოფიციალური სერვერი}
ნაბიჯი 13: მარყუჟი
აქ ვამოწმებ არის თუ არა რომელიმე კლიენტი დაკავშირებული სერვერთან. ჩვენ ასევე ვკითხულობთ პირველი მოთხოვნის ხაზს. ჩვენ ვიღებთ მონაცემებს მანიპულირებისთვის, განვსაზღვრავთ ნაგულისხმევი პასუხის სათაურს და ვუგზავნით ამ პასუხს კლიენტს.
void loop () {WiFiClient client = server.available (); // Verifica se um cliente foi conectado if (! Client) {დაბრუნება; } String req = client.readStringUntil ('\ r'); // Faz a leitura da primeira linha da requisição/ */MR é o header prefixo para saber se a requisição é a esperada para os relés */if (req.indexOf ("/MR")! = -1) {parserData (მოთხოვნა); // 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 დაგვიანება (1); } // ბოლო მარყუჟი
ნაბიჯი 14: ParserData
მოთხოვნიდან ჩვენ ვეძებთ მონაცემებს რელესთან დაკავშირებით. შემდეგ ჩვენ ვგზავნით მონაცემებს MCP23016.
// partir da requisição busca os dados referente aos relésvoid parserData (სიმებიანი მონაცემები) {uint8_t სარელეო = -1; uint8_t gp = -1; uint8_t მნიშვნელობა = -1; int index = data.indexOf ("/MR"); // busca o index do prefixo MR if (data [index+5] == '/') ///MR01/1, onde 0 = GP; 1 = RELE; 1 = ESTADO (ჩართვა/გამორთვა) {gp = მონაცემები [ინდექსი+3]-'0'; სარელეო = მონაცემები [ინდექსი+4]-'0'; მნიშვნელობა = მონაცემები [ინდექსი+6]-'0'; // envia os dados para o MCP23016 // [სარელეო -1] porque o MCP vai de 0-7 os pinos writePinData (სარელეო -1, მნიშვნელობა, gp); }}
ნაბიჯი 15: კონფიგურაცია პორტი
ჩვენ დავაყენეთ GPIO pin რეჟიმი (GP0 ან GP1).
// configura o modo dos pinos 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 // საბაჟო მნიშვნელობა 0-255 მიუთითეთ და შეიტანეთ პორტები (1 = INPUT, 0 = OUTPUT) // მაგ.: 0x01 ou B00000001 ან 1: მითითება აპენასი o GPX.0 ტრაბალჰარ á como entrada, o restante como said void configurePort (uint8_t პორტი, uint8_t საბაჟო) {if (საბაჟო == INPUT) {writeBlockData (პორტი, 0xFF); } else if (საბაჟო == OUTPUT) {writeBlockData (პორტი, 0x00); } else {writeBlockData (პორტი, საბაჟო); }}
ნაბიჯი 16: ჩაწერეთ pin მონაცემები
კოდის ამ ნაწილში ჩვენ ვცვლით სასურველ პინის მდგომარეობას და მონაცემებს ვგზავნით MCP– ში.
// muda o estado de um pino desejado, passando como parametro: // pin = pino desejado; მნიშვნელობა = 0/1 (ჩართვა/გამორთვა); gp = 0/1 (PORT do MCP) void writePinData (int pin, int value, uint8_t gp) {uint8_t statusGP = 0; თუ (gp == GP0) სტატუსი GP = მიმდინარეValueGP0; else statusGP = მიმდინარეValueGP1; if (მნიშვნელობა == 0) {statusGP & = ~ (B00000001 << (პინი)); // muda o pino para LOW} სხვაგან თუ (მნიშვნელობა == 1) {statusGP | = (B00000001 << (პინი)); // muda o pino para HIGH} if (gp == GP0) currentValueGP0 = statusGP; else currentValueGP1 = სტატუსი GP; // envia os dados para o MCP writeBlockData (gp, statusGP); დაგვიანება (10); }
ნაბიჯი 17: ჩაწერეთBlockData & SetupWiFi
აქ ჩვენ ვგზავნით მონაცემებს MCP23016– ზე i2c ავტობუსის საშუალებით. შემდეგი, ჩვენ ვაკონფიგურირებთ თვისებებს წვდომის წერტილის გასააქტიურებლად. დაბოლოს, ჩვენ დავაკონფიგურირეთ WiFi წვდომის წერტილის რეჟიმში და შევქმენით AP SSID– ით და PASSWORD– ით.
// envia dados para 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 (პორტი); Wire.write (მონაცემები); Wire.endTransmission (); დაგვიანება (10); }
// configura as propriedades para habilitar o 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 მეხსიერებას და ვიძახებთ ღილაკების მდგომარეობის აღდგენის პროცედურას (ჩართვა / გამორთვა).
2. დარეკეთ სხვა ეკრანზე
1. ერთ -ერთი რელეის ON ღილაკზე დაჭერისას ჩვენ ვიზუალურ ცვლილებებს შევიტანთ ღილაკში (მწვანე ბლოკები). WebViewer1. GoToUrl ითხოვს მოთხოვნას ჩვენს ESP01– ზე MR01 / 1 მონაცემების URL– ში მიბმით.
2. ერთ -ერთი რელეს OFF ღილაკზე დაჭერისას ჩვენ ვიზუალურ ცვლილებებს შევიტანთ ღილაკში (მწვანე ბლოკები). WebViewer1. GoToUrl უგზავნის თხოვნას ჩვენს ESP01– ს MR01 / 0 მონაცემების URL– ში მიბმით.
ეს პროცედურა გამოიყენება ღილაკების (რელეების) მდგომარეობის აღსადგენად, რადგან ეკრანის შეცვლისას იგი ბრუნდება შექმნის შაბლონზე.
ყვითელი ბლოკი მეორდება ღილაკების თითოეული წყვილისთვის.
ნაბიჯი 19: ჩამოტვირთეთ
აქ არის პროექტის ფაილები ჩამოსატვირთად:
MIT აპლიკაცია გამომგონებელი 2 პროექტის ფაილი - ჩამოტვირთვა
აპლიკაციის APK დაყენება android– ზე - ჩამოტვირთვა
ჩამოტვირთეთ სხვა ფაილები:
ინო
გირჩევთ:
დაბალი ღირებულების რეომეტრი: 11 ნაბიჯი (სურათებით)
დაბალი ღირებულების რეომეტრი: ამ ინსტრუქციის მიზანია შექმნას დაბალი ღირებულების რეომეტრი, რათა ექსპერიმენტულად აღმოაჩინოს სითხის სიბლანტე. ეს პროექტი შეიქმნა ბრაუნის უნივერსიტეტის კურსდამთავრებულთა და მაგისტრანტთა გუნდის მიერ მექანიკური სისტემების ვიბრაციის კლასში
როგორ ავაშენოთ დაბალი ღირებულების ეკგ მოწყობილობა: 26 ნაბიჯი
როგორ ავაშენოთ დაბალი ღირებულების ეკგ მოწყობილობა: გამარჯობა ყველას! მე მქვია მარიანო და მე ვარ ბიოსამედიცინო ინჟინერი. მე შაბათ -კვირა გავატარე, რათა შემემუშავებინა და განეხორციელებინა დაბალი ღირებულების ეკგ მოწყობილობის პროტოტიპი, რომელიც დაფუძნებულია Arduino დაფაზე, რომელიც დაკავშირებულია Bluetooth– ით Android მოწყობილობასთან (სმარტფონთან ან ტაბლეტთან). Მე ვიქნებოდი
წვრილმანი სახლის დაბალი ღირებულების ავტომატიზაცია Esp8266: 6 საფეხურის გამოყენებით
დაბალი ღირებულების სახლის ავტომატიზაცია Esp8266– ის გამოყენებით: გამარჯობა ყველას, დღეს ამ ინსტრუქციებში მე გაჩვენებთ თუ როგორ მოვამზადე ჩემი სახლის ავტომატიზაცია, როგორც ნაბიჯი ჭკვიანი სახლისკენ ESP 8266 მოდულის გამოყენებით, რომელიც ზოგადად ცნობილია როგორც nodemcu დროის დაკარგვის გარეშე. დავიწყოთ:)
დაბალი ღირებულების MR დემო თამაში: 9 ნაბიჯი
დაბალი ღირებულების MR თამაშის დემო: http://www.bilibili.com/video/av7937721/ (ვიდეო url ჩინეთის მატერიკზე) ხედის გადახედვა: დააყენეთ ნიშნის სურათი ორი ღერძის მფლობელზე , მომხმარებელი შეხედეთ მას მუყაოს , შეგიძლიათ ნახოთ დაფარული მონსტრი ნიშანი, ისინი ესვრიან ერთმანეთს თამაშის სამყაროში. გამოიყენეთ AR, რომ გაარკვიოთ კუთხის ფსონი
გააკეთეთ დაბალი ღირებულების სენსორული სიმღერა წუთებში!: 10 ნაბიჯი (სურათებით)
გააკეთეთ დაბალი ღირებულების სენსორული ბილიკი წუთებში!: ჩემს წინა ინსტრუქციებში მე გაჩვენეთ, თუ როგორ უნდა გააკეთოთ მატარებლის მოდელის განლაგება ავტომატური საფარით. მან გამოიყენა ტრეკის სეგმენტი, სახელწოდებით "სენსორული სიმღერა". საკმაოდ სასარგებლო რამ არის რკინიგზის მოდელის განლაგება. მე შემიძლია გამოვიყენო შემდეგისთვის: დაბლოკვა