সুচিপত্র:
- ধাপ 1: মনে রাখার টিপ
- ধাপ 2: MCP23016
- ধাপ 3: ঠিকানা
- ধাপ 4: কমান্ড
- ধাপ 5: বিভাগ
- ধাপ 6: যোগাযোগের কাঠামো
- ধাপ 7: প্রোগ্রাম
- ধাপ 8: MCP23016
- ধাপ 9: ESP-01
- ধাপ 10: ESP01 মাউন্ট করা
- ধাপ 11: লাইব্রেরি এবং পরিবর্তনশীল
- ধাপ 12: সেটআপ
- ধাপ 13: লুপ
- ধাপ 14: পার্সারডাটা
- ধাপ 15: কনফিগার পোর্ট
- ধাপ 16: WritPinData
- ধাপ 17: WriteBlockData এবং SetupWiFi
- ধাপ 18: অ্যাপ
- ধাপ 19: ডাউনলোড করুন
ভিডিও: ESP01: 19 ধাপ সহ কম খরচে অটোমেশন
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
আজ, আমরা 16 রিলে সহ ESP01 ব্যবহার করে অটোমেশন নিয়ে আলোচনা করব। এটি একটি অতি সস্তা ডিজাইনের মডেল যেখানে আপনি মডিউলগুলিকে গুণ করতে পারেন এবং 128 রিলে পর্যন্ত পেতে পারেন, কারণ এই মাইক্রোকন্ট্রোলারে আটটি পোর্ট এক্সপেন্ডার রাখা সম্ভব।
আমাদের সার্কিটে, আপনার স্মার্টফোনে একটি অ্যাপ্লিকেশন থাকবে যা ESP01 এর সাথে যোগাযোগ করে। এটিতে 16 টি পোর্ট সহ একটি এক্সপেন্ডার থাকবে, প্রতিটি একটি রিলেতে সংযুক্ত থাকবে। আমাদের একটি 3v3 অ্যাডজাস্টেবল সোর্স আছে। অতএব আমরা অ্যান্ড্রয়েড অ্যাপ্লিকেশনের মাধ্যমে ESP01 ব্যবহার করে একটি 16-চ্যানেল রিলে মডিউল নিয়ন্ত্রণ করব, যা আমি আপনার জন্য উপলব্ধ করছি।
ধাপ 1: মনে রাখার টিপ
এটা মনে রাখা গুরুত্বপূর্ণ, আমার বন্ধুরা, আমি এই চিপটি MCP23016 নামে একটি সার্কিটে ব্যবহার করেছি। আপনার জন্য ESP32, ESP8266 এবং ARDUINO এর জন্য IOS EXPANSOR এর ভিডিও দেখাও গুরুত্বপূর্ণ, যেখানে আমি ডিভাইসটি পরীক্ষা করে দেখাই যে এটি এই তিন ধরনের বোর্ডের জন্য কাজ করে।
ধাপ 2: MCP23016
এখানে আমাদের MCP23016 এর একটি ছবি আছে, যা 28 পিনের একটি চিপ। এটি উল্লেখ করা গুরুত্বপূর্ণ যে সেখানে 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> উচ্চ, A1> GND, A0> উচ্চ (মানে 101, তারপর 20 + 5 = 25)
ধাপ 4: কমান্ড
এখানে যোগাযোগের জন্য কমান্ড সহ একটি টেবিল রয়েছে:
ধাপ 5: বিভাগ
GP0 / GP1 - ডেটা পোর্ট রেজিস্টার
দুটি রেজিস্টার রয়েছে যা দুটি জিপিআইও পোর্টে অ্যাক্সেস প্রদান করে।
রেজিস্টার পড়া সেই বন্দরের পিনের অবস্থা প্রদান করে।
বিট = 1> উচ্চ বিট = 0> কম
IODIR0 / IODIR1
দুটি রেজিস্টার আছে যা পিন মোড নিয়ন্ত্রণ করে। (ইনপুট বা আউটপুট)
বিট = 1> ইনপুট বিট = 0> আউটপুট
ধাপ 6: যোগাযোগের কাঠামো
এখানে আমরা চিপের ঠিকানা সম্পর্কে কথা বলি, এবং কমান্ড এবং ডেটা অ্যাক্সেস করি, যা একটি প্রোটোকল যা তথ্য পাঠানোর জন্য করা প্রয়োজন।
ধাপ 7: প্রোগ্রাম
আমরা আরও একটি GPIO ব্যবহার করার জন্য MCP23016 এর সাথে ESP01 যোগাযোগের একটি প্রোগ্রাম করব। এই 16 টি নতুন জিপিআইও যা আমরা 16 টি চ্যানেল রিলে মডিউল নিয়ন্ত্রণ করতে যাচ্ছি।
একটি Android অ্যাপ্লিকেশনের মাধ্যমে ESP01 এ কমান্ড পাঠানো হবে।
ধাপ 8: MCP23016
ধাপ 9: ESP-01
এটি একটি 16-রিলে বোর্ড।
ধাপ 10: ESP01 মাউন্ট করা
ধাপ 11: লাইব্রেরি এবং পরিবর্তনশীল
আমরা i2c যোগাযোগের জন্য দায়ী লাইব্রেরি এবং অ্যাক্সেস পয়েন্ট এবং ওয়েব সার্ভার তৈরির জন্য অন্তর্ভুক্ত করব। আমরা চিপ এবং পোর্টগুলির ঠিকানা নির্ধারণ করি। পরিশেষে, আমরা MCP পিনের মান সংরক্ষণ করতে ভেরিয়েবল সংজ্ঞায়িত করি।
#include // responsável pela comunicação i2c। GP0 0x00 // DATA PORT REGISTER 0 #define GP1 0x01 // DATA PORT REGISTER 1 #define IODIR0 0x06 // I/O নির্দেশক নিবন্ধক 0 MCP uint8_t currentValueGP0 = 0 করুন; uint8_t currentValueGP1 = 0;
ধাপ 12: সেটআপ
আমরা ESP01 আরম্ভ করি এবং পোর্টগুলি কনফিগার করি। আমরা অ্যাক্সেস পয়েন্ট কনফিগার করি এবং সার্ভার আরম্ভ করি।
অকার্যকর সেটআপ () {Serial.begin (9600); বিলম্ব (1000); Wire.begin (0, 2); // ESP01 Wire.setClock (200000); কনফিগারপোর্ট (IODIR0, আউটপুট); কনফিগারপোর্ট (IODIR1, আউটপুট); writeBlockData (GP0, 0x00); writeBlockData (GP1, 0x00); setupWiFi (); // configuração do Access Point server.begin (); // inicializa o server}
ধাপ 13: লুপ
এখানে আমি চেক করি যে কোন ক্লায়েন্ট সার্ভারে সংযুক্ত হয়েছে কিনা। আমরা প্রথম অনুরোধের লাইনটিও পড়েছি। আমরা ম্যানিপুলেশনের জন্য ডেটা বের করি, ডিফল্ট রেসপন্স হেডার সংজ্ঞায়িত করি এবং ক্লায়েন্টকে এই প্রতিক্রিয়া পাঠাই।
অকার্যকর লুপ () {WiFiClient client = server.available (); // Verifica se um cliente foi conectado if (! Client) {return; } স্ট্রিং req = ক্লায়েন্ট ।readStringUntil ('\ r'); ("/MR")! = -1) {parserData (req); // a partir da requisição extrai os dados para manipulação} else {Serial.println ("invalid request"); প্রত্যাবর্তন; } client.flush (); স্ট্রিং s = "HTTP/1.1 200 OK / r / n"; // cabeçalho padrão de resposta client.print (গুলি); // envia a resposta para o cliente বিলম্ব (1); } // শেষ লুপ
ধাপ 14: পার্সারডাটা
অনুরোধ থেকে, আমরা রিলে সম্পর্কিত ডেটা সন্ধান করি। আমরা তখন MCP23016 এ ডেটা পাঠাই।
// a partir da requisição busca os dados referente aos relésvoid parserData (String data) {uint8_t relay = -1; uint8_t জিপি = -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 = data [index+3]-'0'; রিলে = ডেটা [সূচক+4]-'0'; মান = তথ্য [সূচক+6]-'0'; // envia os dados para o MCP23016 // [relay-1] porque o MCP vai de 0-7 os pinos writePinData (রিলে -১, মান, জিপি); }}
ধাপ 15: কনফিগার পোর্ট
আমরা GPIO পিন মোড (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 // 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, o restante como saya void configurePort (uint8_t পোর্ট, uint8_t কাস্টম) {if (custom == INPUT) {writeBlockData (port, 0xFF); } অন্যথায় যদি (কাস্টম == আউটপুট) {writeBlockData (পোর্ট, 0x00); } অন্যথায় {writeBlockData (পোর্ট, কাস্টম); }}
ধাপ 16: WritPinData
কোডের এই অংশে, আমরা একটি কাঙ্ক্ষিত পিনের অবস্থা পরিবর্তন করি এবং MCP- এ ডেটা পাঠাই।
// মুদা ও এস্তাদো দে উম পিনো দেশাজাদো, পাসান্দো কোমো প্যারামেট্রো: // পিন = পিনো দেশাজাদো; মান = 0/1 (চালু/বন্ধ); gp = 0/1 (PORT do MCP) void writePinData (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} if (gp == GP0) currentValueGP0 = statusGP; অন্যথায় currentValueGP1 = statusGP; // envia os dados para o MCP writeBlockData (gp, statusGP); বিলম্ব (10); }
ধাপ 17: WriteBlockData এবং SetupWiFi
এখানে, আমরা i2c বাসের মাধ্যমে MCP23016 এ ডেটা পাঠাই। এরপরে, আমরা অ্যাক্সেস পয়েন্ট সক্ষম করতে বৈশিষ্ট্যগুলি কনফিগার করি। অবশেষে, আমরা অ্যাক্সেস পয়েন্ট মোডের জন্য ওয়াইফাই কনফিগার করেছি এবং SSID এবং পাসওয়ার্ড দিয়ে একটি AP তৈরি করেছি।
// 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); }
// কনফিগারার হিসাবে প্রস্তাবিত প্যারা হাবিলিটারে হে অ্যাক্সেস পয়েন্ট WiFi.softAP ("ESP01_RELAY", "12345678"); }
ধাপ 18: অ্যাপ
অ্যাপ্লিকেশন তৈরি করতে, আমরা MIT App Inventor 2 ব্যবহার করি, যা লিঙ্কের মাধ্যমে অ্যাক্সেস করা যায়:
ai2.appinventor.mit.edu/
অ্যাপ্লিকেশনটিতে দুটি পর্দা রয়েছে যার প্রতিটিতে আট জোড়া বোতাম রয়েছে, যা প্রতিটি রিলেটির অবস্থা নির্দেশ করে।
নিম্নলিখিত কিছু প্রোগ্রামিং ব্লক ব্যবহার করা হয়েছে:
গুরুত্বপূর্ণ: অ্যাক্সেস পয়েন্ট হিসাবে ইএসপির ডিফল্ট আইপি ঠিকানা, 192.168.4.1
1. যখন স্ক্রিন আরম্ভ হয়, আমরা মেমরিতে আইপি সঞ্চয় করি এবং বোতামগুলির অবস্থা পুনরুদ্ধার করার পদ্ধতিটি কল করি (চালু / বন্ধ)।
2. অন্য পর্দায় কল করুন
1. রিলেগুলির একটিতে অন বোতামে ক্লিক করার সময়, আমরা বোতামে দৃশ্যমান পরিবর্তন করব (সবুজ ব্লক)। WebViewer1. GoToUrl ইউআরএলে MR01 / 1 ডেটা লিঙ্ক করে আমাদের ESP01 এর জন্য একটি অনুরোধ করে।
2. রিলেগুলির একটি বন্ধ বোতামটি ক্লিক করার সময়, আমরা বোতামে দৃশ্যমান পরিবর্তন করব (সবুজ ব্লক)। WebViewer1. GoToUrl URL- এ MR01 / 0 ডেটা লিঙ্ক করে আমাদের ESP01- এর কাছে একটি অনুরোধ করে।
এই পদ্ধতিটি বোতামের অবস্থা (রিলে) পুনরুদ্ধার করতে ব্যবহৃত হয়, কারণ পর্দা পরিবর্তন করার সময়, এটি তৈরি প্যাটার্নে ফিরে আসে।
প্রতিটি বোতাম জোড়াগুলির জন্য হলুদ ব্লক পুনরাবৃত্তি করে।
ধাপ 19: ডাউনলোড করুন
এখানে ডাউনলোডের জন্য প্রকল্প ফাইল রয়েছে:
এমআইটি অ্যাপ ইনভেন্টর 2 প্রকল্প ফাইল - ডাউনলোড করুন
অ্যান্ড্রয়েডে ইনস্টল করার জন্য অ্যাপ্লিকেশন APK - ডাউনলোড করুন
অন্যান্য ফাইল ডাউনলোড করুন:
পিডিএফ
আইএনও
প্রস্তাবিত:
কম খরচে রিওমিটার: 11 টি ধাপ (ছবি সহ)
কম খরচে রিওমিটার: এই নির্দেশের উদ্দেশ্য হল পরীক্ষামূলকভাবে তরলের সান্দ্রতা খুঁজে পেতে কম খরচে রিওমিটার তৈরি করা। এই প্রকল্পটি ব্রাউন ইউনিভার্সিটির আন্ডারগ্র্যাড এবং গ্র্যাজুয়েট ছাত্রদের একটি দল দ্বারা তৈরি করা হয়েছিল যান্ত্রিক সিস্টেমের কম্পন শ্রেণীতে।
কিভাবে কম খরচে ইসিজি ডিভাইস তৈরি করবেন: 26 টি ধাপ
কিভাবে কম খরচে ইসিজি ডিভাইস তৈরি করবেন: হ্যালো সবাই! আমার নাম মারিয়ানো এবং আমি একজন বায়োমেডিক্যাল ইঞ্জিনিয়ার। আমি অ্যান্ড্রয়েড ডিভাইসে (স্মার্টফোন বা ট্যাবলেট) ব্লুটুথের মাধ্যমে সংযুক্ত আরডুইনো বোর্ডের উপর ভিত্তি করে কম খরচে ইসিজি ডিভাইসের একটি প্রোটোটাইপ ডিজাইন এবং উপলব্ধি করার জন্য কিছু সাপ্তাহিক ছুটি কাটিয়েছি। আমি করবো
GPSDO YT, ডিসিপ্লিনেড অসিলেটর 10Mhz রেফারেন্স ফ্রিকোয়েন্সি। কম খরচে. সঠিক: 3 ধাপ
GPSDO YT, ডিসিপ্লিনেড অসিলেটর 10Mhz রেফারেন্স ফ্রিকোয়েন্সি। কম খরচে. সঠিক: ************************************************* ******************************** স্টপ স্টপ স্টপ স্টপ স্টপ স্টপ স্টপ স্টপ এটি একটি অচল প্রকল্প। নতুন 2x16 এলসিডি ডিসপ্লে সংস্করণ এখানে উপলব্ধ: https: //www.instructables.com/id
DIY কম খরচে হোম অটোমেশন Esp8266: 6 ধাপ ব্যবহার করে
Esp8266 ব্যবহার করে DIY কম খরচে হোম অটোমেশন: হাই সবাই, আজ এই নির্দেশাবলীতে আমি আপনাকে দেখাবো কিভাবে আমি একটি স্মার্ট হোমের দিকে একটি ইএসপি 8266 মডিউল ব্যবহার করে আমার নিজের বাড়ির অটোমেশন প্রস্তুত করেছি যা সাধারণত নোডেমকু নামে পরিচিত তাই সময় নষ্ট না করে চল শুরু করি:)
কথোপকথন অটোমেশন -- Arduino থেকে অডিও -- ভয়েস নিয়ন্ত্রিত অটোমেশন -- এইচসি - 05 ব্লুটুথ মডিউল: 9 ধাপ (ছবি সহ)
কথোপকথন অটোমেশন || Arduino থেকে অডিও || ভয়েস নিয়ন্ত্রিত অটোমেশন || এইচসি - 05 ব্লুটুথ মডিউল: …………………………. আরো ভিডিও পেতে দয়া করে আমার ইউটিউব চ্যানেলে সাবস্ক্রাইব করুন …. …. এই ভিডিওতে আমরা একটি টকটিভ অটোমেশন তৈরি করেছি .. যখন আপনি মোবাইলের মাধ্যমে ভয়েস কমান্ড পাঠাবেন তখন এটি হোম ডিভাইস চালু করবে এবং প্রতিক্রিয়া পাঠাবে i