সুচিপত্র:

উত্পাদন পরিচালনার জন্য ওয়াইফাই প্রদর্শন: 6 টি ধাপ
উত্পাদন পরিচালনার জন্য ওয়াইফাই প্রদর্শন: 6 টি ধাপ

ভিডিও: উত্পাদন পরিচালনার জন্য ওয়াইফাই প্রদর্শন: 6 টি ধাপ

ভিডিও: উত্পাদন পরিচালনার জন্য ওয়াইফাই প্রদর্শন: 6 টি ধাপ
ভিডিও: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #5 2024, জুলাই
Anonim
উৎপাদন পরিচালনার জন্য ওয়াইফাই প্রদর্শন
উৎপাদন পরিচালনার জন্য ওয়াইফাই প্রদর্শন

আমি IOT এবং একক বোর্ড কম্পিউটার সম্পর্কে সামান্য বিট সিরিজ।

আমি সবসময় শখ এবং মজা প্রকল্প (বাস্তব উৎপাদন এবং উত্পাদন) এর বাইরে এটি ব্যবহার করতে চাই।

এই নির্দেশযোগ্যটি ইএসপি নোডেমকু সহ 4 ডিজিটের 7-সেগমেন্ট ওয়াইফাই ডিসপ্লে তৈরি করতে যাচ্ছে যা প্রতি ঘন্টায় উৎপাদন ইনপুট দেখায়। আমি ইলেকট্রনিক্স উত্পাদন শিল্পে কাজ করছি, যেখানে আমরা উৎপাদন মেঝে ইনপুট, আউটপুট এবং প্রক্রিয়া নিরীক্ষণ ও নিয়ন্ত্রণ করতে ম্যানুফ্যাকচারিং এক্সিকিউশন সিস্টেম (এমইএস) ব্যবহার করি। এই প্রকল্পে আমি ছোট ডিসপ্লে ইউনিট তৈরি করছি যা লাইন, শিফট এবং ঘন্টা অনুযায়ী উৎপাদন ইনপুট পরিমাণ দেখাবে।

প্রযুক্তিগতভাবে এই প্রকল্পটি একটি ইউটিউব সাবস্ক্রাইবার কাউন্ট ডিসপ্লের অনুরূপ, যেখানে আমরা অনলাইন থেকে API/HTTP রেসপন্স ব্যবহার করি।

ধাপ 1: ব্যবহৃত যন্ত্রাংশ এবং সরঞ্জামগুলি:

ব্যবহৃত যন্ত্রাংশ এবং সরঞ্জাম
ব্যবহৃত যন্ত্রাংশ এবং সরঞ্জাম

ব্যবহৃত হার্ডওয়্যার যন্ত্রাংশ:

  1. ইএসপি নোডেমকু
  2. TM1637 4 অঙ্কের ঘড়ি প্রদর্শন
  3. পুশ সুইচ
  4. 10k প্রতিরোধক
  5. কয়েকটি জাম্পার তার

ব্যবহৃত সফটওয়্যার টুল:

  1. Arduino IDE
  2. পিএইচপি/অ্যাপাচি ওয়েব সার্ভারের জন্য Xampp

Arduino লাইব্রেরি ব্যবহৃত:

1. Tzapu দ্বারা ওয়াইফাই ম্যানেজার এবং আমি আমার কাস্টম fileds (wifimanager) জন্য কাস্টমাইজড

2. ফ্ল্যাশ মেমরিতে আমার কাস্টম মান সংরক্ষণের জন্য ESP_EEPROM

3. সেভেন সেগমেন্ট 161637 ডিসপ্লের জন্য

ধাপ 2: কাস্টমাইজিং ওয়াইফাই ম্যানেজার

ওয়াইফাই ম্যানেজার কাস্টমাইজ করা
ওয়াইফাই ম্যানেজার কাস্টমাইজ করা

এই প্রথম আমি প্রথমে ওয়াইফাই ম্যানেজার ইনস্টল করেছি এবং তারপর আমি ওয়াইফাই ম্যানেজার ফোল্ডারটি অনুলিপি করেছি এবং আবার একইভাবে আরডুইনো লাইব্রেরি ফোল্ডারে পাস করেছি, তারপরে নাম পরিবর্তন করে ওয়াইফাই ম্যানেজার_কাস্টম।

ফোল্ডার রুট ডিরেক্টরি বেশিরভাগ পছন্দ

C: / ব্যবহারকারী / আপনার কম্পিউটারের নাম / নথি / Arduino / লাইব্রেরি

তারপর আমি wifimanager_custom ফোল্ডারটি খুললাম এবং হেডার.cpp ফাইলটি wifimanager_custom এর মতোই নামকরণ করলাম, হেডার এবং.cpp ফাইলগুলিতেও একই যোগ করা হল।

এবং হেডারে আমার কাস্টম ফর্ম এবং বোতাম যুক্ত করা হয়েছে।

HTTP_PORTAL_OPTIONS প্রোগ্রামে আমি মেনুর জন্য আমার বোতাম ফর্ম যোগ করেছি।

এবং লাইন এবং শিফটে প্রবেশের জন্য নতুন ফর্ম যোগ করা হয়েছে। আমি এই ফর্মটি সহজ পাঠ্য ফর্ম হিসাবে তৈরি করেছি।

এর পরে আমরা.cpp ফাইলে এই ফর্মগুলির জন্য অ্যাকশন ফাংশন তৈরি করতে যাচ্ছি, এর জন্য আমাদের হেডার ফাইলে ফাংশন ডিক্লারেশন করতে হবে।

/ * আমার কাস্টম ফাংশন */

অকার্যকর হ্যান্ডেল কাস্টমফর্ম (); অকার্যকর হ্যান্ডেল কাস্টমসেভ ();

আমি হেডার ফাইলে আমার কাস্টম ফাংশন ঘোষণা করেছি। যে, হেডারে আমাদের কাজ শেষ হয়েছে আমাদের ফাংশন ও কর্ম তৈরি করতে.cpp ফাইল নিয়ে যেতে হবে।

ধাপ 3: ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন

ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন
ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন
ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন
ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন
ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন
ফর্ম অ্যাকশনের জন্য কাস্টম ফাংশন

এখন আমরা আমাদের wifimanager_custom.cpp ফাইলটি খুলি।

এবং আমাদের ফর্মটি পোস্ট করার সময় আমাদের ফাংশনগুলিকে কল করার জন্য আমাদের http প্রতিক্রিয়া হ্যান্ডলার যুক্ত করতে হবে।

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // আমার কাস্টম হ্যান্ডেল

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // আমার কাস্টম হ্যান্ডেল

ফর্ম পোস্ট করা হলে এগুলি আমাদের কাস্টম ফাংশনগুলিকে কল করবে।

1. HandleCustomForm ()-> লাইন এবং শিফট ইনপুট এবং সেভ বাটনের জন্য আমাদের কাস্টম ফর্ম সহ একটি পৃষ্ঠা তৈরি করবে।

2. handleCustomSave ()-> এই ফাংশনটি ফর্মের মান পাবে এবং ফ্ল্যাশ মেমরি লোকেশন 0 (লাইন) এবং 50 (শিফট) এ সংরক্ষণ করবে।

ধাপ 4: সংযোগ এবং প্রধান প্রোগ্রাম

সংযোগ এবং প্রধান প্রোগ্রাম
সংযোগ এবং প্রধান প্রোগ্রাম

সংযোগগুলি খুব সহজ..

সংযোগ এবং তারের:

nodemcu TM1637 প্রদর্শন

3.3v ---- ভিসি

G ---- Gnd

D2 ---- CLK

ডি 3 ----- ডিআইও

nodemcu- পুশ সুইচ

- ধাক্কা বাটন পিন D8 এর সাথে +5V - 10K প্রতিরোধক স্থল থেকে D8 পিনের সাথে সংযুক্ত

আমরা আমাদের ওয়াইফাই ম্যানেজার কাস্টমাইজ করা শেষ করেছি। এখন আমাদের প্রধান প্রোগ্রাম তৈরি করতে হবে।

1. আমাদের ওয়াইফাই ম্যানেজার ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ করার জন্য সর্বশেষ ব্যবহৃত শংসাপত্রের সাথে সংযোগ স্থাপন করবে, যদি এটি ব্যর্থ হয় তবে এটি একটি অটোকানেক্টএপি ওয়াইফাই সার্ভার খুলে দেয়।

2. তারপর এটি প্রধান লুপে প্রবেশ করবে।

আমাদের প্রধান লুপ দুটি অংশ থাকবে। কনফিগার সাবরুটিন যখন কনফিগার করার জন্য আমাদের ডিমান্ড মোড AP তে লাইন পরিবর্তন, স্থানান্তর বা কোন ওয়াইফাই শংসাপত্র যোগ করতে হবে। D8 পিনের সাথে সংযুক্ত একটি পুশ বোতাম চাপলে এটি বলা হবে।

অকার্যকর লুপ () {

config_loop ();

}

অকার্যকর config_loop () {Serial.println ("");

Serial.println ("কনফিগ বাটন স্ট্যাটাসের জন্য অপেক্ষা করা হচ্ছে …");

//display.print ("অপেক্ষা");

যদি (ডিজিটাল রিড (TRIGGER_PIN) == উচ্চ)

{

display.print ("Conf"); // ওয়াইফাই ম্যানেজার

// স্থানীয় পরিচয় একবার এর ব্যবসা হয়ে গেলে, WiFiManager wifiManager এর আশেপাশে রাখার দরকার নেই;

// রিসেট সেটিংস - পরীক্ষার জন্য

//wifiManager.resetSettings ();

// কনফিগারেশন পোর্টাল বন্ধ না হওয়া পর্যন্ত সময়সীমা সেট করে // এটি পুনরায় চেষ্টা করার জন্য বা সেকেন্ডে ঘুমাতে // দরকারী

//wifiManager.setTimeout (120);

// এটি নির্দিষ্ট নাম দিয়ে একটি অ্যাক্সেস পয়েন্ট শুরু করে

// এখানে "AutoConnectAP" // এবং কনফিগারেশনের অপেক্ষায় একটি ব্লকিং লুপে যায়

// এটি ছাড়া AP এ SDK 1.5 এর সাথে সঠিকভাবে কাজ করতে পারে না, অন্তত 1.5.1 //WiFi.mode (WIFI_STA) এ আপডেট করুন;

যদি (! বিলম্ব (3000); // পুনরায় সেট করুন এবং আবার চেষ্টা করুন, অথবা হয়তো এটি গভীর ঘুম ESP.reset (); বিলম্ব (5000); }}

//Serial.println("Button status False. Back to Main loop "); //display.print ("প্রধান লুপ"); //display.clear ();

}

দ্বিতীয়টি হবে বিশেষ সার্ভার থেকে HTTP রেসপন্স পাওয়া এবং ডিসপ্লেতে ইনপুট পরিমাণ প্রদর্শন করা।

এর জন্য প্রথমে আমাদের ESP এর ফ্ল্যাশ স্টোরেজ (ঠিকানা 0-> লাইন, 50-> শিফট) থেকে আমাদের লাইন এবং শিফট ডিটেইলস পেতে হবে।

EEPROM. শুরু (100); // eeprom স্টোরেজ EEPROM.get (0, লাইন); // ঠিকানা 0 থেকে মান পান

EEPROM.get (50, shift); // ঠিকানা থেকে মূল্য পান 50

তারপর আমাদের এই লাইনটি পাস করতে হবে এবং ইনপুট ও আউটপুটের মান পেতে আমাদের http সার্ভারে বিস্তারিত স্থানান্তর করতে হবে।

স্ট্রিং Base_url = "সরানো"; // আমার বেস urlHTTPClient http; // ক্লাস HTTPClient এর অবজেক্ট

স্ট্রিং URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // এটি সমস্ত http প্রতিক্রিয়া স্ট্রিং মুদ্রণ করবে;

যদি আপনি চান যে সমস্ত পাঠ্য তাহলে আপনার কাজ এখানেই শেষ হয়েছে আমরা সরাসরি এটি tm1637 ডিসপ্লেতে প্রদর্শন করতে পারি।

display.print (http.getString ());

কিন্তু আমি সব টেক্সট দেখাতে চাই না, কারণ এতে ইনপুট থাকে, json ফর্মে আউটপুট থাকে এবং এর ডাটাবেস এবং ইত্যাদি সম্পর্কে অন্য কিছু সাধারণ টেক্সট থাকে।

তাই প্রথমে আমি সাবস্ট্রিং () ফাংশন ব্যবহার করে প্রতিক্রিয়া স্ট্রিং থেকে সেই সাধারণ পাঠ্যটি সরিয়ে দিয়েছি।

আমি সাধারণ পাঠ্যের দৈর্ঘ্য গণনা করেছি এবং এটি পরীক্ষা করেছি।

যদি (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (bufferSize);

// JsonObject & root = doc.parseObject (http.getString ());

স্ট্রিং json_string = http.getString ()। সাবস্ট্রিং (121); /* এটি আমার সাধারণ পাঠ্যের অফসেট যদি আপনার প্রতিক্রিয়াতে এমন কিছু না থাকে তবে আপনি এই কোডটি সরাতে পারেন; */

// সিরিয়াল.প্রিন্টলন (জসন_স্ট্রিং);

DeserializationError error = deserializeJson (root, json_string);

// JsonObject & root = jsonBuffer.parseObject (http.getString ());

যদি (ত্রুটি)

{Serial.print (F ("deserializeJson () ব্যর্থ:"));

Serial.println (error.c_str ());

প্রত্যাবর্তন;

}

অন্য {

const char* input = root ["input"];

const char* output = root ["output"];

সিরিয়াল.প্রিন্ট ("ইনপুট:");

Serial.println (ইনপুট);

সিরিয়াল.প্রিন্ট ("আউটপুট:");

Serial.println (আউটপুট);

display.print (".. ইন..");

display.clear (); // ডিসপ্লে সাফ করুন

ডিসপ্লে.প্রিন্ট (ইনপুট); // মুদ্রণ কিছু সংখ্যা

}

অর্থাৎ আমাদের মূল কর্মসূচি শেষ হয়েছে।

ধাপ 5: ওয়েব সার্ভার তৈরি করা

ওয়েব সার্ভার তৈরি করা হচ্ছে
ওয়েব সার্ভার তৈরি করা হচ্ছে
ওয়েব সার্ভার তৈরি করা হচ্ছে
ওয়েব সার্ভার তৈরি করা হচ্ছে

আমি আমার ওয়েব সার্ভিস এবং পিএইচপি কোড হিসাবে xampp ব্যবহার করে সঠিক পরিমাণ পেতে আমার এসকিউএল ডাটাবেস থেকে ডেটা পেতে।

কিন্তু আমি এর সব মূল কোড শেয়ার করতে পারছি না। কারণ এটি আমার কোম্পানির গোপনীয়তা। কিন্তু আমি দেখাব কিভাবে একটি ওয়েব সার্ভার তৈরি করতে হয়, ডামি স্ট্যাটিক ইনপুট এবং আউটপুট পরিমাণ দেখায়।

এর জন্য আপনার যে কোন ওয়েব হোস্টের প্রয়োজন হবে, আমি এখানে xampp আমার হোস্ট হিসাবে ব্যবহার করছি।

আপনি এখানে xampp ডাউনলোড করতে পারেন।

xampp ইনস্টল করুন … যদি আপনার স্পষ্ট নির্দেশের প্রয়োজন হয় তবে আপনি এই লিঙ্কটি ব্যবহার করতে পারেন।

Xampp ইনস্টল করার পর আপনাকে আপনার রুট ডিরেক্টরিতে যেতে হবে।

সি: / xampp / htdocs

আপনার সমস্ত পিএইচপি প্রোগ্রাম এই মূলের ভিতরে থাকা উচিত।

আমি esp_api.php নামে আমার পেজ তৈরি করেছি

এটি আমার পিএইচপি কোড। এখানে আমি শুধু ইনপুট এবং আউটপুটের স্ট্যাটিক মান প্রদর্শন করছি;

$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];

প্রতিধ্বনি ("myString"); // সাধারণ পাঠ্য

যদি ($ line == 'a0401' এবং $ shift = 'dd') {$ result ['input'] = 100; $ ফলাফল ['আউটপুট'] = 99; }

অন্যথায় {$ result ['input'] = 200; $ ফলাফল ['আউটপুট'] = 199; }

$ myObj-> ইনপুট = "। $ ফলাফল ['ইনপুট']।";

$ myObj-> আউটপুট = "। $ ফলাফল ['আউটপুট']।";

$ myJSON = json_encode ($ myObj);

প্রতিধ্বনি $ myJSON;

এখন আমাদের HTTP রেসপন্স API শেষ হয়েছে।

আমাদের http বেস url এর মত হবে

you_ip_address/esp_api.php

আপনি দ্বারা আপনার API প্রতিক্রিয়া পাঠ্য পরীক্ষা করতে পারেন

localhost/esp_api.php? line = a0401 & shift = dd

এখানে আমি a0401 হিসাবে লাইন উল্লেখ করেছি এবং ডিডি হিসাবে স্থানান্তর করেছি।

ধাপ 6: চূড়ান্ত পদক্ষেপ !

শেষ ধাপ!!!
শেষ ধাপ!!!
শেষ ধাপ!!!
শেষ ধাপ!!!
শেষ ধাপ!!!
শেষ ধাপ!!!

বেস ইউআরএলে আপনার কম্পিউটারের আইপি ঠিকানা লিখুন

স্ট্রিং Base_url = "সরানো"; // আপনার বেস url

এবং আপনার ESP nodemcu এ আপলোড করুন। একবার আপনি আপনার মোবাইল বা ল্যাপটপ থেকে আপনার ওয়াইফাই চালু করলে, আপনি অটোকনেক্টএপি নামে নেটওয়ার্ক পাবেন। এর সাথে সংযোগ করুন এবং আপনার শংসাপত্র এবং লাইন কনফিগারেশন লিখুন।

তারপরে আপনার ডিভাইসটি পুনরায় সেট করুন এবং আপনার নেটওয়ার্কে চেক করুন একবার এটি সংযুক্ত হয়ে গেলে প্রতিটি কাজ সম্পন্ন হয়।

আপনি দেখতে পাবেন ইনপুট ডিসপ্লেতে প্রদর্শিত হয়েছে।

আপনি যদি কোন লাইন বা ওয়াইফাই ক্রেডেনশিয়াল পরিবর্তন করতে চান তবে আপনি কয়েক সেকেন্ডের জন্য পুশ সুইচ টিপতে পারেন, ডিসপ্লে শো কনফাই দেখায়।

আপনি দাবি মোডে প্রবেশ করেছেন। আপনি ডিভাইস পরিবর্তন এবং রিসেট করতে পারেন।

তার নির্দেশের মূল মটো আপনাকে দেখানোর জন্য কিভাবে আমরা আমাদের শখ এবং মজাদার প্রকল্পগুলি বাস্তব উৎপাদন ও উৎপাদন এলাকায় ব্যবহার করতে পারি এবং প্রদর্শন করতে পারি

প্রস্তাবিত: