ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার
ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার
IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
Espressif Systems জুন 12, 2023
স্পেসিফিকেশন
- পণ্য: ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার
- প্রস্তুতকারক: Espressif সিস্টেম
- তারিখ: জুন 12, 2023
পণ্য ব্যবহারের নির্দেশাবলী
প্রস্তুতি
ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি
IoT এর ধারণা এবং আর্কিটেকচারের সাথে পরিচিত। এইটা সাহায্য করবে
আপনি বুঝতে পারছেন কিভাবে ডিভাইসটি বৃহত্তর IoT ইকোসিস্টেমে ফিট করে
এবং স্মার্ট হোমে এর সম্ভাব্য অ্যাপ্লিকেশন।
IoT প্রকল্পের পরিচিতি এবং অনুশীলন
এই বিভাগে, আপনি সাধারণ IoT প্রকল্পগুলি সম্পর্কে শিখবেন,
সাধারণ IoT ডিভাইসের মৌলিক মডিউল, মৌলিক মডিউল সহ
ক্লায়েন্ট অ্যাপ্লিকেশন, এবং সাধারণ IoT ক্লাউড প্ল্যাটফর্মের। এটা হবে
আপনার বোঝার এবং তৈরি করার জন্য আপনাকে একটি ভিত্তি প্রদান করে
নিজস্ব IoT প্রকল্প।
অনুশীলন: স্মার্ট লাইট প্রকল্প
এই অনুশীলন প্রকল্পে, আপনি কীভাবে একটি স্মার্ট তৈরি করবেন তা শিখবেন
ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার ব্যবহার করে আলো। প্রকল্পের কাঠামো,
ফাংশন, হার্ডওয়্যার প্রস্তুতি, এবং উন্নয়ন প্রক্রিয়া হবে
বিস্তারিত ব্যাখ্যা করা হয়েছে।
প্রকল্প কাঠামো
প্রকল্পটি সহ বিভিন্ন উপাদান নিয়ে গঠিত
ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার, LEDs, সেন্সর এবং একটি ক্লাউড
ব্যাকএন্ড
প্রকল্পের কার্যাবলী
স্মার্ট আলো প্রকল্প আপনাকে উজ্জ্বলতা নিয়ন্ত্রণ করতে দেয় এবং
একটি মোবাইল অ্যাপের মাধ্যমে দূরবর্তীভাবে এলইডির রঙ বা web
ইন্টারফেস
হার্ডওয়্যার প্রস্তুতি
প্রকল্পের জন্য প্রস্তুত করার জন্য, আপনাকে সংগ্রহ করতে হবে
প্রয়োজনীয় হার্ডওয়্যার উপাদান, যেমন ESP32-C3 ওয়্যারলেস
অ্যাডভেঞ্চার বোর্ড, LEDs, প্রতিরোধক, এবং একটি পাওয়ার সাপ্লাই।
উন্নয়ন প্রক্রিয়া
উন্নয়ন প্রক্রিয়া উন্নয়ন স্থাপন জড়িত
পরিবেশ, LEDs নিয়ন্ত্রণ করতে কোড লেখা, সংযোগ
ক্লাউড ব্যাকএন্ড, এবং স্মার্টের কার্যকারিতা পরীক্ষা করা
আলো
ইএসপি রেইনমেকারের পরিচিতি
ইএসপি রেইনমেকার আইওটি বিকাশের জন্য একটি শক্তিশালী কাঠামো
ডিভাইস এই বিভাগে, আপনি ESP RainMaker কি এবং তা শিখবেন
কিভাবে এটা আপনার প্রকল্প বাস্তবায়ন করা যেতে পারে.
ESP RainMaker কি?
ESP RainMaker হল একটি ক্লাউড-ভিত্তিক প্ল্যাটফর্ম যা একটি সেট প্রদান করে
IoT ডিভাইস তৈরি এবং পরিচালনার জন্য সরঞ্জাম এবং পরিষেবা।
ইএসপি রেইনমেকারের বাস্তবায়ন
এই বিভাগে জড়িত বিভিন্ন উপাদান ব্যাখ্যা
দাবি পরিষেবা সহ ESP RainMaker বাস্তবায়ন করা,
রেইনমেকার এজেন্ট, ক্লাউড ব্যাকএন্ড এবং রেইনমেকার ক্লায়েন্ট।
অনুশীলন: ইএসপি রেইনমেকারের সাথে বিকাশের জন্য মূল পয়েন্টগুলি
এই অনুশীলন বিভাগে, আপনি মূল পয়েন্টগুলি সম্পর্কে শিখবেন
ESP RainMaker এর সাথে বিকাশ করার সময় বিবেচনা করুন। এই ডিভাইস অন্তর্ভুক্ত
দাবি, ডেটা সিঙ্ক্রোনাইজেশন এবং ব্যবহারকারী ব্যবস্থাপনা।
ESP RainMaker এর বৈশিষ্ট্য
ESP RainMaker ব্যবহারকারী ব্যবস্থাপনা, শেষের জন্য বিভিন্ন বৈশিষ্ট্য অফার করে
ব্যবহারকারী, এবং প্রশাসক। এই বৈশিষ্ট্যগুলি সহজ ডিভাইসের জন্য অনুমতি দেয়
সেটআপ, রিমোট কন্ট্রোল এবং পর্যবেক্ষণ।
ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা
এই বিভাগে একটি ওভার উপলব্ধ করা হয়view ESP-IDF (Espressif IoT
ডেভেলপমেন্ট ফ্রেমওয়ার্ক), যা অফিসিয়াল ডেভেলপমেন্ট ফ্রেমওয়ার্ক
ESP32-ভিত্তিক ডিভাইসের জন্য। এটি এর বিভিন্ন সংস্করণ ব্যাখ্যা করে
ইএসপি-আইডিএফ এবং কীভাবে বিকাশের পরিবেশ সেট আপ করবেন।
হার্ডওয়্যার এবং ড্রাইভার উন্নয়ন
ESP32-C3 এর উপর ভিত্তি করে স্মার্ট লাইট পণ্যের হার্ডওয়্যার ডিজাইন
এই বিভাগটি স্মার্ট আলোর হার্ডওয়্যার ডিজাইনের উপর দৃষ্টি নিবদ্ধ করে
ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চারের উপর ভিত্তি করে পণ্য। এটা কভার
বৈশিষ্ট্য এবং স্মার্ট আলো পণ্য রচনা, সেইসাথে
ESP32-C3 কোর সিস্টেমের হার্ডওয়্যার ডিজাইন।
স্মার্ট লাইট পণ্যের বৈশিষ্ট্য এবং রচনা
এই উপধারাটি যে বৈশিষ্ট্য এবং উপাদানগুলি তৈরি করে তা ব্যাখ্যা করে
স্মার্ট আলো পণ্য আপ. এটি বিভিন্ন কার্যকারিতা নিয়ে আলোচনা করে
এবং স্মার্ট লাইট তৈরির জন্য ডিজাইন বিবেচনা।
ESP32-C3 কোর সিস্টেমের হার্ডওয়্যার ডিজাইন
ESP32-C3 কোর সিস্টেমের হার্ডওয়্যার ডিজাইনে পাওয়ার রয়েছে
সরবরাহ, পাওয়ার-অন সিকোয়েন্স, সিস্টেম রিসেট, SPI ফ্ল্যাশ, ঘড়ির উৎস,
এবং আরএফ এবং অ্যান্টেনা বিবেচনা। এই উপধারা প্রদান করে
এই দিকগুলির উপর বিস্তারিত তথ্য।
FAQ
প্রশ্নঃ ইএসপি রেইনমেকার কি?
উত্তর: ইএসপি রেইনমেকার একটি ক্লাউড-ভিত্তিক প্ল্যাটফর্ম যা সরঞ্জাম সরবরাহ করে
এবং IoT ডিভাইস তৈরি এবং পরিচালনার জন্য পরিষেবা। এটি সরলীকরণ করে
উন্নয়ন প্রক্রিয়া এবং সহজ ডিভাইস সেটআপ জন্য অনুমতি দেয়, দূরবর্তী
নিয়ন্ত্রণ, এবং পর্যবেক্ষণ।
প্রশ্নঃ আমি কিভাবে উন্নয়নের পরিবেশ স্থাপন করতে পারি
ESP32-C3?
উত্তর: ESP32-C3 এর জন্য ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করতে আপনার প্রয়োজন
ইএসপি-আইডিএফ (এসপ্রেসিফ আইওটি ডেভেলপমেন্ট ফ্রেমওয়ার্ক) ইনস্টল করতে এবং
প্রদত্ত নির্দেশাবলী অনুযায়ী এটি কনফিগার করুন। ESP-IDF হল
ESP32-ভিত্তিক ডিভাইসের জন্য অফিসিয়াল ডেভেলপমেন্ট ফ্রেমওয়ার্ক।
প্রশ্ন: ইএসপি রেইনমেকারের বৈশিষ্ট্যগুলি কী কী?
উত্তর: ESP RainMaker ব্যবহারকারী সহ বিভিন্ন বৈশিষ্ট্য অফার করে
ব্যবস্থাপনা, শেষ ব্যবহারকারী বৈশিষ্ট্য, এবং প্রশাসক বৈশিষ্ট্য। ইউজার ম্যানেজমেন্ট
সহজ ডিভাইস দাবি এবং ডেটা সিঙ্ক্রোনাইজেশনের জন্য অনুমতি দেয়। শেষ ব্যবহারকারী
বৈশিষ্ট্যগুলি একটি মোবাইল অ্যাপের মাধ্যমে ডিভাইসের রিমোট কন্ট্রোল সক্ষম করে বা
web ইন্টারফেস. অ্যাডমিন বৈশিষ্ট্যগুলি ডিভাইস পর্যবেক্ষণের জন্য সরঞ্জাম সরবরাহ করে
এবং ব্যবস্থাপনা।
ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার
IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
Espressif Systems জুন 12, 2023
বিষয়বস্তু
আমি প্রস্তুতি
1
1 IoT পরিচিতি
3
1.1 IoT এর আর্কিটেকচার। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 স্মার্ট হোমে আইওটি অ্যাপ্লিকেশন। . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 IoT প্রকল্পের পরিচিতি এবং অনুশীলন
9
2.1 সাধারণ IoT প্রকল্পগুলির পরিচিতি৷ . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 সাধারণ IoT ডিভাইসের জন্য মৌলিক মডিউল। . . . . . . . . . . . . . . . . 9
2.1.2 ক্লায়েন্ট অ্যাপ্লিকেশনের মৌলিক মডিউল। . . . . . . . . . . . . . . . . . . 10
2.1.3 সাধারণ IoT ক্লাউড প্ল্যাটফর্মগুলির পরিচিতি৷ . . . . . . . . . . . . . 11
2.2 অনুশীলন: স্মার্ট লাইট প্রকল্প। . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 প্রকল্পের কাঠামো। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 প্রকল্পের কার্যাবলী। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 হার্ডওয়্যার প্রস্তুতি। . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 উন্নয়ন প্রক্রিয়া। . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 ইএসপি রেইনমেকারের ভূমিকা
19
3.1 ইএসপি রেইনমেকার কি? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 ইএসপি রেইনমেকারের বাস্তবায়ন। . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 পরিষেবা দাবি করা . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 রেইনমেকার এজেন্ট। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 ক্লাউড ব্যাকএন্ড . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 রেইনমেকার ক্লায়েন্ট। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 অনুশীলন: ইএসপি রেইনমেকারের সাথে বিকাশের জন্য মূল পয়েন্টগুলি। . . . . . . . . . . . 25
3.4 ইএসপি রেইনমেকারের বৈশিষ্ট্য। . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 ব্যবহারকারী ব্যবস্থাপনা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 শেষ ব্যবহারকারীর বৈশিষ্ট্য। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 অ্যাডমিন বৈশিষ্ট্য। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 উন্নয়ন পরিবেশ স্থাপন
31
4.1 ESP-IDF ওভারview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 ESP-IDF সংস্করণ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 ESP-IDF গিট ওয়ার্কফ্লো। . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 একটি উপযুক্ত সংস্করণ নির্বাচন করা। . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 ওভারview ESP-IDF SDK ডিরেক্টরির। . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা। . . . . . . . . . . . . . . . . 38 4.2.1 লিনাক্সে ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা। . . . . . . . 38 4.2.2 Windows-এ ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা। . . . . . 40 4.2.3 Mac-এ ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা। . . . . . . . . 45 4.2.4 VS কোড ইনস্টল করা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 তৃতীয় পক্ষের উন্নয়ন পরিবেশের ভূমিকা। . . . . . . . 46 4.3 ESP-IDF কম্পাইলেশন সিস্টেম। . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 কম্পাইলেশন সিস্টেমের মৌলিক ধারণা। . . . . . . . . . . . . . . . . . 47 4.3.2 প্রকল্প File গঠন। . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 কম্পাইলেশন সিস্টেমের ডিফল্ট বিল্ড নিয়ম। . . . . . . . . . . . . 50 4.3.4 সংকলন স্ক্রিপ্টের ভূমিকা। . . . . . . . . . . . . . . . . . 51 4.3.5 কমন কমান্ডের ভূমিকা। . . . . . . . . . . . . . . . . . . 52 4.4 অনুশীলন: সংকলন প্রাক্তনampলে প্রোগ্রাম "ব্লিঙ্ক"। . . . . . . . . . . . . . . . . . 53 4.4.1 Exampলে বিশ্লেষণ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 ব্লিঙ্ক প্রোগ্রাম কম্পাইল করা হচ্ছে। . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 ফ্ল্যাশিং দ্য ব্লিঙ্ক প্রোগ্রাম। . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 ব্লিঙ্ক প্রোগ্রামের সিরিয়াল পোর্ট লগ বিশ্লেষণ। . . . . . . . . . . . . . 60 4.5 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II হার্ডওয়্যার এবং ড্রাইভার উন্নয়ন
65
ESP5-C32 এর উপর ভিত্তি করে স্মার্ট লাইট পণ্যের 3 হার্ডওয়্যার ডিজাইন
67
5.1 স্মার্ট লাইট পণ্যের বৈশিষ্ট্য এবং রচনা। . . . . . . . . . . . . . . 67
5.2 ESP32-C3 কোর সিস্টেমের হার্ডওয়্যার ডিজাইন। . . . . . . . . . . . . . . . . . . 70
5.2.1 পাওয়ার সাপ্লাই। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 পাওয়ার-অন সিকোয়েন্স এবং সিস্টেম রিসেট। . . . . . . . . . . . . . . . . . 74
5.2.3 SPI ফ্ল্যাশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 ঘড়ির উৎস। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 আরএফ এবং অ্যান্টেনা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 স্ট্র্যাপিং পিন . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO এবং PWM কন্ট্রোলার। . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 অনুশীলন: ESP32-C3 দিয়ে একটি স্মার্ট লাইট সিস্টেম তৈরি করা। . . . . . . . . . . . . 80
5.3.1 মডিউল নির্বাচন করা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 PWM সিগন্যালের GPIO কনফিগার করা। . . . . . . . . . . . . . . . . . . . 82
5.3.3 ফার্মওয়্যার এবং ডিবাগিং ইন্টারফেস ডাউনলোড করা। . . . . . . . . . . . 82
5.3.4 RF ডিজাইনের জন্য নির্দেশিকা। . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 পাওয়ার সাপ্লাই ডিজাইনের জন্য নির্দেশিকা। . . . . . . . . . . . . . . . . . . 86 5.4 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 ড্রাইভার উন্নয়ন
87
6.1 ড্রাইভার উন্নয়ন প্রক্রিয়া . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 পেরিফেরাল অ্যাপ্লিকেশন। . . . . . . . . . . . . . . . . . . . . . . . . ৮৮
6.3 LED ড্রাইভার বেসিক। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ৮৯
6.3.1 রঙের স্থান। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ৮৯
6.3.2 LED ড্রাইভার। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 LED ডিমিং . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 PWM এর ভূমিকা। . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 এলইডি ডিমিং ড্রাইভার ডেভেলপমেন্ট। . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 নন-ভোলাটাইল স্টোরেজ (NVS)। . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM কন্ট্রোলার (LEDC)। . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM প্রোগ্রামিং . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 অনুশীলন: স্মার্ট লাইট প্রকল্পে ড্রাইভার যোগ করা। . . . . . . . . . . . . . . . . 103
6.5.1 বোতাম ড্রাইভার। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 এলইডি ডিমিং ড্রাইভার। . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III বেতার যোগাযোগ এবং নিয়ন্ত্রণ
109
7 ওয়াই-ফাই কনফিগারেশন এবং সংযোগ
111
7.1 Wi-Fi এর মূল বিষয়গুলি। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Wi-Fi এর পরিচিতি। . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 IEEE 802.11 এর বিবর্তন। . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Wi-Fi ধারণা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Wi-Fi সংযোগ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 ব্লুটুথের বেসিক। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 ব্লুটুথের পরিচিতি। . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 ব্লুটুথ ধারণা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 ব্লুটুথ সংযোগ। . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Wi-Fi নেটওয়ার্ক কনফিগারেশন। . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Wi-Fi নেটওয়ার্ক কনফিগারেশন গাইড। . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 ব্লুটুথ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 অন্যান্য পদ্ধতি। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 ওয়াই-ফাই প্রোগ্রামিং। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF-এ Wi-Fi উপাদান। . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 ব্যায়াম: ওয়াই-ফাই সংযোগ। . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 ব্যায়াম: স্মার্ট ওয়াই-ফাই সংযোগ। . . . . . . . . . . . . . . . . . . . . 145
7.5 অনুশীলন: স্মার্ট লাইট প্রকল্পে ওয়াই-ফাই কনফিগারেশন। . . . . . . . . . . . . . . 156 7.5.1 স্মার্ট লাইট প্রকল্পে Wi-Fi সংযোগ। . . . . . . . . . . . . . . . . 156 7.5.2 স্মার্ট ওয়াই-ফাই কনফিগারেশন। . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 স্থানীয় নিয়ন্ত্রণ
159
8.1 স্থানীয় নিয়ন্ত্রণের ভূমিকা। . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 স্থানীয় নিয়ন্ত্রণের প্রয়োগ। . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 আদবানtagস্থানীয় নিয়ন্ত্রণের es. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 স্মার্টফোনের মাধ্যমে নিয়ন্ত্রিত ডিভাইস আবিষ্কার করা। . . . . . . . . . 161
8.1.4 স্মার্টফোন এবং ডিভাইসের মধ্যে ডেটা যোগাযোগ। . . . . . . . 162
8.2 সাধারণ স্থানীয় আবিষ্কার পদ্ধতি। . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 সম্প্রচার। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 মাল্টিকাস্ট। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 সম্প্রচার এবং মাল্টিকাস্টের মধ্যে তুলনা। . . . . . . . . . . . . . 176
8.2.4 স্থানীয় আবিষ্কারের জন্য মাল্টিকাস্ট অ্যাপ্লিকেশন প্রোটোকল mDNS। . . . . . . . 176
8.3 স্থানীয় ডেটার জন্য কমন কমিউনিকেশন প্রোটোকল। . . . . . . . . . . . . . . 179
8.3.1 ট্রান্সমিশন কন্ট্রোল প্রোটোকল (TCP)। . . . . . . . . . . . . . . . . . . 179
8.3.2 হাইপারটেক্সট ট্রান্সফার প্রোটোকল (HTTP)। . . . . . . . . . . . . . . . . . . 185
8.3.3 ব্যবহারকারী দাtagরাম প্রোটোকল (ইউডিপি)। . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 সীমাবদ্ধ অ্যাপ্লিকেশন প্রোটোকল (CoAP)। . . . . . . . . . . . . . . . 192
8.3.5 ব্লুটুথ প্রোটোকল। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 ডেটা কমিউনিকেশন প্রোটোকলের সারাংশ। . . . . . . . . . . . . . . 203
8.4 ডেটা নিরাপত্তার গ্যারান্টি। . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) এর ভূমিকা। . . . . . . . . . . . . 207
8.4.2 দা পরিচিতিtagRAM ট্রান্সপোর্ট লেয়ার সিকিউরিটি (DTLS)। . . . . . . 213
8.5 অনুশীলন: স্মার্ট লাইট প্রকল্পে স্থানীয় নিয়ন্ত্রণ। . . . . . . . . . . . . . . . . . 217
8.5.1 একটি Wi-Fi-ভিত্তিক স্থানীয় নিয়ন্ত্রণ সার্ভার তৈরি করা। . . . . . . . . . . . . . . 217
8.5.2 স্ক্রিপ্ট ব্যবহার করে স্থানীয় নিয়ন্ত্রণ কার্যকারিতা যাচাই করা। . . . . . . . . . . 221
8.5.3 একটি ব্লুটুথ-ভিত্তিক স্থানীয় নিয়ন্ত্রণ সার্ভার তৈরি করা। . . . . . . . . . . . 222
8.6 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 ক্লাউড নিয়ন্ত্রণ
225
9.1 রিমোট কন্ট্রোলের ভূমিকা। . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 ক্লাউড ডেটা কমিউনিকেশন প্রোটোকল। . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT ভূমিকা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 MQTT নীতিমালা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT মেসেজ ফরম্যাট। . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 প্রোটোকল তুলনা। . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 লিনাক্স এবং উইন্ডোজে MQTT ব্রোকার সেট আপ করা। . . . . . . . . . . . 233 9.2.6 ESP-IDF এর উপর ভিত্তি করে MQTT ক্লায়েন্ট সেট আপ করা। . . . . . . . . . . . . . . . 235 9.3 MQTT ডেটা নিরাপত্তা নিশ্চিত করা। . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 সার্টিফিকেটের অর্থ এবং কার্যকারিতা। . . . . . . . . . . . . . . . . . . 237 9.3.2 স্থানীয়ভাবে সার্টিফিকেট তৈরি করা। . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 MQTT ব্রোকার কনফিগার করা হচ্ছে। . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT ক্লায়েন্ট কনফিগার করা হচ্ছে। . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 অনুশীলন: ESP RainMaker এর মাধ্যমে রিমোট কন্ট্রোল। . . . . . . . . . . . . . . . 243 9.4.1 ইএসপি রেইনমেকার বেসিক। . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 নোড এবং ক্লাউড ব্যাকএন্ড কমিউনিকেশন প্রোটোকল। . . . . . . . . . . 244 9.4.3 ক্লায়েন্ট এবং ক্লাউড ব্যাকএন্ডের মধ্যে যোগাযোগ। . . . . . . . . . . 249 9.4.4 ব্যবহারকারীর ভূমিকা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 মৌলিক পরিষেবা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 স্মার্ট লাইট এক্সampলে . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker অ্যাপ এবং থার্ড-পার্টি ইন্টিগ্রেশন। . . . . . . . . . . . . . . 262 9.5 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 স্মার্টফোন অ্যাপ ডেভেলপমেন্ট
269
10.1 স্মার্টফোন অ্যাপ ডেভেলপমেন্টের ভূমিকা। . . . . . . . . . . . . . . . . . 269
10.1.1 ওভারview স্মার্টফোন অ্যাপ ডেভেলপমেন্ট। . . . . . . . . . . . . . . 270
10.1.2 অ্যান্ড্রয়েড প্রকল্পের কাঠামো। . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 iOS প্রকল্পের কাঠামো। . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 একটি Android কার্যকলাপের জীবনচক্র। . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 iOS এর জীবনচক্র Viewনিয়ন্ত্রক। . . . . . . . . . . . . . . . . . . . . . 273
10.2 একটি নতুন স্মার্টফোন অ্যাপ প্রজেক্ট তৈরি করা। . . . . . . . . . . . . . . . . . . . . 275
10.2.1 অ্যান্ড্রয়েড ডেভেলপমেন্টের জন্য প্রস্তুতি নিচ্ছে। . . . . . . . . . . . . . . . . . . 275
10.2.2 একটি নতুন অ্যান্ড্রয়েড প্রকল্প তৈরি করা। . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 MyRainmaker-এর জন্য নির্ভরতা যোগ করা। . . . . . . . . . . . . . . . . 276
10.2.4 অ্যান্ড্রয়েডে অনুমতির অনুরোধ। . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 iOS ডেভেলপমেন্টের জন্য প্রস্তুতি নিচ্ছে। . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 একটি নতুন iOS প্রকল্প তৈরি করা। . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 MyRainmaker-এর জন্য নির্ভরতা যোগ করা। . . . . . . . . . . . . . . . . 279
10.2.8 iOS-এ অনুমতির অনুরোধ। . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 অ্যাপের কার্যকরী প্রয়োজনীয়তার বিশ্লেষণ। . . . . . . . . . . . . . . . . . 281
10.3.1 প্রকল্পের কার্যকরী প্রয়োজনীয়তার বিশ্লেষণ। . . . . . . . . . . . 282
10.3.2 ব্যবহারকারী ব্যবস্থাপনার প্রয়োজনীয়তা বিশ্লেষণ। . . . . . . . . . . . . . . 282 10.3.3 ডিভাইস প্রভিশনিং এবং বাইন্ডিং প্রয়োজনীয়তার বিশ্লেষণ। . . . . . . 283 10.3.4 রিমোট-কন্ট্রোল প্রয়োজনীয়তার বিশ্লেষণ। . . . . . . . . . . . . . . . 283 10.3.5 সময় নির্ধারণের প্রয়োজনীয়তা বিশ্লেষণ। . . . . . . . . . . . . . . . . . . 284 10.3.6 ব্যবহারকারী কেন্দ্রের প্রয়োজনীয়তার বিশ্লেষণ। . . . . . . . . . . . . . . . . . 285 10.4 ব্যবহারকারী ব্যবস্থাপনার উন্নয়ন। . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker API-এর পরিচিতি। . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 স্মার্টফোনের মাধ্যমে যোগাযোগ শুরু করা। . . . . . . . . . . . . . . . 286 10.4.3 অ্যাকাউন্ট নিবন্ধন। . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 অ্যাকাউন্ট লগইন। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 ডিভাইস প্রভিশনিংয়ের বিকাশ। . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 স্ক্যানিং ডিভাইস। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 সংযোগকারী ডিভাইস। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 সিক্রেট কী তৈরি করা। . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 নোড আইডি পাওয়া। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 প্রভিশনিং ডিভাইস। . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 ডিভাইস নিয়ন্ত্রণের বিকাশ। . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 ক্লাউড অ্যাকাউন্টে ডিভাইস বাঁধাই। . . . . . . . . . . . . . . . . . . . 303 10.6.2 ডিভাইসের একটি তালিকা পাওয়া। . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 ডিভাইসের স্থিতি পাওয়া . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 ডিভাইসের স্থিতি পরিবর্তন করা। . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 সময়সূচী এবং ব্যবহারকারী কেন্দ্রের উন্নয়ন। . . . . . . . . . . . . . . . . . . 313 10.7.1 সিডিউলিং ফাংশন বাস্তবায়ন করা। . . . . . . . . . . . . . . . . . . . 313 10.7.2 ব্যবহারকারী কেন্দ্র বাস্তবায়ন করা। . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 আরও ক্লাউড API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 ফার্মওয়্যার আপগ্রেড এবং সংস্করণ ব্যবস্থাপনা
321
11.1 ফার্মওয়্যার আপগ্রেড। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 ওভারview পার্টিশন টেবিলের। . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 ফার্মওয়্যার বুট প্রক্রিয়া। . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 ওভারview OTA প্রক্রিয়ার . . . . . . . . . . . . . . . . . . . . 326
11.2 ফার্মওয়্যার সংস্করণ ব্যবস্থাপনা। . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 ফার্মওয়্যার চিহ্নিতকরণ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 রোলব্যাক এবং অ্যান্টি-রোলব্যাক। . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 অনুশীলন: ওভার-দ্য-এয়ার (OTA) প্রাক্তনampলে . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 স্থানীয় হোস্টের মাধ্যমে ফার্মওয়্যার আপগ্রেড করুন। . . . . . . . . . . . . . . . . 332
11.3.2 ESP RainMaker-এর মাধ্যমে ফার্মওয়্যার আপগ্রেড করুন। . . . . . . . . . . . . . . 335
11.4 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV অপ্টিমাইজেশান এবং ব্যাপক উৎপাদন
343
12 পাওয়ার ম্যানেজমেন্ট এবং লো-পাওয়ার অপ্টিমাইজেশান
345
12.1 ESP32-C3 পাওয়ার ম্যানেজমেন্ট। . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 ডায়নামিক ফ্রিকোয়েন্সি স্কেলিং। . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 পাওয়ার ম্যানেজমেন্ট কনফিগারেশন। . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 লো-পাওয়ার মোড। . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 মডেম-স্লিপ মোড। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 হালকা ঘুমের মোড। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 গভীর ঘুমের মোড। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 বিভিন্ন পাওয়ার মোডে বর্তমান খরচ। . . . . . . . . . . . . 358
12.3 পাওয়ার ম্যানেজমেন্ট এবং লো-পাওয়ার ডিবাগিং। . . . . . . . . . . . . . . . . 359
12.3.1 লগ ডিবাগিং। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO ডিবাগিং। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 অনুশীলন: স্মার্ট লাইট প্রকল্পে পাওয়ার ম্যানেজমেন্ট। . . . . . . . . . . . . . . 363
12.4.1 পাওয়ার ম্যানেজমেন্ট বৈশিষ্ট্য কনফিগার করা। . . . . . . . . . . . . . . . . 364
12.4.2 পাওয়ার ম্যানেজমেন্ট লক ব্যবহার করুন। . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 পাওয়ার খরচ যাচাই করা। . . . . . . . . . . . . . . . . . . . . . . 366
12.5 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 উন্নত ডিভাইস নিরাপত্তা বৈশিষ্ট্য
369
13.1 ওভারview আইওটি ডিভাইসের ডেটা নিরাপত্তা। . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 কেন IoT ডিভাইসের ডেটা সুরক্ষিত করা হয়? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 IoT ডিভাইস ডেটা নিরাপত্তার জন্য প্রাথমিক প্রয়োজনীয়তা। . . . . . . . . . . . 371
13.2 ডেটা ইন্টিগ্রিটি সুরক্ষা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 সততা যাচাই পদ্ধতির ভূমিকা। . . . . . . . . . . . . . 372
13.2.2 ফার্মওয়্যার ডেটার অখণ্ডতা যাচাইকরণ। . . . . . . . . . . . . . . . . . 373
13.2.3 প্রাক্তনampলে . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 ডেটা গোপনীয়তা সুরক্ষা। . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 ডেটা এনক্রিপশনের ভূমিকা। . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 ফ্ল্যাশ এনক্রিপশন স্কিমের ভূমিকা। . . . . . . . . . . . . . . . . 376
13.3.3 ফ্ল্যাশ এনক্রিপশন কী স্টোরেজ। . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 ফ্ল্যাশ এনক্রিপশনের ওয়ার্কিং মোড। . . . . . . . . . . . . . . . . . . . 380
13.3.5 ফ্ল্যাশ এনক্রিপশন প্রক্রিয়া। . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 NVS এনক্রিপশনের ভূমিকা। . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 প্রাক্তনampফ্ল্যাশ এনক্রিপশন এবং এনভিএস এনক্রিপশন। . . . . . . . . . . 384
13.4 ডেটা বৈধতা সুরক্ষা। . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 ডিজিটাল স্বাক্ষরের ভূমিকা। . . . . . . . . . . . . . . . . . . . . 386
13.4.2 ওভারview নিরাপদ বুট স্কিমের। . . . . . . . . . . . . . . . . . . . . 388
13.4.3 সফ্টওয়্যার সিকিউর বুটের পরিচিতি। . . . . . . . . . . . . . . . . . . 388 13.4.4 হার্ডওয়্যার সিকিউর বুটের ভূমিকা। . . . . . . . . . . . . . . . . . 390 13.4.5 Exampলেস . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 অনুশীলন: ব্যাপক উৎপাদনে নিরাপত্তা বৈশিষ্ট্য। . . . . . . . . . . . . . . . . . 396 13.5.1 ফ্ল্যাশ এনক্রিপশন এবং সুরক্ষিত বুট। . . . . . . . . . . . . . . . . . . . . 396 13.5.2 ব্যাচ ফ্ল্যাশ সরঞ্জামগুলির সাথে ফ্ল্যাশ এনক্রিপশন এবং সুরক্ষিত বুট সক্ষম করা৷ . 397 13.5.3 স্মার্ট লাইট প্রকল্পে ফ্ল্যাশ এনক্রিপশন এবং সুরক্ষিত বুট সক্ষম করা। . . 398 13.6 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 ব্যাপক উৎপাদনের জন্য ফার্মওয়্যার বার্নিং এবং টেস্টিং
399
14.1 ব্যাপক উৎপাদনে ফার্মওয়্যার জ্বলছে। . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 ডেটা পার্টিশন সংজ্ঞায়িত করা। . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 ফার্মওয়্যার বার্নিং। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 ব্যাপক উৎপাদন পরীক্ষা। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 অনুশীলন: স্মার্ট লাইট প্রকল্পে ব্যাপক উত্পাদন ডেটা। . . . . . . . . . . . . 404
14.4 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ইএসপি ইনসাইটস: রিমোট মনিটরিং প্ল্যাটফর্ম
405
15.1 ইএসপি অন্তর্দৃষ্টির ভূমিকা। . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 ESP অন্তর্দৃষ্টি দিয়ে শুরু করা। . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 esp-ইনসাইট প্রকল্পে ESP অন্তর্দৃষ্টি দিয়ে শুরু করা। . . . . . 409
15.2.2 চলমান প্রাক্তনampলে esp-অন্তর্দৃষ্টি প্রকল্পে। . . . . . . . . . . . . . . 411
15.2.3 রিপোর্টিং কোরডাম্প তথ্য। . . . . . . . . . . . . . . . . . . . . 411
15.2.4 আগ্রহের লগ কাস্টমাইজ করা। . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 রিপোর্টিং রিবুট কারণ। . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 কাস্টম মেট্রিক্স রিপোর্ট করা। . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 অনুশীলন: স্মার্ট লাইট প্রকল্পে ESP অন্তর্দৃষ্টি ব্যবহার করা। . . . . . . . . . . . . . . 416
15.4 সারাংশ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
ভূমিকা
ESP32-C3 হল একটি একক-কোর Wi-Fi এবং Bluetooth 5 (LE) মাইক্রোকন্ট্রোলার SoC, ওপেন-সোর্স RISC-V আর্কিটেকচারের উপর ভিত্তি করে। এটি শক্তি, I/O ক্ষমতা এবং নিরাপত্তার সঠিক ভারসাম্যকে আঘাত করে, এইভাবে সংযুক্ত ডিভাইসগুলির জন্য সর্বোত্তম সাশ্রয়ী সমাধান প্রদান করে। ESP32-C3 পরিবারের বিভিন্ন অ্যাপ্লিকেশন দেখানোর জন্য, Espressif-এর এই বইটি আপনাকে AIoT-এর মাধ্যমে একটি আকর্ষণীয় যাত্রায় নিয়ে যাবে, IoT প্রকল্পের বিকাশ এবং পরিবেশ সেটআপের মূল বিষয়গুলি থেকে শুরু করে ব্যবহারিক প্রাক্তন পর্যন্তampলেস প্রথম চারটি অধ্যায় IoT, ESP RainMaker এবং ESP-IDF সম্পর্কে কথা বলে। অধ্যায় 5 এবং 6 হার্ডওয়্যার ডিজাইন এবং ড্রাইভার উন্নয়নের উপর সংক্ষিপ্ত। আপনি অগ্রগতির সাথে সাথে, আপনি আবিষ্কার করবেন কিভাবে Wi-Fi নেটওয়ার্ক এবং মোবাইল অ্যাপের মাধ্যমে আপনার প্রকল্প কনফিগার করবেন। অবশেষে, আপনি আপনার প্রকল্পটি অপ্টিমাইজ করতে এবং এটিকে ব্যাপক উত্পাদন করতে শিখবেন।
আপনি যদি সংশ্লিষ্ট ক্ষেত্রে একজন প্রকৌশলী, একজন সফ্টওয়্যার আর্কিটেক্ট, একজন শিক্ষক, একজন ছাত্র, বা IoT-তে আগ্রহী যে কেউ হন, এই বইটি আপনার জন্য।
আপনি কোড প্রাক্তন ডাউনলোড করতে পারেনampগিটহাবের এসপ্রেসিফের সাইট থেকে এই বইটিতে ব্যবহার করা হয়েছে। IoT বিকাশের সর্বশেষ তথ্যের জন্য, অনুগ্রহ করে আমাদের অফিসিয়াল অ্যাকাউন্ট অনুসরণ করুন।
ভূমিকা
একটি তথ্যপ্রযুক্তি বিশ্ব
ইন্টারনেটের তরঙ্গে চড়ে, ইন্টারনেট অফ থিংস (IoT) ডিজিটাল অর্থনীতিতে একটি নতুন ধরনের অবকাঠামো হয়ে উঠতে তার দুর্দান্ত আত্মপ্রকাশ করেছে। প্রযুক্তিকে জনসাধারণের কাছাকাছি আনতে, Espressif Systems এই দৃষ্টিভঙ্গির জন্য কাজ করে যে সমস্ত স্তরের বিকাশকারীরা আমাদের সময়ের সবচেয়ে গুরুত্বপূর্ণ কিছু সমস্যার সমাধান করতে IoT ব্যবহার করতে পারে। "সব জিনিসের বুদ্ধিমান নেটওয়ার্ক" এর একটি বিশ্ব যা আমরা ভবিষ্যতের কাছ থেকে আশা করছি।
আমাদের নিজস্ব চিপ ডিজাইন করা সেই দৃষ্টিভঙ্গির একটি গুরুত্বপূর্ণ উপাদান করে তোলে। এটি একটি ম্যারাথন হতে হবে, যাতে প্রযুক্তিগত সীমানাগুলির বিরুদ্ধে অবিরাম সাফল্যের প্রয়োজন হয়৷ “গেম চেঞ্জার” ESP8266 থেকে ESP32 সিরিজ পর্যন্ত Wi-Fi এবং Bluetoothr (LE) কানেক্টিভিটি একীভূত করে, এর পরে AI ত্বরণ দ্বারা সজ্জিত ESP32-S3, Espressif কখনই AIoT সমাধানের জন্য গবেষণা এবং পণ্য বিকাশ বন্ধ করে না। আমাদের ওপেন-সোর্স সফ্টওয়্যার, যেমন IoT ডেভেলপমেন্ট ফ্রেমওয়ার্ক ESP-IDF, মেশ ডেভেলপমেন্ট ফ্রেমওয়ার্ক ESP-MDF, এবং ডিভাইস কানেক্টিভিটি প্ল্যাটফর্ম ESP RainMaker, আমরা AIoT অ্যাপ্লিকেশন তৈরির জন্য একটি স্বাধীন কাঠামো তৈরি করেছি।
2022 সালের জুলাই পর্যন্ত, Espressif-এর IoT চিপসেটের ক্রমবর্ধমান চালান 800 মিলিয়ন ছাড়িয়ে গেছে, যা Wi-Fi MCU বাজারে নেতৃত্ব দিচ্ছে এবং বিশ্বব্যাপী সংযুক্ত ডিভাইসগুলির একটি বিশাল সংখ্যাকে শক্তিশালী করছে। শ্রেষ্ঠত্বের জন্য সাধনা প্রতিটি Espressif পণ্যকে তার উচ্চ স্তরের একীকরণ এবং ব্যয় দক্ষতার জন্য একটি বড় হিট করে তোলে। ESP32-C3 এর প্রকাশ Espressif এর স্ব-উন্নত প্রযুক্তির একটি উল্লেখযোগ্য মাইলফলক চিহ্নিত করে। এটি একটি একক-কোর, 32-বিট, RISC-V-ভিত্তিক MCU 400KB SRAM সহ, যা 160MHz এ চলতে পারে। এটি 2.4 গিগাহার্টজ ওয়াই-ফাই এবং ব্লুটুথ 5 (এলই) একটি দীর্ঘ-পরিসীমা সমর্থন সহ সংহত করেছে। এটি শক্তি, I/O ক্ষমতা এবং নিরাপত্তার সূক্ষ্ম ভারসাম্যকে আঘাত করে, এইভাবে সংযুক্ত ডিভাইসগুলির জন্য সর্বোত্তম সাশ্রয়ী সমাধান প্রদান করে। এই ধরনের শক্তিশালী ESP32-C3-এর উপর ভিত্তি করে, এই বইটি পাঠকদেরকে IoT-সম্পর্কিত জ্ঞানকে বিশদ চিত্র এবং ব্যবহারিক প্রাক্তন ব্যাখ্যা সহ বুঝতে সাহায্য করার উদ্দেশ্যে করা হয়েছে।ampলেস
কেন আমরা এই বই লিখেছি?
Espressif Systems একটি সেমিকন্ডাক্টর কোম্পানির চেয়ে বেশি। এটি একটি IoT প্ল্যাটফর্ম কোম্পানি, যেটি সর্বদা প্রযুক্তির ক্ষেত্রে অগ্রগতি এবং উদ্ভাবনের জন্য প্রচেষ্টা করে। একই সময়ে, Espressif একটি অনন্য ইকোসিস্টেম গঠন করে সম্প্রদায়ের সাথে তার স্ব-উন্নত অপারেটিং সিস্টেম এবং সফ্টওয়্যার ফ্রেমওয়ার্ক ওপেন-সোর্স করেছে এবং ভাগ করেছে। প্রকৌশলী, নির্মাতা এবং প্রযুক্তি উত্সাহীরা সক্রিয়ভাবে Espressif-এর পণ্যগুলির উপর ভিত্তি করে নতুন সফ্টওয়্যার অ্যাপ্লিকেশনগুলি বিকাশ করে, অবাধে যোগাযোগ করে এবং তাদের অভিজ্ঞতা ভাগ করে নেয়। আপনি YouTube এবং GitHub-এর মতো বিভিন্ন প্ল্যাটফর্মে সব সময় ডেভেলপারদের চিত্তাকর্ষক ধারনা দেখতে পারেন। Espressif-এর পণ্যগুলির জনপ্রিয়তা ক্রমবর্ধমান সংখ্যক লেখককে উদ্দীপিত করেছে যারা ইংরেজি, চীনা, জার্মান, ফরাসি এবং জাপানি সহ দশটিরও বেশি ভাষায় Espressif চিপসেটের উপর ভিত্তি করে 100 টিরও বেশি বই তৈরি করেছেন।
এটি সম্প্রদায়ের অংশীদারদের সমর্থন এবং বিশ্বাস যা Espressif এর ক্রমাগত উদ্ভাবনকে উৎসাহিত করে। “আমরা আমাদের চিপস, অপারেটিং সিস্টেম, ফ্রেমওয়ার্ক, সমাধান, ক্লাউড, ব্যবসায়িক চর্চা, টুলস, ডকুমেন্টেশন, লেখা, ধারনা, ইত্যাদিকে সমসাময়িক জীবনের সবচেয়ে গুরুত্বপূর্ণ সমস্যাগুলির জন্য মানুষের প্রয়োজনীয় উত্তরগুলির জন্য আরও বেশি প্রাসঙ্গিক করে তোলার চেষ্টা করি৷ এটি এসপ্রেসিফের সর্বোচ্চ উচ্চাকাঙ্ক্ষা এবং নৈতিক কম্পাস।" জনাব টিও সুই অ্যান, এসপ্রেসিফের প্রতিষ্ঠাতা এবং সিইও বলেছেন।
Espressif পড়া এবং ধারনা মান. যেহেতু IoT প্রযুক্তির ক্রমাগত আপগ্রেডিং ইঞ্জিনিয়ারদের জন্য উচ্চতর প্রয়োজনীয়তা তৈরি করে, আমরা কীভাবে আরও বেশি লোককে দ্রুত IoT চিপস, অপারেটিং সিস্টেম, সফ্টওয়্যার ফ্রেমওয়ার্ক, অ্যাপ্লিকেশন স্কিম এবং ক্লাউড পরিষেবা পণ্যগুলিতে দক্ষতা অর্জন করতে সহায়তা করতে পারি? প্রবাদটি হিসাবে, একজন মানুষকে মাছ দেওয়ার চেয়ে কীভাবে মাছ ধরতে হয় তা শেখানো ভাল। একটি বুদ্ধিমত্তার অধিবেশনে, এটি আমাদের মনে হয়েছিল যে আমরা IoT বিকাশের মূল জ্ঞানকে পদ্ধতিগতভাবে সাজানোর জন্য একটি বই লিখতে পারি। আমরা এটি বন্ধ করে দিয়েছি, দ্রুত একদল সিনিয়র প্রকৌশলীকে একত্রিত করেছি এবং এমবেডেড প্রোগ্রামিং, IoT হার্ডওয়্যার এবং সফ্টওয়্যার ডেভেলপমেন্টের প্রযুক্তিগত দলের অভিজ্ঞতা একত্রিত করেছি, যা এই বইটির প্রকাশে অবদান রেখেছে। লেখার প্রক্রিয়ায়, আমরা বস্তুনিষ্ঠ এবং ন্যায্য হওয়ার জন্য আমাদের যথাসাধ্য চেষ্টা করেছি, কোকুন থেকে ছিটকে পড়েছি, এবং ইন্টারনেট অফ থিংসের জটিলতা এবং আকর্ষণীয়তা বলার জন্য সংক্ষিপ্ত অভিব্যক্তি ব্যবহার করেছি। আমরা সাধারণ প্রশ্নগুলির সংক্ষিপ্তসার করেছি, সম্প্রদায়ের প্রতিক্রিয়া এবং পরামর্শগুলি উল্লেখ করেছি, যাতে উন্নয়ন প্রক্রিয়ার সম্মুখীন হওয়া প্রশ্নগুলির স্পষ্টভাবে উত্তর দেওয়া যায় এবং প্রাসঙ্গিক প্রযুক্তিবিদ এবং সিদ্ধান্ত গ্রহণকারীদের জন্য ব্যবহারিক IoT উন্নয়ন নির্দেশিকা প্রদান করা যায়৷
বইয়ের কাঠামো
এই বইটি একটি প্রকৌশলী-কেন্দ্রিক দৃষ্টিভঙ্গি নেয় এবং ধাপে ধাপে IoT প্রকল্পের উন্নয়নের জন্য প্রয়োজনীয় জ্ঞান তুলে ধরে। এটি চারটি অংশ নিয়ে গঠিত, নিম্নরূপ:
· প্রস্তুতি (অধ্যায় 1): এই অংশটি IoT এর স্থাপত্য, সাধারণ IoT প্রকল্প কাঠামো, ESP RainMakerr ক্লাউড প্ল্যাটফর্ম, এবং উন্নয়ন পরিবেশ ESP-IDF পরিচয় করিয়ে দেয়, যাতে IoT প্রকল্পের উন্নয়নের জন্য একটি শক্ত ভিত্তি স্থাপন করা যায়।
· হার্ডওয়্যার এবং ড্রাইভার ডেভেলপমেন্ট (অধ্যায় 5): ESP6-C32 চিপসেটের উপর ভিত্তি করে, এই অংশটি ন্যূনতম হার্ডওয়্যার সিস্টেম এবং ড্রাইভার ডেভেলপমেন্ট সম্পর্কে বিশদভাবে বর্ণনা করে এবং ডিমিং, কালার গ্রেডিং এবং ওয়্যারলেস যোগাযোগের নিয়ন্ত্রণ প্রয়োগ করে।
· ওয়্যারলেস কমিউনিকেশন অ্যান্ড কন্ট্রোল (অধ্যায় 7): এই অংশটি ESP11-C32 চিপ, লোকাল এবং ক্লাউড কন্ট্রোল প্রোটোকল এবং ডিভাইসগুলির স্থানীয় ও রিমোট কন্ট্রোলের উপর ভিত্তি করে বুদ্ধিমান Wi-Fi কনফিগারেশন স্কিম ব্যাখ্যা করে। এটি স্মার্টফোন অ্যাপস, ফার্মওয়্যার আপগ্রেড এবং সংস্করণ পরিচালনার জন্য স্কিমও সরবরাহ করে।
· অপ্টিমাইজেশান এবং ম্যাস প্রোডাকশন (অধ্যায় 12-15): এই অংশটি উন্নত IoT অ্যাপ্লিকেশনের জন্য তৈরি, পাওয়ার ম্যানেজমেন্টে পণ্যগুলির অপ্টিমাইজেশন, কম-পাওয়ার অপ্টিমাইজেশন, এবং উন্নত নিরাপত্তার উপর ফোকাস করা। এটি ব্যাপক উৎপাদনে ফার্মওয়্যার বার্নিং এবং টেস্টিং এবং রিমোট মনিটরিং প্ল্যাটফর্ম ESP ইনসাইটসের মাধ্যমে ডিভাইস ফার্মওয়্যারের চলমান স্থিতি এবং লগগুলি কীভাবে নির্ণয় করা যায় তাও প্রবর্তন করে।
সোর্স কোড সম্পর্কে
পাঠকরা প্রাক্তন চালাতে পারেনampএই বইয়ের প্রোগ্রামগুলি, হয় ম্যানুয়ালি কোডটি প্রবেশ করে বা বইটির সাথে থাকা সোর্স কোড ব্যবহার করে। আমরা তত্ত্ব এবং অনুশীলনের সমন্বয়ের উপর জোর দিই, এবং এইভাবে প্রায় প্রতিটি অধ্যায়ে স্মার্ট লাইট প্রকল্পের উপর ভিত্তি করে একটি অনুশীলন বিভাগ সেট করি। সমস্ত কোড ওপেন সোর্স করা হয়. পাঠকদের সোর্স কোড ডাউনলোড করতে এবং GitHub এবং আমাদের অফিসিয়াল ফোরাম esp32.com-এ এই বই সম্পর্কিত বিভাগে আলোচনা করতে স্বাগত জানাই। এই বইয়ের ওপেন-সোর্স কোড Apache লাইসেন্স 2.0 এর শর্তাবলীর সাপেক্ষে।
লেখকের মন্তব্য
এই বইটি আনুষ্ঠানিকভাবে Espressif Systems দ্বারা উত্পাদিত এবং কোম্পানির সিনিয়র ইঞ্জিনিয়ারদের দ্বারা লেখা। এটি আইওটি-সম্পর্কিত শিল্পের ব্যবস্থাপক এবং গবেষণা ও উন্নয়ন কর্মীদের জন্য উপযুক্ত, শিক্ষক এবং সংশ্লিষ্ট মেজার্সের ছাত্র এবং ইন্টারনেট অফ থিংসের ক্ষেত্রে উত্সাহীদের জন্য। আমরা আশা করি যে এই বইটি একটি কাজের ম্যানুয়াল, একটি রেফারেন্স এবং একটি বেডসাইড বই হিসাবে কাজ করতে পারে, একজন ভাল শিক্ষক এবং বন্ধুর মতো হতে।
এই বইটি সংকলন করার সময়, আমরা দেশ-বিদেশের বিশেষজ্ঞ, পণ্ডিত এবং প্রযুক্তিবিদদের কিছু প্রাসঙ্গিক গবেষণা ফলাফল উল্লেখ করেছি এবং আমরা একাডেমিক নিয়ম অনুসারে সেগুলি উদ্ধৃত করার জন্য যথাসাধ্য চেষ্টা করেছি। যাইহোক, এটি অনিবার্য যে কিছু বাদ দেওয়া উচিত, তাই এখানে আমরা সমস্ত প্রাসঙ্গিক লেখকদের প্রতি আমাদের গভীর শ্রদ্ধা ও কৃতজ্ঞতা প্রকাশ করতে চাই। উপরন্তু, আমরা ইন্টারনেট থেকে তথ্য উদ্ধৃত করেছি, তাই আমরা মূল লেখক এবং প্রকাশকদের ধন্যবাদ জানাতে চাই এবং ক্ষমাপ্রার্থী যে আমরা প্রতিটি তথ্যের উৎস নির্দেশ করতে পারি না।
উচ্চ মানের একটি বই তৈরি করার জন্য, আমরা অভ্যন্তরীণ আলোচনার রাউন্ড সংগঠিত করেছি, এবং ট্রায়াল পাঠক এবং প্রকাশক সম্পাদকদের পরামর্শ এবং প্রতিক্রিয়া থেকে শিখেছি। এখানে, আমরা আপনাকে আবারও ধন্যবাদ জানাতে চাই আপনার সাহায্যের জন্য যা সবাই এই সফল কাজে অবদান রেখেছে।
সবশেষে, কিন্তু সবচেয়ে গুরুত্বপূর্ণ, Espressif-এর সবাইকে ধন্যবাদ যারা আমাদের পণ্যের জন্ম ও জনপ্রিয়করণের জন্য এত কঠোর পরিশ্রম করেছেন।
IoT প্রকল্পের উন্নয়নে জ্ঞানের বিস্তৃত পরিসর জড়িত। বইটির দৈর্ঘ্য, সেইসাথে লেখকের স্তর এবং অভিজ্ঞতার মধ্যে সীমাবদ্ধ, বাদ দেওয়া অনিবার্য। অতএব, আমরা বিনীত অনুরোধ করছি যে বিশেষজ্ঞ এবং পাঠকদের সমালোচনা করুন এবং আমাদের ভুল সংশোধন করুন। এই বইটির জন্য আপনার কোন পরামর্শ থাকলে, অনুগ্রহ করে আমাদের সাথে book@espressif.com এ যোগাযোগ করুন। আমরা আপনার প্রতিক্রিয়া অপেক্ষায় থাকলাম।
কিভাবে এই বই ব্যবহার করবেন?
এই বইয়ের প্রকল্পের কোড ওপেন সোর্স করা হয়েছে। আপনি এটি আমাদের GitHub সংগ্রহস্থল থেকে ডাউনলোড করতে পারেন এবং আমাদের অফিসিয়াল ফোরামে আপনার চিন্তা ও প্রশ্ন শেয়ার করতে পারেন। GitHub: https://github.com/espressif/book-esp32c3-iot-projects ফোরাম: https://www.esp32.com/bookc3 পুরো বই জুড়ে, নীচে দেখানো অংশগুলি হাইলাইট করা হবে।
সোর্স কোড এই বইটিতে, আমরা তত্ত্ব এবং অনুশীলনের সংমিশ্রণের উপর জোর দিয়েছি, এবং এইভাবে প্রায় প্রতিটি অধ্যায়ে স্মার্ট লাইট প্রকল্প সম্পর্কে একটি অনুশীলন বিভাগ সেট করেছি। অনুরূপ পদক্ষেপ এবং উত্স পৃষ্ঠাটি দিয়ে শুরু হওয়া দুটি লাইনের মধ্যে চিহ্নিত করা হবে tag সোর্স কোড।
নোট/টিপস এখানে আপনি কিছু গুরুত্বপূর্ণ তথ্য পেতে পারেন এবং আপনার প্রোগ্রাম সফলভাবে ডিবাগ করার জন্য স্মরণ করিয়ে দিতে পারেন। এগুলি দিয়ে শুরু হওয়া দুটি পুরু লাইনের মধ্যে চিহ্নিত করা হবে tag নোট বা টিপস।
এই বইয়ের বেশিরভাগ কমান্ড লিনাক্সের অধীনে চালানো হয়, "$" অক্ষর দ্বারা অনুরোধ করা হয়। কমান্ডটি কার্যকর করার জন্য সুপার ইউজারের সুবিধার প্রয়োজন হলে, প্রম্পটটি "#" দ্বারা প্রতিস্থাপিত হবে। ম্যাক সিস্টেমে কমান্ড প্রম্পট হল “%”, যেমনটি ম্যাক-এ ESP-IDF ইনস্টল করা সেকশন 4.2.3-এ ব্যবহৃত হয়েছে।
এই বইয়ের মূল পাঠটি চার্টারে মুদ্রিত হবে, যখন কোডটি প্রাক্তনampলেস, উপাদান, ফাংশন, ভেরিয়েবল, কোড file নাম, কোড ডিরেক্টরি এবং স্ট্রিং কুরিয়ার নিউ এ থাকবে।
যে কমান্ড বা পাঠ্যগুলি ব্যবহারকারীর দ্বারা ইনপুট করা প্রয়োজন এবং যে কমান্ডগুলি "এন্টার" কী টিপে প্রবেশ করা যেতে পারে সেগুলি কুরিয়ার নিউ বোল্ডে প্রিন্ট করা হবে৷ লগ এবং কোড ব্লক হালকা নীল বাক্সে উপস্থাপন করা হবে.
ExampLe:
দ্বিতীয়ত, এনভিএস পার্টিশন বাইনারি তৈরি করতে esp-idf/components/nvs Flash/nvs পার্টিশন জেনারেটর/nvs পার্টিশন gen.py ব্যবহার করুন file নিম্নলিখিত কমান্ড সহ বিকাশ হোস্টে:
$ python $IDF PATH/components/nvs Flash/nvs পার্টিশন জেনারেটর/nvs পার্টিশন gen.py -ইনপুট ভর prod.csv -আউটপুট ভর prod.bin -সাইজ NVS পার্টিশন সাইজ
অধ্যায় 1
ভূমিকা
থেকে
আইওটি
20 শতকের শেষে, কম্পিউটার নেটওয়ার্ক এবং যোগাযোগ প্রযুক্তির উত্থানের সাথে সাথে, ইন্টারনেট দ্রুত মানুষের জীবনে একত্রিত হয়। ইন্টারনেট প্রযুক্তি পরিপক্ক হওয়ার সাথে সাথে ইন্টারনেট অফ থিংস (IoT) ধারণার জন্ম হয়েছিল। আক্ষরিক অর্থে, IoT মানে একটি ইন্টারনেট যেখানে জিনিসগুলি সংযুক্ত থাকে। যদিও আসল ইন্টারনেট স্থান ও সময়ের সীমা লঙ্ঘন করে এবং "ব্যক্তি এবং ব্যক্তি" এর মধ্যে দূরত্বকে সংকুচিত করে, আইওটি "জিনিস" কে একটি গুরুত্বপূর্ণ অংশগ্রহণকারী করে তোলে, "মানুষ" এবং "জিনিস" কে কাছাকাছি নিয়ে আসে। অদূর ভবিষ্যতে, IoT তথ্য শিল্পের চালিকা শক্তিতে পরিণত হতে চলেছে।
তাহলে, ইন্টারনেট অফ থিংস কি?
ইন্টারনেট অফ থিংসকে সঠিকভাবে সংজ্ঞায়িত করা কঠিন, কারণ এর অর্থ এবং সুযোগ ক্রমাগত বিকশিত হচ্ছে। 1995 সালে, বিল গেটস তার The Road Ahead বইতে প্রথম IoT এর ধারণাটি তুলে ধরেন। সহজ কথায়, IoT বস্তুকে ইন্টারনেটের মাধ্যমে একে অপরের সাথে তথ্য বিনিময় করতে সক্ষম করে। এর চূড়ান্ত লক্ষ্য হল একটি "সবকিছুর ইন্টারনেট" প্রতিষ্ঠা করা। এটি IoT এর একটি প্রাথমিক ব্যাখ্যা, সেইসাথে ভবিষ্যতের প্রযুক্তির একটি ফ্যান্টাসি। ত্রিশ বছর পর, অর্থনীতি এবং প্রযুক্তির দ্রুত বিকাশের সাথে, কল্পনাটি বাস্তবে আসছে। স্মার্ট ডিভাইস, স্মার্ট হোমস, স্মার্ট শহর, যানবাহনের ইন্টারনেট এবং পরিধানযোগ্য ডিভাইস থেকে শুরু করে IoT প্রযুক্তি দ্বারা সমর্থিত "মেটাভার্স" পর্যন্ত, নতুন ধারণা প্রতিনিয়ত উদ্ভূত হচ্ছে। এই অধ্যায়ে, আমরা ইন্টারনেট অফ থিংসের আর্কিটেকচারের ব্যাখ্যা দিয়ে শুরু করব, এবং তারপরে IoT সম্পর্কে স্পষ্ট বোঝার জন্য আপনাকে সাহায্য করার জন্য সবচেয়ে সাধারণ IoT অ্যাপ্লিকেশন, স্মার্ট হোমটি চালু করব।
1.1 IoT এর আর্কিটেকচার
ইন্টারনেট অফ থিংস একাধিক প্রযুক্তি জড়িত যার বিভিন্ন শিল্পে বিভিন্ন অ্যাপ্লিকেশনের প্রয়োজন এবং ফর্ম রয়েছে। আইওটি-এর কাঠামো, মূল প্রযুক্তি এবং অ্যাপ্লিকেশন বৈশিষ্ট্যগুলি সাজানোর জন্য, একটি ইউনিফাইড আর্কিটেকচার এবং একটি স্ট্যান্ডার্ড প্রযুক্তিগত ব্যবস্থা স্থাপন করা প্রয়োজন। এই বইটিতে, IoT এর আর্কিটেকচারকে সহজভাবে চারটি স্তরে ভাগ করা হয়েছে: উপলব্ধি ও নিয়ন্ত্রণ স্তর, নেটওয়ার্ক স্তর, প্ল্যাটফর্ম স্তর এবং অ্যাপ্লিকেশন স্তর।
উপলব্ধি এবং নিয়ন্ত্রণ স্তর IoT স্থাপত্যের সবচেয়ে মৌলিক উপাদান হিসাবে, উপলব্ধি এবং নিয়ন্ত্রণ স্তর হল IoT-এর ব্যাপক সেন্সিং উপলব্ধি করার মূল। এর প্রধান কাজ তথ্য সংগ্রহ, সনাক্তকরণ এবং নিয়ন্ত্রণ করা। এটি উপলব্ধির ক্ষমতা সহ বিভিন্ন ডিভাইস নিয়ে গঠিত,
3
সনাক্তকরণ, নিয়ন্ত্রণ এবং কার্যকর করা এবং উপাদান বৈশিষ্ট্য, আচরণগত প্রবণতা এবং ডিভাইসের স্থিতির মতো ডেটা পুনরুদ্ধার এবং বিশ্লেষণের জন্য দায়ী। এইভাবে, IoT বাস্তব ভৌত জগতকে চিনতে পারে। এছাড়াও, স্তরটি ডিভাইসের অবস্থা নিয়ন্ত্রণ করতে সক্ষম।
এই স্তরের সবচেয়ে সাধারণ ডিভাইসগুলি হল বিভিন্ন সেন্সর, যা তথ্য সংগ্রহ এবং সনাক্তকরণে গুরুত্বপূর্ণ ভূমিকা পালন করে। সেন্সরগুলি মানুষের সংবেদনশীল অঙ্গগুলির মতো, যেমন দৃষ্টিশক্তির সমান আলোক সংবেদনশীল সেন্সর, শ্রবণে অ্যাকোস্টিক সেন্সর, গন্ধের জন্য গ্যাস সেন্সর এবং স্পর্শ করার জন্য চাপ- এবং তাপমাত্রা-সংবেদনশীল সেন্সর। এই সমস্ত "সংবেদনশীল অঙ্গ" দিয়ে, বস্তুগুলি "জীবন্ত" হয়ে ওঠে এবং বুদ্ধিমান উপলব্ধি, স্বীকৃতি এবং ভৌত জগতের হেরফের করতে সক্ষম হয়।
নেটওয়ার্ক লেয়ার নেটওয়ার্ক লেয়ারের প্রধান কাজ হল তথ্য প্রেরণ করা, যার মধ্যে উপলব্ধ তথ্য এবং কন্ট্রোল লেয়ার থেকে প্রাপ্ত ডেটা নির্দিষ্ট টার্গেটে, সেইসাথে অ্যাপ্লিকেশন লেয়ার থেকে জারি করা কমান্ডগুলি উপলব্ধি এবং নিয়ন্ত্রণ স্তরে ফিরে আসে। এটি একটি গুরুত্বপূর্ণ যোগাযোগ সেতু হিসাবে কাজ করে যা একটি IoT সিস্টেমের বিভিন্ন স্তরকে সংযুক্ত করে। ইন্টারনেট অফ থিংসের একটি মৌলিক মডেল সেট আপ করতে, এটি একটি নেটওয়ার্কে বস্তুকে একীভূত করার জন্য দুটি ধাপ জড়িত: ইন্টারনেটে অ্যাক্সেস এবং ইন্টারনেটের মাধ্যমে সংক্রমণ।
ইন্টারনেট ইন্টারনেট অ্যাক্সেস ব্যক্তি এবং ব্যক্তির মধ্যে আন্তঃসংযোগ সক্ষম করে, কিন্তু বড় পরিবারে জিনিসগুলি অন্তর্ভুক্ত করতে ব্যর্থ হয়। IoT এর আবির্ভাবের আগে, বেশিরভাগ জিনিস "নেটওয়ার্ক-সক্ষম" ছিল না। প্রযুক্তির ক্রমাগত বিকাশের জন্য ধন্যবাদ, IoT জিনিসগুলিকে ইন্টারনেটের সাথে সংযুক্ত করতে পরিচালনা করে, এইভাবে "মানুষ এবং জিনিস", এবং "জিনিস এবং জিনিস" এর মধ্যে আন্তঃসংযোগ উপলব্ধি করে। ইন্টারনেট সংযোগ বাস্তবায়নের দুটি সাধারণ উপায় রয়েছে: তারযুক্ত নেটওয়ার্ক অ্যাক্সেস এবং ওয়্যারলেস নেটওয়ার্ক অ্যাক্সেস।
তারযুক্ত নেটওয়ার্ক অ্যাক্সেস পদ্ধতির মধ্যে রয়েছে ইথারনেট, সিরিয়াল যোগাযোগ (যেমন, RS-232, RS-485) এবং USB, যখন ওয়্যারলেস নেটওয়ার্ক অ্যাক্সেস তারবিহীন যোগাযোগের উপর নির্ভর করে, যা আরও স্বল্প-পরিসরের বেতার যোগাযোগ এবং দীর্ঘ-পরিসরের বেতার যোগাযোগে বিভক্ত করা যেতে পারে।
স্বল্প-পরিসরের বেতার যোগাযোগের মধ্যে রয়েছে ZigBee, Bluetoothr, Wi-Fi, নিয়ার-ফিল্ড কমিউনিকেশন (NFC), এবং রেডিও ফ্রিকোয়েন্সি আইডেন্টিফিকেশন (RFID)। লং-রেঞ্জ ওয়্যারলেস কমিউনিকেশনের মধ্যে রয়েছে এনহ্যান্সড মেশিন টাইপ কমিউনিকেশন (eMTC), LoRa, ন্যারো ব্যান্ড ইন্টারনেট অফ থিংস (NB-IoT), 2G, 3G, 4G, 5G ইত্যাদি।
ইন্টারনেটের মাধ্যমে ট্রান্সমিশন ইন্টারনেট অ্যাক্সেসের বিভিন্ন পদ্ধতি তথ্যের সংশ্লিষ্ট শারীরিক ট্রান্সমিশন লিঙ্কের দিকে নিয়ে যায়। পরবর্তী জিনিসটি সিদ্ধান্ত নেওয়া হয় যে কোন যোগাযোগ প্রোটোকলটি ডেটা প্রেরণ করতে ব্যবহার করবে। ইন্টারনেট টার্মিনালের তুলনায়, বেশিরভাগ IoT টার্মিনালেই বর্তমানে কম আছে
4 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
উপলব্ধ সংস্থান, যেমন প্রক্রিয়াকরণ কর্মক্ষমতা, স্টোরেজ ক্ষমতা, নেটওয়ার্ক রেট, ইত্যাদি, তাই একটি যোগাযোগ প্রোটোকল বেছে নেওয়া প্রয়োজন যা IoT অ্যাপ্লিকেশনগুলিতে কম সংস্থান দখল করে। দুটি যোগাযোগ প্রোটোকল রয়েছে যা বর্তমানে ব্যাপকভাবে ব্যবহৃত হয়: মেসেজ কিউইং টেলিমেট্রি ট্রান্সপোর্ট (MQTT) এবং সীমাবদ্ধ অ্যাপ্লিকেশন প্রোটোকল (CoAP)।
প্ল্যাটফর্ম স্তর প্ল্যাটফর্ম স্তর প্রধানত IoT ক্লাউড প্ল্যাটফর্ম বোঝায়। যখন সমস্ত IoT টার্মিনাল নেটওয়ার্ক করা হয়, তখন তাদের ডেটা গণনা এবং সংরক্ষণ করার জন্য একটি IoT ক্লাউড প্ল্যাটফর্মে একত্রিত করা প্রয়োজন। প্ল্যাটফর্ম স্তরটি প্রধানত বিশাল ডিভাইসগুলির অ্যাক্সেস এবং পরিচালনার সুবিধার্থে IoT অ্যাপ্লিকেশনগুলিকে সমর্থন করে। এটি আইওটি টার্মিনালগুলিকে ক্লাউড প্ল্যাটফর্মের সাথে সংযুক্ত করে, টার্মিনাল ডেটা সংগ্রহ করে এবং টার্মিনালগুলিতে কমান্ড জারি করে, যাতে রিমোট কন্ট্রোল প্রয়োগ করা যায়। শিল্প অ্যাপ্লিকেশনগুলিতে সরঞ্জাম বরাদ্দ করার জন্য একটি মধ্যবর্তী পরিষেবা হিসাবে, প্ল্যাটফর্ম স্তরটি সমগ্র IoT স্থাপত্যে একটি সংযোগকারী ভূমিকা পালন করে, বিমূর্ত ব্যবসায়িক যুক্তি এবং প্রমিত মূল ডেটা মডেল বহন করে, যা শুধুমাত্র ডিভাইসগুলির দ্রুত অ্যাক্সেস উপলব্ধি করতে পারে না, বরং শক্তিশালী মডুলার ক্ষমতাও প্রদান করে। শিল্প অ্যাপ্লিকেশন পরিস্থিতিতে বিভিন্ন প্রয়োজন মেটাতে. প্ল্যাটফর্ম স্তরে প্রধানত ডিভাইস অ্যাক্সেস, ডিভাইস ম্যানেজমেন্ট, সিকিউরিটি ম্যানেজমেন্ট, মেসেজ কমিউনিকেশন, মনিটরিং অপারেশন এবং রক্ষণাবেক্ষণ এবং ডেটা অ্যাপ্লিকেশনের মতো কার্যকরী মডিউলগুলি অন্তর্ভুক্ত করে।
· ডিভাইস অ্যাক্সেস, টার্মিনাল এবং IoT ক্লাউড প্ল্যাটফর্মের মধ্যে সংযোগ এবং যোগাযোগ উপলব্ধি করা।
· ডিভাইস পরিচালনা, ডিভাইস তৈরি, ডিভাইস রক্ষণাবেক্ষণ, ডেটা রূপান্তর, ডেটা সিঙ্ক্রোনাইজেশন এবং ডিভাইস বিতরণের মতো ফাংশন সহ।
· নিরাপত্তা ব্যবস্থাপনা, নিরাপত্তা প্রমাণীকরণ এবং যোগাযোগ নিরাপত্তার দৃষ্টিকোণ থেকে IoT ডেটা ট্রান্সমিশনের নিরাপত্তা নিশ্চিত করা।
· তিনটি ট্রান্সমিশন দিকনির্দেশ সহ বার্তা যোগাযোগ, অর্থাৎ টার্মিনাল আইওটি ক্লাউড প্ল্যাটফর্মে ডেটা পাঠায়, আইওটি ক্লাউড প্ল্যাটফর্ম সার্ভার সাইড বা অন্যান্য আইওটি ক্লাউড প্ল্যাটফর্মে ডেটা পাঠায় এবং সার্ভার সাইড দূরবর্তীভাবে আইওটি ডিভাইসগুলি নিয়ন্ত্রণ করে।
· O&M মনিটরিং, নিরীক্ষণ এবং রোগ নির্ণয়, ফার্মওয়্যার আপগ্রেড, অনলাইন ডিবাগিং, লগ পরিষেবা ইত্যাদি।
· ডেটা অ্যাপ্লিকেশন, স্টোরেজ, বিশ্লেষণ এবং ডেটার প্রয়োগ জড়িত।
অ্যাপ্লিকেশন লেয়ার অ্যাপ্লিকেশন লেয়ার প্ল্যাটফর্ম স্তর থেকে ডেটা ব্যবহার করে অ্যাপ্লিকেশন পরিচালনা করতে, ফিল্টারিং এবং ডাটাবেস এবং বিশ্লেষণ সফ্টওয়্যারের মতো সরঞ্জামগুলির সাহায্যে প্রক্রিয়াকরণ করে। ফলস্বরূপ ডেটা বাস্তব-বিশ্বের আইওটি অ্যাপ্লিকেশন যেমন স্মার্ট স্বাস্থ্যসেবা, স্মার্ট কৃষি, স্মার্ট হোমস এবং স্মার্ট শহরগুলির জন্য ব্যবহার করা যেতে পারে।
অবশ্যই, IoT-এর স্থাপত্যকে আরও স্তরগুলিতে উপবিভক্ত করা যেতে পারে, তবে এটি যতগুলি স্তর নিয়ে গঠিত হোক না কেন, অন্তর্নিহিত নীতিটি মূলত একই থাকে। শেখা
অধ্যায় 1। IoT 5 এর ভূমিকা
IoT-এর স্থাপত্য সম্পর্কে আমাদের IoT প্রযুক্তির বোঝা আরও গভীর করতে এবং সম্পূর্ণ কার্যকরী IoT প্রকল্পগুলি তৈরি করতে সাহায্য করে।
1.2 স্মার্ট হোমে আইওটি অ্যাপ্লিকেশন
IoT জীবনের সকল ক্ষেত্রে প্রবেশ করেছে, এবং আমাদের কাছে সবচেয়ে ঘনিষ্ঠভাবে সম্পর্কিত IoT অ্যাপ্লিকেশন হল স্মার্ট হোম। অনেক ঐতিহ্যবাহী যন্ত্রপাতি এখন এক বা একাধিক IoT ডিভাইস দিয়ে সজ্জিত, এবং অনেক নতুন নির্মিত ঘর শুরু থেকেই IoT প্রযুক্তি দিয়ে ডিজাইন করা হয়েছে। চিত্র 1.1 কিছু সাধারণ স্মার্ট হোম ডিভাইস দেখায়।
চিত্র 1.1। সাধারণ স্মার্ট হোম ডিভাইসগুলি স্মার্ট হোমের বিকাশকে সহজভাবে স্মার্ট পণ্যগুলিতে ভাগ করা যায়tage, দৃশ্য আন্তঃসংযোগ stage এবং বুদ্ধিমান এসtage, চিত্র 1.2 এ দেখানো হয়েছে।
চিত্র 1.2। উন্নয়ন এসtage of smart home 6 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
প্রথম এসtage স্মার্ট পণ্য সম্পর্কে. ঐতিহ্যবাহী বাড়ির থেকে আলাদা, স্মার্ট হোমে, IoT ডিভাইসগুলি সেন্সর সহ সংকেত গ্রহণ করে এবং Wi-Fi, Bluetooth LE, এবং ZigBee-এর মতো বেতার যোগাযোগ প্রযুক্তির মাধ্যমে নেটওয়ার্ক করা হয়। ব্যবহারকারীরা বিভিন্ন উপায়ে স্মার্ট পণ্য নিয়ন্ত্রণ করতে পারে, যেমন স্মার্টফোন অ্যাপস, ভয়েস সহকারী, স্মার্ট স্পিকার নিয়ন্ত্রণ ইত্যাদি। দ্বিতীয়টিtage দৃশ্য আন্তঃসংযোগের উপর ফোকাস করে। এই এসtage, ডেভেলপাররা আর একক স্মার্ট পণ্য নিয়ন্ত্রণ করার কথা বিবেচনা করছেন না, তবে দুই বা ততোধিক স্মার্ট পণ্যকে আন্তঃসংযোগ করা, একটি নির্দিষ্ট পরিমাণে স্বয়ংক্রিয়করণ এবং অবশেষে একটি কাস্টম দৃশ্য মোড গঠন করা। প্রাক্তন জন্যampলে, ব্যবহারকারী যখন কোনো দৃশ্য মোড বোতাম টিপে, লাইট, পর্দা, এবং এয়ার কন্ডিশনারগুলি স্বয়ংক্রিয়ভাবে প্রিসেটগুলির সাথে অভিযোজিত হবে৷ অবশ্যই, ট্রিগার শর্ত এবং সঞ্চালন ক্রিয়া সহ লিঙ্কেজ লজিক সহজেই সেট আপ করার পূর্বশর্ত রয়েছে। কল্পনা করুন যে ঘরের ভিতরের তাপমাত্রা 10 ডিগ্রি সেলসিয়াসের নিচে নেমে গেলে এয়ার কন্ডিশনার হিটিং মোড ট্রিগার হয়; যে সকাল 7 টায়, ব্যবহারকারীকে জাগানোর জন্য সংগীত বাজানো হয়, স্মার্ট পর্দাগুলি খোলা হয় এবং একটি স্মার্ট সকেটের মাধ্যমে রাইস কুকার বা ব্রেড টোস্টার শুরু হয়; যেহেতু ব্যবহারকারী উঠে এবং ধোয়া শেষ করে, প্রাতঃরাশ ইতিমধ্যেই পরিবেশন করা হয়েছে, যাতে কাজে যেতে দেরি না হয়। আমাদের জীবন কতটা সুবিধাজনক হয়ে উঠেছে! তৃতীয় এসtagই বুদ্ধিমত্তার কাছে যায়tage যত বেশি স্মার্ট হোম ডিভাইস অ্যাক্সেস করা হবে, ততই ডেটার ধরন তৈরি হবে। ক্লাউড কম্পিউটিং, বিগ ডেটা এবং কৃত্রিম বুদ্ধিমত্তার সাহায্যে, এটি একটি "স্মার্ট মস্তিষ্ক" স্মার্ট হোমে লাগানো হয়েছে, যার জন্য ব্যবহারকারীর কাছ থেকে আর ঘন ঘন কমান্ডের প্রয়োজন হয় না। তারা পূর্ববর্তী মিথস্ক্রিয়া থেকে ডেটা সংগ্রহ করে এবং ব্যবহারকারীর আচরণের ধরণ এবং পছন্দগুলি শিখে, যাতে সিদ্ধান্ত গ্রহণের জন্য সুপারিশ প্রদান সহ ক্রিয়াকলাপগুলিকে স্বয়ংক্রিয় করতে পারে। বর্তমানে, অধিকাংশ স্মার্ট হোম দৃশ্য আন্তঃসংযোগ গুলি এtage স্মার্ট পণ্যগুলির অনুপ্রবেশের হার এবং বুদ্ধিমত্তা বৃদ্ধির সাথে সাথে যোগাযোগ প্রোটোকলের মধ্যে বাধাগুলি সরানো হচ্ছে। ভবিষ্যতে, স্মার্ট হোমগুলি সত্যিই "স্মার্ট" হয়ে উঠতে বাধ্য, ঠিক আয়রন ম্যানের জার্ভিসের এআই সিস্টেমের মতো, যা ব্যবহারকারীকে শুধুমাত্র বিভিন্ন ডিভাইস নিয়ন্ত্রণ করতে, দৈনন্দিন বিষয়গুলি পরিচালনা করতে সাহায্য করতে পারে না, কিন্তু সুপার কম্পিউটিং ক্ষমতা এবং চিন্তা করার ক্ষমতাও রয়েছে৷ বুদ্ধিমান s মধ্যেtagঙ, মানুষ পরিমাণ ও গুণমান উভয় ক্ষেত্রেই উন্নততর পরিষেবা পাবে৷
অধ্যায় 1। IoT 7 এর ভূমিকা
8 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
অধ্যায় ভূমিকা এবং 2 IoT প্রকল্পের অনুশীলন
অধ্যায় 1-এ, আমরা IoT-এর স্থাপত্য, এবং উপলব্ধি ও নিয়ন্ত্রণ স্তর, নেটওয়ার্ক স্তর, প্ল্যাটফর্ম স্তর এবং অ্যাপ্লিকেশন স্তরের ভূমিকা এবং আন্তঃসম্পর্ক, সেইসাথে স্মার্ট হোমের বিকাশের পরিচয় দিয়েছি। যাইহোক, ঠিক যেমন আমরা যখন ছবি আঁকা শিখি, তখন তাত্ত্বিক জ্ঞান জানা যথেষ্ট নয়। সত্যিকার অর্থে প্রযুক্তি আয়ত্ত করার জন্য আইওটি প্রকল্পগুলিকে অনুশীলনে রাখার জন্য আমাদের "আমাদের হাত নোংরা করতে হবে"। উপরন্তু, যখন একটি প্রকল্প ব্যাপক উত্পাদন s সরানোtagই, নেটওয়ার্ক সংযোগ, কনফিগারেশন, আইওটি ক্লাউড প্ল্যাটফর্মের মিথস্ক্রিয়া, ফার্মওয়্যার পরিচালনা এবং আপডেট, ব্যাপক উত্পাদন ব্যবস্থাপনা এবং সুরক্ষা কনফিগারেশনের মতো আরও কারণগুলি বিবেচনা করা প্রয়োজন। সুতরাং, একটি সম্পূর্ণ IoT প্রকল্প তৈরি করার সময় আমাদের কী মনোযোগ দিতে হবে? অধ্যায় 1-এ, আমরা উল্লেখ করেছি যে স্মার্ট হোম হল সবচেয়ে সাধারণ IoT প্রয়োগের পরিস্থিতিগুলির মধ্যে একটি, এবং স্মার্ট লাইট হল সবচেয়ে মৌলিক এবং ব্যবহারিক যন্ত্রপাতিগুলির মধ্যে একটি, যা বাড়ি, হোটেল, জিম, হাসপাতাল ইত্যাদিতে ব্যবহার করা যেতে পারে৷ তাই, এই বইটি, আমরা একটি স্মার্ট লাইট প্রকল্পের নির্মাণকে সূচনা বিন্দু হিসাবে নেব, এর উপাদান এবং বৈশিষ্ট্যগুলি ব্যাখ্যা করব এবং প্রকল্পের উন্নয়নের বিষয়ে নির্দেশিকা প্রদান করব। আমরা আশা করি যে আপনি আরও IoT অ্যাপ্লিকেশন তৈরি করতে এই কেস থেকে অনুমান করতে পারবেন।
2.1 সাধারণ আইওটি প্রকল্পগুলির পরিচিতি
বিকাশের পরিপ্রেক্ষিতে, IoT প্রকল্পগুলির মৌলিক কার্যকরী মডিউলগুলিকে IoT ডিভাইসের সফ্টওয়্যার এবং হার্ডওয়্যার বিকাশ, ক্লায়েন্ট অ্যাপ্লিকেশন বিকাশ এবং IoT ক্লাউড প্ল্যাটফর্মের বিকাশে শ্রেণীবদ্ধ করা যেতে পারে। মৌলিক কার্যকরী মডিউলগুলি স্পষ্ট করা গুরুত্বপূর্ণ, যা এই বিভাগে আরও বর্ণনা করা হবে।
2.1.1 সাধারণ IoT ডিভাইসের জন্য মৌলিক মডিউল
আইওটি ডিভাইসের সফ্টওয়্যার এবং হার্ডওয়্যার বিকাশের মধ্যে নিম্নলিখিত মৌলিক মডিউলগুলি অন্তর্ভুক্ত রয়েছে: ডেটা সংগ্রহ
আইওটি আর্কিটেকচারের নীচের স্তর হিসাবে, উপলব্ধি এবং নিয়ন্ত্রণ স্তরের আইওটি ডিভাইসগুলি ডেটা সংগ্রহ এবং অপারেশন নিয়ন্ত্রণ অর্জনের জন্য তাদের চিপ এবং পেরিফেরালগুলির মাধ্যমে সেন্সর এবং ডিভাইসগুলিকে সংযুক্ত করে।
9
অ্যাকাউন্ট বাইন্ডিং এবং প্রাথমিক কনফিগারেশন বেশিরভাগ IoT ডিভাইসের জন্য, অ্যাকাউন্ট বাইন্ডিং এবং প্রাথমিক কনফিগারেশন একটি অপারেশনাল প্রক্রিয়াতে সম্পন্ন হয়, যেমনample, Wi-Fi নেটওয়ার্ক কনফিগার করে ব্যবহারকারীদের সাথে ডিভাইস সংযুক্ত করা।
IoT ক্লাউড প্ল্যাটফর্মগুলির সাথে মিথস্ক্রিয়া IoT ডিভাইসগুলি নিরীক্ষণ এবং নিয়ন্ত্রণ করার জন্য, একে অপরের মধ্যে মিথস্ক্রিয়ার মাধ্যমে কমান্ড এবং রিপোর্ট করার জন্য তাদের IoT ক্লাউড প্ল্যাটফর্মের সাথে সংযুক্ত করাও প্রয়োজন।
ডিভাইস নিয়ন্ত্রণ যখন IoT ক্লাউড প্ল্যাটফর্মের সাথে সংযুক্ত থাকে, ডিভাইসগুলি ক্লাউডের সাথে যোগাযোগ করতে পারে এবং নিবন্ধিত, আবদ্ধ বা নিয়ন্ত্রিত হতে পারে। ব্যবহারকারীরা আইওটি ক্লাউড প্ল্যাটফর্ম বা স্থানীয় যোগাযোগ প্রোটোকলের মাধ্যমে স্মার্টফোন অ্যাপে পণ্যের স্থিতি জিজ্ঞাসা করতে এবং অন্যান্য ক্রিয়াকলাপগুলি চালাতে পারে।
ফার্মওয়্যার আপগ্রেড IoT ডিভাইসগুলি নির্মাতাদের চাহিদার উপর ভিত্তি করে ফার্মওয়্যার আপগ্রেডও অর্জন করতে পারে। ক্লাউড দ্বারা প্রেরিত কমান্ড গ্রহণ করে, ফার্মওয়্যার আপগ্রেড এবং সংস্করণ ব্যবস্থাপনা উপলব্ধি করা হবে। এই ফার্মওয়্যার আপগ্রেড বৈশিষ্ট্যের সাহায্যে, আপনি ক্রমাগত IoT ডিভাইসগুলির কার্যকারিতা উন্নত করতে পারেন, ত্রুটিগুলি সংশোধন করতে পারেন এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারেন।
2.1.2 ক্লায়েন্ট অ্যাপ্লিকেশনের মৌলিক মডিউল
ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন, স্মার্টফোন অ্যাপ্লিকেশন) প্রধানত নিম্নলিখিত মৌলিক মডিউল অন্তর্ভুক্ত:
অ্যাকাউন্ট সিস্টেম এবং অনুমোদন এটি অ্যাকাউন্ট এবং ডিভাইস অনুমোদন সমর্থন করে।
ডিভাইস কন্ট্রোল স্মার্টফোন অ্যাপগুলি সাধারণত কন্ট্রোলিং ফাংশন দিয়ে সজ্জিত থাকে। ব্যবহারকারীরা সহজেই IoT ডিভাইসের সাথে সংযোগ করতে পারে, এবং স্মার্টফোন অ্যাপের মাধ্যমে যে কোনো সময়, যেকোনো জায়গায় সেগুলি পরিচালনা করতে পারে। একটি বাস্তব-বিশ্বের স্মার্ট হোমে, ডিভাইসগুলি বেশিরভাগই স্মার্টফোন অ্যাপের মাধ্যমে নিয়ন্ত্রিত হয়, যা শুধুমাত্র ডিভাইসগুলির বুদ্ধিমান ব্যবস্থাপনাকে সক্ষম করে না, কিন্তু জনশক্তির খরচও বাঁচায়। অতএব, ডিভাইস নিয়ন্ত্রণ ক্লায়েন্ট অ্যাপ্লিকেশনের জন্য আবশ্যক, যেমন ডিভাইস ফাংশন বৈশিষ্ট্য নিয়ন্ত্রণ, দৃশ্য নিয়ন্ত্রণ, সময়সূচী, রিমোট কন্ট্রোল, ডিভাইস লিঙ্কেজ, ইত্যাদি। স্মার্ট হোম ব্যবহারকারীরা ব্যক্তিগত প্রয়োজন অনুসারে দৃশ্যগুলি কাস্টমাইজ করতে পারেন, আলো নিয়ন্ত্রণ, বাড়ির যন্ত্রপাতি, প্রবেশদ্বার নিয়ন্ত্রণ করতে পারেন। , ইত্যাদি, বাড়ির জীবন আরো আরামদায়ক এবং সুবিধাজনক করতে. তারা এয়ার কন্ডিশনার সময় দিতে পারে, দূরবর্তীভাবে এটি বন্ধ করতে পারে, দরজাটি আনলক হয়ে গেলে স্বয়ংক্রিয়ভাবে হলওয়ের আলো সেট করতে পারে, বা একটি একক বোতাম দিয়ে "থিয়েটার" মোডে স্যুইচ করতে পারে।
বিজ্ঞপ্তি ক্লায়েন্ট অ্যাপ্লিকেশনগুলি IoT ডিভাইসের রিয়েল-টাইম স্থিতি আপডেট করে এবং ডিভাইসগুলি অস্বাভাবিক হয়ে গেলে সতর্কতা পাঠায়।
10 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
বিক্রয়োত্তর গ্রাহক পরিষেবা স্মার্টফোন অ্যাপগুলি পণ্যগুলির জন্য বিক্রয়োত্তর পরিষেবা প্রদান করতে পারে, IoT ডিভাইসের ব্যর্থতা এবং সময়মত প্রযুক্তিগত ক্রিয়াকলাপ সম্পর্কিত সমস্যাগুলি সমাধান করতে।
বৈশিষ্ট্যযুক্ত ফাংশন বিভিন্ন ব্যবহারকারীর চাহিদা মেটাতে, অন্যান্য ফাংশন যোগ করা যেতে পারে, যেমন ঝাঁকুনি, এনএফসি, জিপিএস, ইত্যাদি। জিপিএস অবস্থান এবং দূরত্ব অনুযায়ী দৃশ্য অপারেশনের নির্ভুলতা সেট করতে সাহায্য করতে পারে, যখন শেক ফাংশন ব্যবহারকারীদের সেট করতে দেয় ঝাঁকুনি দিয়ে নির্দিষ্ট ডিভাইস বা দৃশ্যের জন্য আদেশ কার্যকর করা হবে।
2.1.3 সাধারণ IoT ক্লাউড প্ল্যাটফর্মগুলির পরিচিতি৷
আইওটি ক্লাউড প্ল্যাটফর্ম হল একটি সর্ব-ইন-ওয়ান প্ল্যাটফর্ম যা ডিভাইস পরিচালনা, ডেটা সুরক্ষা যোগাযোগ এবং বিজ্ঞপ্তি পরিচালনার মতো ফাংশনগুলিকে একীভূত করে। তাদের টার্গেট গ্রুপ এবং অ্যাক্সেসিবিলিটি অনুসারে, IoT ক্লাউড প্ল্যাটফর্মগুলিকে পাবলিক IoT ক্লাউড প্ল্যাটফর্মে ভাগ করা যেতে পারে (এরপরে "পাবলিক ক্লাউড" হিসাবে উল্লেখ করা হয়েছে) এবং প্রাইভেট IoT ক্লাউড প্ল্যাটফর্মগুলি (এরপরে "প্রাইভেট ক্লাউড" হিসাবে উল্লেখ করা হয়েছে)।
পাবলিক ক্লাউড সাধারণত এন্টারপ্রাইজ বা ব্যক্তিদের জন্য শেয়ার করা IoT ক্লাউড প্ল্যাটফর্মগুলি নির্দেশ করে, প্ল্যাটফর্ম প্রদানকারীদের দ্বারা পরিচালিত এবং রক্ষণাবেক্ষণ করা হয় এবং ইন্টারনেটের মাধ্যমে শেয়ার করা হয়। এটি বিনামূল্যে বা কম খরচে হতে পারে, এবং আলিবাবা ক্লাউড, টেনসেন্ট ক্লাউড, বাইদু ক্লাউড, AWS IoT, Google IoT, ইত্যাদির মতো উন্মুক্ত পাবলিক নেটওয়ার্ক জুড়ে পরিষেবা প্রদান করে। একটি সহায়ক প্ল্যাটফর্ম হিসাবে, পাবলিক ক্লাউড আপস্ট্রিম পরিষেবা প্রদানকারীদের একীভূত করতে পারে এবং একটি নতুন ভ্যালু চেইন এবং ইকোসিস্টেম তৈরি করতে ডাউনস্ট্রিম শেষ ব্যবহারকারীরা।
ব্যক্তিগত ক্লাউড শুধুমাত্র এন্টারপ্রাইজ ব্যবহারের জন্য তৈরি করা হয়েছে, এইভাবে ডেটা, নিরাপত্তা এবং পরিষেবার মানের উপর সর্বোত্তম নিয়ন্ত্রণের গ্যারান্টি দেয়। এর পরিষেবা এবং অবকাঠামো আলাদাভাবে এন্টারপ্রাইজগুলি দ্বারা রক্ষণাবেক্ষণ করা হয় এবং সমর্থনকারী হার্ডওয়্যার এবং সফ্টওয়্যারগুলিও নির্দিষ্ট ব্যবহারকারীদের জন্য উত্সর্গীকৃত। এন্টারপ্রাইজগুলি তাদের ব্যবসার চাহিদা মেটাতে ক্লাউড পরিষেবাগুলি কাস্টমাইজ করতে পারে। বর্তমানে, কিছু স্মার্ট হোম নির্মাতা ইতিমধ্যেই ব্যক্তিগত IoT ক্লাউড প্ল্যাটফর্ম পেয়েছে এবং তাদের উপর ভিত্তি করে স্মার্ট হোম অ্যাপ্লিকেশন তৈরি করেছে।
পাবলিক ক্লাউড এবং প্রাইভেট ক্লাউড তাদের নিজস্ব অ্যাডভান রয়েছেtages, যা পরে ব্যাখ্যা করা হবে।
কমিউনিকেশন কানেক্টিভিটি অর্জনের জন্য, বিজনেস সার্ভার, আইওটি ক্লাউড প্ল্যাটফর্ম এবং স্মার্টফোন অ্যাপের সাথে ডিভাইসের পাশে অন্তত এমবেডেড ডেভেলপমেন্ট সম্পূর্ণ করা প্রয়োজন। এই ধরনের একটি বিশাল প্রকল্পের মুখোমুখি, পাবলিক ক্লাউড সাধারণত প্রক্রিয়াটি দ্রুত করার জন্য ডিভাইস-সাইড এবং স্মার্টফোন অ্যাপগুলির জন্য সফ্টওয়্যার ডেভেলপমেন্ট কিট সরবরাহ করে। পাবলিক এবং প্রাইভেট উভয় ক্লাউড ডিভাইস অ্যাক্সেস, ডিভাইস পরিচালনা, ডিভাইস ছায়া, এবং অপারেশন এবং রক্ষণাবেক্ষণ সহ পরিষেবা প্রদান করে।
ডিভাইস অ্যাক্সেস IoT ক্লাউড প্ল্যাটফর্মগুলি প্রোটোকল ব্যবহার করে ডিভাইস অ্যাক্সেসের জন্য শুধুমাত্র ইন্টারফেস প্রদান করতে হবে না
অধ্যায় 2. IoT প্রকল্পগুলির পরিচিতি এবং অনুশীলন 11
যেমন MQTT, CoAP, HTTPS, এবং Webসকেট, কিন্তু নকল এবং অবৈধ ডিভাইসগুলিকে ব্লক করার জন্য ডিভাইস সুরক্ষা প্রমাণীকরণের কার্যকারিতা, কার্যকরভাবে আপস হওয়ার ঝুঁকি হ্রাস করে। এই ধরনের প্রমাণীকরণ সাধারণত বিভিন্ন প্রক্রিয়া সমর্থন করে, তাই যখন ডিভাইসগুলি ব্যাপকভাবে উত্পাদিত হয়, তখন নির্বাচিত প্রমাণীকরণ প্রক্রিয়া অনুসারে ডিভাইসের শংসাপত্রটি প্রাক-অর্পণ করা এবং ডিভাইসগুলিতে এটি বার্ন করা প্রয়োজন।
ডিভাইস ম্যানেজমেন্ট IoT ক্লাউড প্ল্যাটফর্ম দ্বারা সরবরাহ করা ডিভাইস পরিচালনার ফাংশন শুধুমাত্র নির্মাতাদের তাদের ডিভাইসের সক্রিয়করণের অবস্থা এবং রিয়েল টাইমে অনলাইন স্ট্যাটাস নিরীক্ষণ করতে সাহায্য করতে পারে না, তবে ডিভাইস যোগ করা/মুছে ফেলা, পুনরুদ্ধার করা, গ্রুপ যোগ করা/মুছে ফেলা, ফার্মওয়্যার আপগ্রেড করার মতো বিকল্পগুলিকেও অনুমতি দেয়। , এবং সংস্করণ ব্যবস্থাপনা।
ডিভাইস শ্যাডো IoT ক্লাউড প্ল্যাটফর্মগুলি প্রতিটি ডিভাইসের জন্য একটি স্থায়ী ভার্চুয়াল সংস্করণ (ডিভাইস শ্যাডো) তৈরি করতে পারে এবং ডিভাইসের ছায়ার স্থিতি সিঙ্ক্রোনাইজ করা যায় এবং ইন্টারনেট ট্রান্সমিশন প্রোটোকলের মাধ্যমে স্মার্টফোন অ্যাপ বা অন্যান্য ডিভাইস দ্বারা প্রাপ্ত করা যায়। ডিভাইস শ্যাডো প্রতিটি ডিভাইসের সর্বশেষ রিপোর্ট করা স্ট্যাটাস এবং প্রত্যাশিত স্থিতি সঞ্চয় করে এবং ডিভাইসটি অফলাইনে থাকলেও, এটি APIs কল করে স্ট্যাটাস পেতে পারে। ডিভাইস শ্যাডো সবসময়-অন-অন API প্রদান করে, যা ডিভাইসের সাথে ইন্টারঅ্যাক্ট করে এমন স্মার্টফোন অ্যাপ তৈরি করা সহজ করে তোলে।
অপারেশন এবং রক্ষণাবেক্ষণ O&M ফাংশনে তিনটি দিক রয়েছে: · IoT ডিভাইস এবং বিজ্ঞপ্তি সম্পর্কে পরিসংখ্যানগত তথ্য প্রদর্শন করা। লগ ম্যানেজমেন্ট ডিভাইসের আচরণ, আপ/ডাউন বার্তা প্রবাহ, এবং বার্তা সামগ্রী সম্পর্কে তথ্য পুনরুদ্ধারের অনুমতি দেয়। · ডিভাইস ডিবাগিং কমান্ড ডেলিভারি, কনফিগারেশন আপডেট এবং IoT ক্লাউড প্ল্যাটফর্ম এবং ডিভাইস বার্তাগুলির মধ্যে মিথস্ক্রিয়া পরীক্ষা করা সমর্থন করে।
2.2 অনুশীলন: স্মার্ট লাইট প্রকল্প
প্রতিটি অধ্যায়ে তাত্ত্বিক ভূমিকার পরে, আপনি হাতে-কলমে অভিজ্ঞতা পেতে সাহায্য করার জন্য স্মার্ট লাইট প্রকল্পের সাথে সম্পর্কিত একটি অনুশীলন বিভাগ পাবেন। প্রকল্পটি Espressif-এর ESP32-C3 চিপ এবং ESP RainMaker IoT ক্লাউড প্ল্যাটফর্মের উপর ভিত্তি করে তৈরি করা হয়েছে, এবং স্মার্ট লাইট প্রোডাক্টে ওয়্যারলেস মডিউল হার্ডওয়্যার, ESP32C3, স্মার্টফোন অ্যাপস এবং ESP RainMaker ইন্টারঅ্যাকশনের উপর ভিত্তি করে স্মার্ট ডিভাইসের জন্য এমবেডেড সফ্টওয়্যার কভার করে।
সোর্স কোড আরও ভাল শেখার এবং বিকাশের অভিজ্ঞতার জন্য, এই বইয়ের প্রকল্পটি ওপেনসোর্স করা হয়েছে। আপনি https://github-এ আমাদের GitHub সংগ্রহস্থল থেকে সোর্স কোড ডাউনলোড করতে পারেন। com/espressif/book-esp32c3-iot-projects।
12 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
2.2.1 প্রকল্পের কাঠামো
স্মার্ট লাইট প্রকল্প তিনটি অংশ নিয়ে গঠিত: i. ESP32-C3 এর উপর ভিত্তি করে স্মার্ট লাইট ডিভাইস, IoT ক্লাউড প্ল্যাটফর্মের সাথে ইন্টারঅ্যাক্ট করার জন্য এবং LED l-এর সুইচ, উজ্জ্বলতা এবং রঙের তাপমাত্রা নিয়ন্ত্রণ করার জন্য দায়ীamp জপমালা ii. স্মার্টফোন অ্যাপগুলি (অ্যান্ড্রয়েড এবং iOS-এ চলমান ট্যাবলেট অ্যাপ সহ), স্মার্ট লাইট পণ্যগুলির নেটওয়ার্ক কনফিগারেশনের জন্য দায়ী, সেইসাথে তাদের স্থিতি অনুসন্ধান এবং নিয়ন্ত্রণ করার জন্য।
iii. ESP RainMaker ভিত্তিক একটি IoT ক্লাউড প্ল্যাটফর্ম। সরলীকরণের জন্য, আমরা এই বইটিতে IoT ক্লাউড প্ল্যাটফর্ম এবং ব্যবসা সার্ভারকে সামগ্রিকভাবে বিবেচনা করি। ESP RainMaker সম্পর্কে বিশদ বিবরণ অধ্যায় 3 এ প্রদান করা হবে।
স্মার্ট লাইট প্রকল্পের কাঠামো এবং IoT-এর আর্কিটেকচারের মধ্যে চিঠিপত্র চিত্র 2.1-এ দেখানো হয়েছে।
চিত্র 2.1। স্মার্ট আলো প্রকল্পের কাঠামো
2.2.2 প্রকল্পের কার্যাবলী
গঠন অনুযায়ী বিভক্ত, প্রতিটি অংশের ফাংশন নিম্নরূপ। স্মার্ট লাইট ডিভাইস
· নেটওয়ার্ক কনফিগারেশন এবং সংযোগ। · LED PWM নিয়ন্ত্রণ, যেমন সুইচ, উজ্জ্বলতা, রঙের তাপমাত্রা, ইত্যাদি। · অটোমেশন বা দৃশ্য নিয়ন্ত্রণ, যেমন, সময় সুইচ। ফ্ল্যাশের এনক্রিপশন এবং সুরক্ষিত বুট। · ফার্মওয়্যার আপগ্রেড এবং সংস্করণ ব্যবস্থাপনা।
অধ্যায় 2. IoT প্রকল্পগুলির পরিচিতি এবং অনুশীলন 13
স্মার্টফোন অ্যাপস · নেটওয়ার্ক কনফিগারেশন এবং ডিভাইস বাইন্ডিং। · স্মার্ট আলো পণ্য নিয়ন্ত্রণ, যেমন সুইচ, উজ্জ্বলতা, রঙ তাপমাত্রা, ইত্যাদি · অটোমেশন বা দৃশ্য সেটিংস, যেমন, সময় সুইচ। · স্থানীয়/রিমোট কন্ট্রোল। · ব্যবহারকারী নিবন্ধন, লগইন, ইত্যাদি
ESP RainMaker IoT ক্লাউড প্ল্যাটফর্ম · IoT ডিভাইস অ্যাক্সেস সক্ষম করা। · স্মার্টফোন অ্যাপে অ্যাক্সেসযোগ্য ডিভাইস অপারেশন API প্রদান করা। · ফার্মওয়্যার আপগ্রেড এবং সংস্করণ ব্যবস্থাপনা।
2.2.3 হার্ডওয়্যার প্রস্তুতি
প্রকল্পটি বাস্তবায়িত করতে আগ্রহী হলে, আপনার নিম্নলিখিত হার্ডওয়্যারেরও প্রয়োজন হবে: স্মার্ট লাইট, স্মার্টফোন, ওয়াই-ফাই রাউটার এবং একটি কম্পিউটার যা উন্নয়ন পরিবেশের ইনস্টলেশন প্রয়োজনীয়তা পূরণ করে। স্মার্ট লাইট
স্মার্ট লাইট হল একটি নতুন ধরনের বাল্ব, যার আকৃতি সাধারণ ভাস্বর বাল্বের মতো। একটি স্মার্ট লাইট ক্যাপাসিটর স্টেপ-ডাউন নিয়ন্ত্রিত পাওয়ার সাপ্লাই, ওয়্যারলেস মডিউল (বিল্ট-ইন ESP32-C3 সহ), LED কন্ট্রোলার এবং RGB LED ম্যাট্রিক্স দ্বারা গঠিত। পাওয়ারের সাথে সংযুক্ত হলে, 15 V DC voltagক্যাপাসিটর স্টেপ-ডাউন, ডায়োড সংশোধন এবং নিয়ন্ত্রণের পরে আউটপুট এলইডি কন্ট্রোলার এবং এলইডি ম্যাট্রিক্সে শক্তি সরবরাহ করে। LED কন্ট্রোলার স্বয়ংক্রিয়ভাবে নির্দিষ্ট ব্যবধানে উচ্চ এবং নিম্ন স্তর পাঠাতে পারে, RGB LED ম্যাট্রিক্সকে বন্ধ (লাইট অন) এবং খোলা (লাইট অফ) এর মধ্যে স্যুইচ করে, যাতে এটি সায়ান, হলুদ, সবুজ, বেগুনি, নীল, লাল এবং সাদা আলো. ওয়্যারলেস মডিউলটি Wi-Fi রাউটারের সাথে সংযোগ স্থাপন, স্মার্ট লাইটের স্থিতি গ্রহণ এবং প্রতিবেদন করার জন্য এবং LED নিয়ন্ত্রণ করার জন্য কমান্ড পাঠানোর জন্য দায়ী।
চিত্র 2.2। একটি সিমুলেটেড স্মার্ট লাইট
প্রাথমিক বিকাশে এসtagই, আপনি RGB LED l এর সাথে সংযুক্ত ESP32-C3DevKitM-1 বোর্ড ব্যবহার করে একটি স্মার্ট আলো অনুকরণ করতে পারেনamp জপমালা (চিত্র 2.2 দেখুন)। কিন্তু আপনার উচিত
14 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
মনে রাখবেন যে এটি একটি স্মার্ট আলো একত্রিত করার একমাত্র উপায় নয়। এই বইয়ের প্রকল্পের হার্ডওয়্যার ডিজাইনে শুধুমাত্র একটি বেতার মডিউল রয়েছে (বিল্ট-ইন ESP32-C3 সহ), কিন্তু একটি সম্পূর্ণ স্মার্ট লাইট হার্ডওয়্যার ডিজাইন নয়। এছাড়াও, Espressif একটি ESP32-C3-ভিত্তিক অডিও ডেভেলপমেন্ট বোর্ড ESP32C3-Lyra তৈরি করে যাতে অডিও সহ লাইট নিয়ন্ত্রণ করা যায়। বোর্ডে মাইক্রোফোন এবং স্পিকারগুলির জন্য ইন্টারফেস রয়েছে এবং LED স্ট্রিপগুলি নিয়ন্ত্রণ করতে পারে। এটি অতি-স্বল্প-খরচ, উচ্চ কার্যকারিতা অডিও সম্প্রচারকারী এবং তাল আলো স্ট্রিপগুলির বিকাশের জন্য ব্যবহার করা যেতে পারে। চিত্র 2.3 একটি ESP32-C3Lyra বোর্ড দেখায় যা 40টি LED লাইটের একটি স্ট্রিপের সাথে সংযুক্ত।
চিত্র 2.3। ESP32-C3-Lyra 40টি LED লাইটের একটি স্ট্রিপের সাথে সংযুক্ত
স্মার্টফোন (Android/iOS) স্মার্ট লাইট প্রোজেক্টে স্মার্ট লাইট প্রোডাক্ট সেট আপ এবং নিয়ন্ত্রণ করার জন্য একটি স্মার্টফোন অ্যাপ তৈরি করা জড়িত।
Wi-Fi রাউটার Wi-Fi রাউটারগুলি তারযুক্ত নেটওয়ার্ক সিগন্যাল এবং মোবাইল নেটওয়ার্ক সিগন্যালগুলিকে ওয়্যারলেস নেটওয়ার্ক সিগন্যালে রূপান্তর করে, কম্পিউটার, স্মার্টফোন, ট্যাবলেট এবং অন্যান্য ওয়্যারলেস ডিভাইসগুলিকে নেটওয়ার্কে সংযুক্ত করার জন্য। প্রাক্তন জন্যampতাই, ওয়াই-ফাই ডিভাইসের ওয়্যারলেস নেটওয়ার্কিং অর্জন করতে বাড়িতে ব্রডব্যান্ডকে শুধুমাত্র একটি Wi-Fi রাউটারের সাথে সংযুক্ত করতে হবে। ওয়াই-ফাই রাউটার দ্বারা সমর্থিত মূলধারার প্রোটোকল স্ট্যান্ডার্ড হল IEEE 802.11n, যার গড় TxRate 300 Mbps, বা সর্বোচ্চ 600 Mbps। তারা IEEE 802.11b এবং IEEE 802.11g এর সাথে পশ্চাদপদ সামঞ্জস্যপূর্ণ। Espressif-এর ESP32-C3 চিপ IEEE 802.11b/g/n সমর্থন করে, তাই আপনি একটি একক-ব্যান্ড (2.4 GHz) বা ডুয়াল-ব্যান্ড (2.4 GHz এবং 5 GHz) Wi-Fi রাউটার বেছে নিতে পারেন।
একটি কম্পিউটার (লিনাক্স/ম্যাকওএস/উইন্ডোজ) ডেভেলপমেন্ট এনভায়রনমেন্ট 4 অধ্যায়ে চালু করা হবে। অধ্যায় 2। IoT প্রকল্পের পরিচিতি এবং অনুশীলন 15
২.২.৪ উন্নয়ন প্রক্রিয়া
চিত্র 2.4। স্মার্ট লাইট প্রকল্পের উন্নয়নের পদক্ষেপ
হার্ডওয়্যার ডিজাইন IoT ডিভাইসের হার্ডওয়্যার ডিজাইন একটি IoT প্রকল্পের জন্য অপরিহার্য। একটি সম্পূর্ণ স্মার্ট আলো প্রকল্প আল উত্পাদন করার উদ্দেশ্যে করা হয়amp মেইন সরবরাহের অধীনে কাজ করা। বিভিন্ন নির্মাতারা ঠ উত্পাদনamps বিভিন্ন শৈলী এবং ড্রাইভার ধরনের, কিন্তু তাদের বেতার মডিউল সাধারণত একই ফাংশন হয়। স্মার্ট লাইগ প্রকল্পের উন্নয়ন প্রক্রিয়া সহজ করার জন্য, এই বইটি কেবলমাত্র ওয়্যারলেস মডিউলগুলির হার্ডওয়্যার ডিজাইন এবং সফ্টওয়্যার বিকাশকে কভার করে।
IoT ক্লাউড প্ল্যাটফর্ম কনফিগারেশন IoT ক্লাউড প্ল্যাটফর্ম ব্যবহার করার জন্য, আপনাকে ব্যাকএন্ডে প্রোজেক্ট কনফিগার করতে হবে, যেমন পণ্য তৈরি করা, ডিভাইস তৈরি করা, ডিভাইসের বৈশিষ্ট্য সেট করা ইত্যাদি।
IoT ডিভাইসের জন্য এমবেডেড সফ্টওয়্যার ডেভেলপমেন্ট ESP-IDF, Espressif-এর ডিভাইস-সাইড SDK এর সাথে প্রত্যাশিত ফাংশন বাস্তবায়ন করে, যার মধ্যে IoT ক্লাউড প্ল্যাটফর্মের সাথে সংযোগ স্থাপন, LED ড্রাইভার তৈরি করা এবং ফার্মওয়্যার আপগ্রেড করা।
স্মার্টফোন অ্যাপ ডেভেলপমেন্ট ব্যবহারকারীর নিবন্ধন এবং লগইন, ডিভাইস নিয়ন্ত্রণ এবং অন্যান্য ফাংশন উপলব্ধি করতে অ্যান্ড্রয়েড এবং iOS সিস্টেমের জন্য স্মার্টফোন অ্যাপ তৈরি করুন।
IoT ডিভাইস অপ্টিমাইজেশান একবার IoT ডিভাইস ফাংশনগুলির মৌলিক বিকাশ সম্পন্ন হলে, আপনি পাওয়ার অপ্টিমাইজেশনের মতো অপ্টিমাইজেশন কাজগুলিতে যেতে পারেন।
ব্যাপক উৎপাদন পরীক্ষা সম্পর্কিত মান অনুযায়ী ব্যাপক উৎপাদন পরীক্ষা করা, যেমন সরঞ্জাম ফাংশন পরীক্ষা, বয়স পরীক্ষা, RF পরীক্ষা, ইত্যাদি।
উপরে তালিকাভুক্ত পদক্ষেপগুলি সত্ত্বেও, একটি স্মার্ট লাইট প্রকল্প অগত্যা এই জাতীয় পদ্ধতির অধীন নয় কারণ একই সময়ে বিভিন্ন কাজও করা যেতে পারে। প্রাক্তন জন্যampলে, এমবেডেড সফ্টওয়্যার এবং স্মার্টফোন অ্যাপগুলি সমান্তরালভাবে বিকাশ করা যেতে পারে। IoT ডিভাইস অপ্টিমাইজেশান এবং ব্যাপক উত্পাদন পরীক্ষা করার মতো কিছু পদক্ষেপও পুনরাবৃত্তি করতে হতে পারে।
16 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
2.3 সারাংশ
এই অধ্যায়ে, আমরা প্রথমে একটি IoT প্রকল্পের মৌলিক উপাদান এবং কার্যকরী মডিউলগুলি ব্যাখ্যা করেছি, তারপর অনুশীলনের জন্য স্মার্ট লাইট কেসটি চালু করেছি, এর গঠন, কার্যকারিতা, হার্ডওয়্যার প্রস্তুতি এবং বিকাশ প্রক্রিয়া উল্লেখ করে। পাঠকরা অনুশীলন থেকে অনুমান আঁকতে পারেন এবং ভবিষ্যতে ন্যূনতম ভুল সহ IoT প্রকল্পগুলি পরিচালনা করতে আত্মবিশ্বাসী হতে পারেন।
অধ্যায় 2. IoT প্রকল্পগুলির পরিচিতি এবং অনুশীলন 17
18 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
অধ্যায় 3
ভূমিকা
থেকে
ইএসপি
রেইনমেকার
ইন্টারনেট অফ থিংস (IoT) মানুষের জীবনযাত্রার পরিবর্তনের জন্য অফুরন্ত সম্ভাবনার অফার করে, তবুও IoT প্রকৌশলের বিকাশ চ্যালেঞ্জে পূর্ণ। পাবলিক ক্লাউডের সাথে, টার্মিনাল নির্মাতারা নিম্নলিখিত সমাধানগুলির মাধ্যমে পণ্য কার্যকারিতা বাস্তবায়ন করতে পারে:
সমাধান প্রদানকারীদের ক্লাউড প্ল্যাটফর্মের উপর ভিত্তি করে এইভাবে, টার্মিনাল নির্মাতাদের শুধুমাত্র পণ্য হার্ডওয়্যার ডিজাইন করতে হবে, তারপর প্রদত্ত যোগাযোগ মডিউল ব্যবহার করে হার্ডওয়্যারটিকে ক্লাউডের সাথে সংযুক্ত করতে হবে এবং নির্দেশিকা অনুসরণ করে পণ্য ফাংশনগুলি কনফিগার করতে হবে। এটি একটি দক্ষ পদ্ধতি কারণ এটি সার্ভার-সাইড এবং অ্যাপ্লিকেশন-সাইড ডেভেলপমেন্ট এবং অপারেশন এবং রক্ষণাবেক্ষণ (O&M) এর প্রয়োজনীয়তা দূর করে। এটি টার্মিনাল নির্মাতাদের ক্লাউড বাস্তবায়ন বিবেচনা না করেই হার্ডওয়্যার ডিজাইনে ফোকাস করার অনুমতি দেয়। যাইহোক, এই ধরনের সমাধানগুলি (যেমন, ডিভাইস ফার্মওয়্যার এবং অ্যাপ) সাধারণত ওপেন সোর্স নয়, তাই প্রোডাক্টের কার্যকারিতা প্রদানকারীর ক্লাউড প্ল্যাটফর্ম দ্বারা সীমাবদ্ধ থাকবে যা কাস্টমাইজ করা যাবে না। ইতিমধ্যে, ব্যবহারকারী এবং ডিভাইস ডেটাও ক্লাউড প্ল্যাটফর্মের অন্তর্গত।
ক্লাউড পণ্যের উপর ভিত্তি করে এই সমাধানে, হার্ডওয়্যার ডিজাইন সম্পূর্ণ করার পরে, টার্মিনাল নির্মাতাদের শুধুমাত্র পাবলিক ক্লাউড দ্বারা প্রদত্ত এক বা একাধিক ক্লাউড পণ্য ব্যবহার করে ক্লাউড ফাংশন বাস্তবায়ন করতে হবে না, তবে হার্ডওয়্যারটিকে ক্লাউডের সাথে লিঙ্ক করতে হবে। প্রাক্তন জন্যample, আমাজনের সাথে সংযোগ করতে Web পরিষেবা (AWS), টার্মিনাল নির্মাতাদের ডিভাইস অ্যাক্সেস, রিমোট কন্ট্রোল, ডেটা স্টোরেজ, ব্যবহারকারী ব্যবস্থাপনা এবং অন্যান্য মৌলিক ফাংশন সক্ষম করতে AWS পণ্য যেমন Amazon API গেটওয়ে, AWS IoT Core, এবং AWS Lambda ব্যবহার করতে হবে। এটি শুধুমাত্র টার্মিনাল নির্মাতাদের নমনীয়ভাবে ক্লাউড পণ্যগুলিকে গভীরতর বোঝাপড়া এবং সমৃদ্ধ অভিজ্ঞতার সাথে ব্যবহার এবং কনফিগার করতে বলে না, তবে তাদের প্রাথমিক এবং পরবর্তীগুলির জন্য নির্মাণ এবং রক্ষণাবেক্ষণের খরচ বিবেচনা করার প্রয়োজন হয়।tages এটি কোম্পানির শক্তি এবং সম্পদের জন্য বড় চ্যালেঞ্জ।
পাবলিক ক্লাউডের সাথে তুলনা করে, প্রাইভেট ক্লাউড সাধারণত নির্দিষ্ট প্রকল্প এবং পণ্যের জন্য তৈরি করা হয়। ব্যক্তিগত ক্লাউড বিকাশকারীদের প্রোটোকল ডিজাইন এবং ব্যবসায়িক যুক্তি বাস্তবায়নে সর্বোচ্চ স্তরের স্বাধীনতা দেওয়া হয়। টার্মিনাল নির্মাতারা ইচ্ছামতো পণ্য এবং ডিজাইন স্কিম তৈরি করতে পারে এবং সহজেই ব্যবহারকারীর ডেটা একত্রিত ও ক্ষমতায়ন করতে পারে। অ্যাডভানের সাথে পাবলিক ক্লাউডের উচ্চ নিরাপত্তা, স্কেলেবিলিটি এবং নির্ভরযোগ্যতার সমন্বয়tagব্যক্তিগত ক্লাউডের es, Espressif ESP চালু করেছে
19
RainMaker, Amazon ক্লাউডের উপর ভিত্তি করে একটি গভীরভাবে সমন্বিত ব্যক্তিগত ক্লাউড সমাধান। ব্যবহারকারীরা ESP RainMaker স্থাপন করতে পারে এবং একটি AWS অ্যাকাউন্ট দিয়ে ব্যক্তিগত ক্লাউড তৈরি করতে পারে।
3.1 ইএসপি রেইনমেকার কি?
ESP RainMaker হল একটি সম্পূর্ণ AIoT প্ল্যাটফর্ম যা একাধিক পরিপক্ক AWS পণ্যের সাথে তৈরি। এটি ডিভাইস ক্লাউড অ্যাক্সেস, ডিভাইস আপগ্রেড, ব্যাকএন্ড ম্যানেজমেন্ট, থার্ড-পার্টি লগইন, ভয়েস ইন্টিগ্রেশন এবং ব্যবহারকারী পরিচালনার মতো ব্যাপক উত্পাদনের জন্য প্রয়োজনীয় বিভিন্ন পরিষেবা সরবরাহ করে। AWS দ্বারা প্রদত্ত সার্ভারলেস অ্যাপ্লিকেশন রিপোজিটরি (SAR) ব্যবহার করে, টার্মিনাল নির্মাতারা দ্রুত তাদের AWS অ্যাকাউন্টে ESP RainMaker স্থাপন করতে পারে, যা সময়-দক্ষ এবং পরিচালনা করা সহজ। Espressif দ্বারা পরিচালিত এবং রক্ষণাবেক্ষণ করা, ESP RainMaker দ্বারা ব্যবহৃত SAR ডেভেলপারদের ক্লাউড রক্ষণাবেক্ষণের খরচ কমাতে এবং AIoT পণ্যগুলির বিকাশকে ত্বরান্বিত করতে সাহায্য করে, এইভাবে নিরাপদ, স্থিতিশীল এবং কাস্টমাইজযোগ্য AIoT সমাধান তৈরি করে৷ চিত্র 3.1 ইএসপি রেইনমেকারের আর্কিটেকচার দেখায়।
চিত্র 3.1। ইএসপি রেইনমেকারের আর্কিটেকচার
Espressif দ্বারা ESP RainMaker পাবলিক সার্ভার সমাধান মূল্যায়নের জন্য সমস্ত ESP উত্সাহী, নির্মাতা এবং শিক্ষাবিদদের জন্য বিনামূল্যে। বিকাশকারীরা Apple, Google, বা GitHub অ্যাকাউন্টগুলির সাথে লগ ইন করতে পারে এবং দ্রুত তাদের নিজস্ব IoT অ্যাপ্লিকেশন প্রোটোটাইপ তৈরি করতে পারে৷ পাবলিক সার্ভারটি আলেক্সা এবং গুগল হোমকে একীভূত করে এবং ভয়েস কন্ট্রোল পরিষেবা প্রদান করে, যা আলেক্সা স্কিল এবং গুগল অ্যাকশন দ্বারা সমর্থিত। এর শব্দার্থগত স্বীকৃতি ফাংশন তৃতীয় পক্ষ দ্বারা চালিত হয়। RainMaker IoT ডিভাইস শুধুমাত্র নির্দিষ্ট কর্মের জন্য সাড়া দেয়। সমর্থিত ভয়েস কমান্ডের একটি সম্পূর্ণ তালিকার জন্য, অনুগ্রহ করে তৃতীয় পক্ষের প্ল্যাটফর্মগুলি পরীক্ষা করুন৷ উপরন্তু, Espressif ব্যবহারকারীদের স্মার্টফোনের মাধ্যমে পণ্য নিয়ন্ত্রণ করার জন্য একটি পাবলিক RainMaker অ্যাপ অফার করে। 20 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক গাইড
3.2 ইএসপি রেইনমেকারের বাস্তবায়ন
চিত্র 3.2-তে দেখানো হয়েছে, ESP RainMaker-এর চারটি অংশ রয়েছে: · পরিষেবা দাবি করা, RainMaker ডিভাইসগুলিকে গতিশীলভাবে সার্টিফিকেট পেতে সক্ষম করে। · রেইনমেকার ক্লাউড (ক্লাউড ব্যাকএন্ড নামেও পরিচিত), মেসেজ ফিল্টারিং, ইউজার ম্যানেজমেন্ট, ডেটা স্টোরেজ এবং থার্ড-পার্টি ইন্টিগ্রেশনের মতো পরিষেবা প্রদান করে। · RainMaker এজেন্ট, RainMaker ডিভাইসগুলিকে RainMaker ক্লাউডের সাথে সংযোগ করতে সক্ষম করে। · রেইনমেকার ক্লায়েন্ট (রেইনমেকার অ্যাপ বা সিএলআই স্ক্রিপ্ট), প্রভিশনিং, ব্যবহারকারী তৈরি, ডিভাইস অ্যাসোসিয়েশন এবং নিয়ন্ত্রণ ইত্যাদির জন্য।
চিত্র 3.2। ইএসপি রেইনমেকারের কাঠামো
ইএসপি রেইনমেকার পণ্য বিকাশ এবং ব্যাপক উত্পাদনের জন্য সরঞ্জামগুলির একটি সম্পূর্ণ সেট সরবরাহ করে, যার মধ্যে রয়েছে: রেইনমেকার SDK
RainMaker SDK ESP-IDF এর উপর ভিত্তি করে এবং ফার্মওয়্যার ডেভেলপমেন্টের জন্য ডিভাইস-সাইড এজেন্ট এবং সম্পর্কিত C API-এর সোর্স কোড প্রদান করে। ডেভেলপারদের শুধুমাত্র অ্যাপ্লিকেশন লজিক লিখতে হবে এবং বাকিটা রেইনমেকার ফ্রেমওয়ার্কে ছেড়ে দিতে হবে। C API সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে https://bookc3.espressif.com/rm/c-api-reference দেখুন। RainMaker অ্যাপ রেইনমেকার অ্যাপের সর্বজনীন সংস্করণ ডেভেলপারদের ডিভাইসের ব্যবস্থা সম্পূর্ণ করতে এবং ডিভাইসের অবস্থা (যেমন, স্মার্ট আলো পণ্য) নিয়ন্ত্রণ ও অনুসন্ধান করতে দেয়। এটি iOS এবং অ্যান্ড্রয়েড অ্যাপ স্টোর উভয়েই পাওয়া যায়। আরও বিশদ বিবরণের জন্য, অনুগ্রহ করে অধ্যায় 10 পড়ুন। REST APIs REST APIগুলি ব্যবহারকারীদের RainMaker অ্যাপের মতো তাদের নিজস্ব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। আরও তথ্যের জন্য, দয়া করে https://swaggerapis.rainmaker.espressif.com/ দেখুন।
অধ্যায় 3. ইএসপি রেইনমেকার 21 এর ভূমিকা
Python APIs একটি পাইথন-ভিত্তিক CLI, যা RainMaker SDK-এর সাথে আসে, স্মার্টফোনের বৈশিষ্ট্যগুলির অনুরূপ সমস্ত ফাংশন বাস্তবায়নের জন্য প্রদান করা হয়। Python API সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে https://bookc3.espressif.com/rm/python-api-reference দেখুন।
অ্যাডমিন CLI অ্যাডমিন CLI, উচ্চ স্তরের অ্যাক্সেস সহ, ESP RainMaker ব্যক্তিগত স্থাপনার জন্য বাল্ক ডিভাইস শংসাপত্র তৈরি করার জন্য প্রদান করা হয়।
3.2.1 পরিষেবা দাবি করা
RainMaker ডিভাইস এবং ক্লাউড ব্যাকএন্ডের মধ্যে সমস্ত যোগাযোগ MQTT+TLS এর মাধ্যমে সম্পাদিত হয়। ESP RainMaker-এর প্রেক্ষাপটে, "ক্লেইমিং" হল সেই প্রক্রিয়া যেখানে ডিভাইসগুলি ক্লাউড ব্যাকএন্ডের সাথে সংযোগ করার জন্য দাবি পরিষেবা থেকে শংসাপত্র প্রাপ্ত করে। মনে রাখবেন যে দাবি পরিষেবা শুধুমাত্র পাবলিক রেইনমেকার পরিষেবার জন্য প্রযোজ্য, যখন ব্যক্তিগত স্থাপনার জন্য, অ্যাডমিন CLI-এর মাধ্যমে ডিভাইস শংসাপত্রগুলি বাল্ক তৈরি করতে হবে৷ ESP RainMaker তিন ধরনের ক্লেইমিং সার্ভিস সমর্থন করে: সেলফ ক্লেইমিং
ডিভাইসটি নিজেই ইন্টারনেটের সাথে সংযোগ করার পরে eFuse-এ প্রি-প্রোগ্রাম করা একটি গোপন কী-এর মাধ্যমে শংসাপত্রগুলি নিয়ে আসে৷ হোস্ট চালিত দাবি রেইনমেকার অ্যাকাউন্টের সাথে ডেভেলপমেন্ট হোস্ট থেকে সার্টিফিকেট প্রাপ্ত করা হয়। সহায়তামূলক দাবি প্রভিশনের সময় স্মার্টফোন অ্যাপ্লিকেশনের মাধ্যমে সার্টিফিকেট প্রাপ্ত করা হয়।
3.2.2 রেইনমেকার এজেন্ট
চিত্র 3.3। RainMaker SDK-এর কাঠামো RainMaker এজেন্টের প্রাথমিক কাজ হল সংযোগ প্রদান করা এবং আপলিঙ্ক/ডাউনলিংক ক্লাউড ডেটা প্রক্রিয়া করতে অ্যাপ্লিকেশন স্তরকে সহায়তা করা। এটি RainMaker SDK 22 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চারের মাধ্যমে তৈরি করা হয়েছে: IoT-এর জন্য একটি ব্যাপক গাইড
এবং RTOS, NVS, এবং MQTT এর মতো ESP-IDF উপাদান ব্যবহার করে প্রমাণিত ESP-IDF কাঠামোর উপর ভিত্তি করে তৈরি করা হয়েছে। চিত্র 3.3 রেইনমেকার SDK এর গঠন দেখায়।
রেইনমেকার এসডিকে দুটি প্রধান বৈশিষ্ট্য অন্তর্ভুক্ত করে।
সংযোগ
i ডিভাইস সার্টিফিকেট পেতে দাবি সেবার সাথে সহযোগিতা করা।
ii. নিরাপদ MQTT প্রোটোকল ব্যবহার করে ক্লাউড ব্যাকএন্ডের সাথে সংযোগ করা হচ্ছে দূরবর্তী সংযোগ প্রদান এবং রিমোট কন্ট্রোল, বার্তা রিপোর্টিং, ব্যবহারকারী ব্যবস্থাপনা, ডিভাইস ব্যবস্থাপনা, ইত্যাদি কার্যকর করার জন্য। এটি ডিফল্টরূপে ESP-IDF-এ MQTT উপাদান ব্যবহার করে এবং অন্যদের সাথে ইন্টারফেস করার জন্য একটি বিমূর্ত স্তর প্রদান করে। প্রোটোকল স্ট্যাক।
iii. Wi-Fi সংযোগ এবং প্রভিশনিংয়ের জন্য wifi প্রভিশনিং কম্পোনেন্ট, OTA আপগ্রেডের জন্য esp https ota কম্পোনেন্ট এবং স্থানীয় ডিভাইস আবিষ্কার এবং কানেকশনের জন্য esp লোকাল ctrl কম্পোনেন্ট। এই সমস্ত উদ্দেশ্যগুলি সহজ কনফিগারেশনের মাধ্যমে অর্জন করা যেতে পারে।
ডেটা প্রসেসিং
i ক্লেমিং সার্ভিস দ্বারা জারি করা ডিভাইস শংসাপত্র এবং রেইনমেকার চালানোর সময় প্রয়োজনীয় ডেটা সংরক্ষণ করা, ডিফল্টরূপে এনভিএস ফ্ল্যাশ উপাদান দ্বারা প্রদত্ত ইন্টারফেস ব্যবহার করে, এবং সরাসরি ব্যবহারের জন্য বিকাশকারীদের জন্য API প্রদান করে।
ii. আপলিঙ্ক/ডাউনলিঙ্ক ক্লাউড ডেটা প্রক্রিয়া করতে কলব্যাক প্রক্রিয়া ব্যবহার করে এবং বিকাশকারীদের দ্বারা সহজ প্রক্রিয়াকরণের জন্য অ্যাপ্লিকেশন স্তরে স্বয়ংক্রিয়ভাবে ডেটা আনব্লক করা। প্রাক্তন জন্যampলে, RainMaker SDK টিএসএল (থিং স্পেসিফিকেশন ল্যাঙ্গুয়েজ) ডেটা স্থাপনের জন্য সমৃদ্ধ ইন্টারফেস সরবরাহ করে, যা IoT ডিভাইসগুলিকে বর্ণনা করতে এবং সময়, কাউন্টডাউন এবং ভয়েস নিয়ন্ত্রণের মতো ফাংশনগুলি বাস্তবায়নের জন্য TSL মডেলগুলিকে সংজ্ঞায়িত করতে প্রয়োজন৷ বেসিক ইন্টারেক্টিভ বৈশিষ্ট্যগুলির জন্য যেমন টাইমিংয়ের জন্য, RainMaker SDK একটি বিকাশ-মুক্ত সমাধান সরবরাহ করে যা প্রয়োজনের সময় সহজভাবে সক্ষম করা যেতে পারে। তারপর, RainMaker এজেন্ট সরাসরি ডেটা প্রক্রিয়া করবে, সংশ্লিষ্ট MQTT বিষয়ের মাধ্যমে ক্লাউডে পাঠাবে এবং কলব্যাক প্রক্রিয়ার মাধ্যমে ক্লাউড ব্যাকএন্ডে ডেটা পরিবর্তনগুলি ফিডব্যাক করবে৷
3.2.3 ক্লাউড ব্যাকএন্ড
ক্লাউড ব্যাকএন্ড AWS সার্ভারলেস কম্পিউটিং-এ নির্মিত এবং AWS Cognito (পরিচয় ব্যবস্থাপনা সিস্টেম), Amazon API গেটওয়ে, AWS Lambda (সার্ভারবিহীন কম্পিউটিং পরিষেবা), Amazon DynamoDB (NoSQL ডাটাবেস), AWS IoT Core (IoT অ্যাক্সেস কোর যা MQTT অ্যাক্সেস প্রদান করে) এর মাধ্যমে অর্জন করা হয়েছে। এবং নিয়ম ফিল্টারিং), অ্যামাজন সিম্পল ইমেল সার্ভিস (এসইএস সিম্পল মেইল সার্ভিস), অ্যামাজন ক্লাউডফ্রন্ট (দ্রুত ডেলিভারি নেটওয়ার্ক), অ্যামাজন সিম্পল কিউ সার্ভিস (এসকিউএস মেসেজ সারি), এবং অ্যামাজন এস3 (বালতি স্টোরেজ পরিষেবা)। এটির লক্ষ্য হল স্কেলেবিলিটি এবং নিরাপত্তা অপ্টিমাইজ করা। ESP RainMaker-এর সাহায্যে, বিকাশকারীরা ক্লাউডে কোড না লিখেই ডিভাইসগুলি পরিচালনা করতে পারে। ডিভাইসগুলির দ্বারা রিপোর্ট করা বার্তাগুলি স্বচ্ছভাবে প্রেরণ করা হয়৷
অধ্যায় 3. ইএসপি রেইনমেকার 23 এর ভূমিকা
অ্যাপ্লিকেশন ক্লায়েন্ট বা অন্যান্য তৃতীয় পক্ষের পরিষেবা। সারণি 3.1 ক্লাউড ব্যাকএন্ডে ব্যবহৃত AWS ক্লাউড পণ্য এবং ফাংশনগুলি দেখায়, আরও পণ্য এবং বৈশিষ্ট্যগুলি বিকাশাধীন।
সারণি 3.1. ক্লাউড ব্যাকএন্ড দ্বারা ব্যবহৃত AWS ক্লাউড পণ্য এবং ফাংশন
RainMaker দ্বারা ব্যবহৃত AWS ক্লাউড পণ্য
ফাংশন
AWS Cognito সম্পর্কে
ব্যবহারকারীর শংসাপত্র পরিচালনা করা এবং তৃতীয় পক্ষের লগইন সমর্থন করা
AWS ল্যাম্বডা
ক্লাউড ব্যাকএন্ডের মূল ব্যবসায়িক যুক্তি প্রয়োগ করা
অ্যামাজন টাইমস্ট্রিম টাইম সিরিজ ডেটা সঞ্চয় করে
Amazon DynamoDB গ্রাহকদের ব্যক্তিগত তথ্য সংরক্ষণ করে
AWS IoT কোর
MQTT যোগাযোগ সমর্থন করে
অ্যামাজন এসইএস
ইমেল পাঠানোর পরিষেবা প্রদান করা
অ্যামাজন ক্লাউডফ্রন্ট ব্যাকএন্ড পরিচালনাকে ত্বরান্বিত করছে webসাইট অ্যাক্সেস
অ্যামাজন এসকিউএস
AWS IoT Core থেকে বার্তা ফরওয়ার্ড করা
3.2.4 রেইনমেকার ক্লায়েন্ট
RainMaker ক্লায়েন্ট, যেমন App এবং CLI, REST API-এর মাধ্যমে ক্লাউড ব্যাকএন্ডের সাথে যোগাযোগ করে। REST API সম্পর্কে বিস্তারিত তথ্য এবং নির্দেশাবলী Espressif দ্বারা প্রদত্ত Swagger ডকুমেন্টেশনে পাওয়া যাবে। RainMaker এর মোবাইল অ্যাপ্লিকেশন ক্লায়েন্ট iOS এবং Android উভয় সিস্টেমের জন্য উপলব্ধ। এটি ডিভাইসের বিধান, নিয়ন্ত্রণ এবং ভাগ করে নেওয়ার পাশাপাশি কাউন্টডাউন কাজগুলি তৈরি এবং সক্ষম করে এবং তৃতীয় পক্ষের প্ল্যাটফর্মগুলিতে সংযোগ করার অনুমতি দেয়। এটি ডিভাইসগুলির দ্বারা রিপোর্ট করা কনফিগারেশন অনুযায়ী স্বয়ংক্রিয়ভাবে UI এবং আইকনগুলি লোড করতে পারে এবং ডিভাইসটি সম্পূর্ণরূপে TSL প্রদর্শন করতে পারে৷
প্রাক্তন জন্যample, যদি একটি স্মার্ট আলো RainMaker SDK-প্রদত্ত প্রাক্তন উপর নির্মিত হয়amples, প্রভিশনিং সম্পন্ন হলে বাল্ব লাইটের আইকন এবং UI স্বয়ংক্রিয়ভাবে লোড হবে। ব্যবহারকারীরা ইন্টারফেসের মাধ্যমে আলোর রঙ এবং উজ্জ্বলতা পরিবর্তন করতে পারে এবং তাদের ESP RainMaker অ্যাকাউন্টে Alexa Smart Home Skill বা Google Smart Home Actions লিঙ্ক করে তৃতীয় পক্ষের নিয়ন্ত্রণ অর্জন করতে পারে। চিত্র 3.4 আইকন এবং UI প্রাক্তন দেখায়ampঅ্যালেক্সা, গুগল হোম, এবং ইএসপি রেইনমেকার অ্যাপে যথাক্রমে বাল্ব আলো।
24 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
(ক) উদাঃampলে - অ্যালেক্সা
(খ) উদাঃample - গুগল হোম
(গ) উদাঃample - ইএসপি রেইনমেকার
চিত্র 3.4. প্রাক্তনampAlexa, Google Home, এবং ESP RainMaker অ্যাপে বাল্ব লাইটের আইকন এবং UI এর লেস
3.3 অনুশীলন: ইএসপি রেইনমেকারের সাথে বিকাশের জন্য মূল পয়েন্টগুলি
ডিভাইস ড্রাইভার লেয়ার সম্পূর্ণ হয়ে গেলে, ডেভেলপাররা টিএসএল মডেল তৈরি করা শুরু করতে পারে এবং RainMaker SDK দ্বারা প্রদত্ত API ব্যবহার করে ডাউনলিংক ডেটা প্রক্রিয়া করতে পারে এবং পণ্যের সংজ্ঞা এবং প্রয়োজনীয়তার উপর ভিত্তি করে ESP RainMaker মৌলিক পরিষেবাগুলি সক্ষম করতে পারে৷
অধ্যায় 3. ইএসপি রেইনমেকার 25 এর ভূমিকা
এই বইয়ের অধ্যায় 9.4 রেইনমেকারে LED স্মার্ট লাইটের বাস্তবায়ন ব্যাখ্যা করবে। ডিবাগিংয়ের সময়, ডেভেলপাররা রেইনমেকার SDK-এ CLI টুল ব্যবহার করতে পারে স্মার্ট লাইটের সাথে যোগাযোগ করতে (বা Swagger থেকে REST API কল করুন)।
অধ্যায় 10 স্মার্টফোন অ্যাপ্লিকেশন বিকাশে REST API-এর ব্যবহার বিশদভাবে বর্ণনা করবে। LED স্মার্ট লাইটের OTA আপগ্রেডগুলি অধ্যায় 11-এ কভার করা হবে। যদি বিকাশকারীরা ESP ইনসাইটস রিমোট মনিটরিং সক্ষম করে থাকে, তাহলে ESP RainMaker ম্যানেজমেন্ট ব্যাকএন্ড ESP ইনসাইটস ডেটা প্রদর্শন করবে। বিশদ বিবরণ 15 অধ্যায়ে উপস্থাপন করা হবে।
ESP RainMaker ব্যক্তিগত স্থাপনা সমর্থন করে, যা নিম্নোক্ত উপায়ে সর্বজনীন রেইনমেকার সার্ভার থেকে পৃথক:
পরিষেবা দাবি করা ব্যক্তিগত স্থাপনায় শংসাপত্র তৈরি করতে, দাবি করার পরিবর্তে রেইনমেকার অ্যাডমিন CLI ব্যবহার করতে হবে। পাবলিক সার্ভারের সাথে, বিকাশকারীদের অবশ্যই ফার্মওয়্যার আপগ্রেড বাস্তবায়নের জন্য প্রশাসক অধিকার দেওয়া উচিত, তবে বাণিজ্যিক স্থাপনায় এটি অবাঞ্ছিত। অতএব, স্ব-দাবি করার জন্য পৃথক প্রমাণীকরণ পরিষেবা প্রদান করা যাবে না, বা হোস্ট চালিত বা সহায়ক দাবির জন্য প্রশাসক অধিকারও দেওয়া যাবে না।
ফোন অ্যাপ্লিকেশানগুলি ব্যক্তিগত স্থাপনায়, অ্যাকাউন্ট সিস্টেমগুলি যাতে ইন্টারঅপারেবল না হয় তা নিশ্চিত করার জন্য অ্যাপ্লিকেশনগুলিকে আলাদাভাবে কনফিগার এবং কম্পাইল করা দরকার৷
3য় পক্ষের লগইন এবং ভয়েস ইন্টিগ্রেশন ডেভেলপারদেরকে Google এবং Apple ডেভেলপার অ্যাকাউন্টের মাধ্যমে আলাদাভাবে কনফিগার করতে হবে 3য় পক্ষের লগইন, সেইসাথে Alexa Skill এবং Google Voice সহকারী ইন্টিগ্রেশন সক্ষম করতে।
টিপস ক্লাউড স্থাপনার বিষয়ে বিস্তারিত জানার জন্য, অনুগ্রহ করে https://customer.rainmaker.espressif দেখুন। com. ফার্মওয়্যারের পরিপ্রেক্ষিতে, পাবলিক সার্ভার থেকে প্রাইভেট সার্ভারে মাইগ্রেশনের জন্য শুধুমাত্র ডিভাইস সার্টিফিকেট প্রতিস্থাপন করা প্রয়োজন, যা মাইগ্রেশন দক্ষতাকে ব্যাপকভাবে উন্নত করে এবং মাইগ্রেশন এবং সেকেন্ডারি ডিবাগিংয়ের খরচ কমায়।
3.4 ইএসপি রেইনমেকারের বৈশিষ্ট্য
ইএসপি রেইনমেকার বৈশিষ্ট্যগুলি মূলত তিনটি দিকে লক্ষ্য করা হয় - ব্যবহারকারী ব্যবস্থাপনা, শেষ ব্যবহারকারী এবং প্রশাসক। অন্যথায় বলা না থাকলে সমস্ত বৈশিষ্ট্য পাবলিক এবং প্রাইভেট সার্ভারে সমর্থিত।
3.4.1 ব্যবহারকারী ব্যবস্থাপনা
ব্যবহারকারী ব্যবস্থাপনা বৈশিষ্ট্যগুলি শেষ ব্যবহারকারীদের নিবন্ধন, লগ ইন, পাসওয়ার্ড পরিবর্তন, পাসওয়ার্ড পুনরুদ্ধার ইত্যাদি করার অনুমতি দেয়।
26 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
রেজিস্টার করুন এবং লগ ইন করুন রেইনমেকার দ্বারা সমর্থিত রেজিস্ট্রেশন এবং লগইন পদ্ধতিগুলির মধ্যে রয়েছে: · ইমেল আইডি + পাসওয়ার্ড · ফোন নম্বর + পাসওয়ার্ড · গুগল অ্যাকাউন্ট · অ্যাপল অ্যাকাউন্ট · গিটহাব অ্যাকাউন্ট (শুধুমাত্র পাবলিক সার্ভার) · অ্যামাজন অ্যাকাউন্ট (শুধুমাত্র ব্যক্তিগত সার্ভার)
দ্রষ্টব্য Google/Amazon ব্যবহার করে সাইন আপ করুন ব্যবহারকারীর ইমেল ঠিকানা RainMaker-এর সাথে শেয়ার করে। অ্যাপল ব্যবহার করে সাইন আপ করুন একটি ডামি ঠিকানা শেয়ার করে যা অ্যাপল ব্যবহারকারীর জন্য নির্দিষ্ট করে রেইনমেকার পরিষেবার জন্য। প্রথমবার Google, Apple, বা Amazon অ্যাকাউন্ট দিয়ে সাইন ইন করা ব্যবহারকারীদের জন্য একটি RainMaker অ্যাকাউন্ট স্বয়ংক্রিয়ভাবে তৈরি হবে।
পাসওয়ার্ড পরিবর্তন করুন শুধুমাত্র ইমেল আইডি/ফোন নম্বর ভিত্তিক লগইনের জন্য বৈধ। পাসওয়ার্ড পরিবর্তন করার পরে অন্য সমস্ত সক্রিয় সেশন লগ আউট করা হবে। AWS কগনিটো আচরণ অনুসারে, লগ-আউট সেশনগুলি 1 ঘন্টা পর্যন্ত সক্রিয় থাকতে পারে।
পাসওয়ার্ড পুনরুদ্ধার শুধুমাত্র ইমেল আইডি/ফোন নম্বর ভিত্তিক লগইনের জন্য বৈধ।
3.4.2 শেষ ব্যবহারকারীর বৈশিষ্ট্য
শেষ ব্যবহারকারীদের জন্য উন্মুক্ত বৈশিষ্ট্যগুলির মধ্যে রয়েছে স্থানীয় এবং রিমোট কন্ট্রোল এবং পর্যবেক্ষণ, সময়সূচী, ডিভাইস গ্রুপিং, ডিভাইস শেয়ারিং, পুশ নোটিফিকেশন এবং তৃতীয় পক্ষের ইন্টিগ্রেশন।
রিমোট কন্ট্রোল এবং পর্যবেক্ষণ · একটি বা সমস্ত ডিভাইসের জন্য ক্যোয়ারী কনফিগারেশন, প্যারামিটার মান এবং সংযোগের অবস্থা। একক বা একাধিক ডিভাইসের জন্য পরামিতি সেট করুন।
স্থানীয় নিয়ন্ত্রণ এবং পর্যবেক্ষণ স্থানীয় নিয়ন্ত্রণের জন্য মোবাইল ফোন এবং ডিভাইসটিকে একই নেটওয়ার্কের সাথে সংযুক্ত করতে হবে।
সময়সূচী · ব্যবহারকারীরা একটি নির্দিষ্ট সময়ে নির্দিষ্ট ক্রিয়াগুলি পূর্ব-সেট করে। · সময়সূচী কার্যকর করার সময় ডিভাইসের জন্য কোনো ইন্টারনেট সংযোগের প্রয়োজন নেই। একক বা একাধিক ডিভাইসের জন্য এক বার বা পুনরাবৃত্তি (দিন নির্দিষ্ট করে)।
ডিভাইস গ্রুপিং মাল্টি-লেভেল অ্যাবস্ট্রাক্ট গ্রুপিং সমর্থন করে একটি হোম রুম কাঠামো তৈরি করতে গ্রুপ মেটাডেটা ব্যবহার করা যেতে পারে।
অধ্যায় 3. ইএসপি রেইনমেকার 27 এর ভূমিকা
ডিভাইস শেয়ারিং এক বা একাধিক ডিভাইস এক বা একাধিক ব্যবহারকারীর সাথে শেয়ার করা যেতে পারে।
পুশ বিজ্ঞপ্তিগুলি শেষ ব্যবহারকারীরা ইভেন্টগুলির জন্য পুশ বিজ্ঞপ্তি পাবেন যেমন · নতুন ডিভাইস(গুলি) যুক্ত/সরানো হয়েছে · ক্লাউডের সাথে সংযুক্ত ডিভাইস · ক্লাউড থেকে ডিভাইস সংযোগ বিচ্ছিন্ন · ডিভাইস শেয়ারিং অনুরোধ তৈরি/স্বীকৃত/অস্বীকৃত · ডিভাইসগুলির দ্বারা রিপোর্ট করা সতর্কতা বার্তাগুলি
থার্ড পার্টি ইন্টিগ্রেশন অ্যালেক্সা এবং গুগল ভয়েস অ্যাসিস্ট্যান্ট রেইনমেকার ডিভাইসগুলিকে নিয়ন্ত্রণ করতে সমর্থিত, যার মধ্যে রয়েছে লাইট, সুইচ, সকেট, ফ্যান এবং তাপমাত্রা সেন্সর।
3.4.3 অ্যাডমিন বৈশিষ্ট্য
প্রশাসক বৈশিষ্ট্যগুলি প্রশাসকদের ডিভাইস নিবন্ধন, ডিভাইস গ্রুপিং এবং OTA আপগ্রেডগুলি বাস্তবায়ন করতে দেয় এবং view পরিসংখ্যান এবং ESP অন্তর্দৃষ্টি ডেটা।
ডিভাইস নিবন্ধন ডিভাইস শংসাপত্র তৈরি করুন এবং অ্যাডমিন CLI (শুধুমাত্র ব্যক্তিগত সার্ভার) এর সাথে নিবন্ধন করুন।
ডিভাইস গ্রুপিং ডিভাইস তথ্যের উপর ভিত্তি করে বিমূর্ত বা কাঠামোগত গ্রুপ তৈরি করুন (কেবল ব্যক্তিগত সার্ভার)।
ওভার-দ্য-এয়ার (OTA) আপগ্রেড করে সংস্করণ এবং মডেলের উপর ভিত্তি করে ফার্মওয়্যার আপলোড করে, এক বা একাধিক ডিভাইসে বা একটি গ্রুপ মনিটর, বাতিল, বা OTA জব আর্কাইভ করে৷
View পরিসংখ্যান Viewসক্ষম পরিসংখ্যান অন্তর্ভুক্ত: · ডিভাইস নিবন্ধন (প্রশাসক দ্বারা নিবন্ধিত শংসাপত্র) · ডিভাইস সক্রিয়করণ (ডিভাইস প্রথমবার সংযুক্ত) · ব্যবহারকারীর অ্যাকাউন্ট · ব্যবহারকারী-ডিভাইস অ্যাসোসিয়েশন
View ESP অন্তর্দৃষ্টি ডেটা Viewসক্ষম ESP অন্তর্দৃষ্টি ডেটা অন্তর্ভুক্ত: · ত্রুটি, সতর্কতা, এবং কাস্টম লগ · ক্র্যাশ রিপোর্ট এবং বিশ্লেষণ · রিবুট কারণ · মেট্রিক্স যেমন মেমরি ব্যবহার, RSSI, ইত্যাদি · কাস্টম মেট্রিক্স এবং ভেরিয়েবল
28 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
3.5 সারাংশ
এই অধ্যায়ে, আমরা পাবলিক রেইনমেকার স্থাপনা এবং ব্যক্তিগত স্থাপনার মধ্যে কিছু মূল পার্থক্য উপস্থাপন করেছি। Espressif দ্বারা চালু করা ব্যক্তিগত ESP RainMaker সমাধান অত্যন্ত নির্ভরযোগ্য এবং এক্সটেনসিবল। সমস্ত ESP32 সিরিজ চিপ সংযুক্ত করা হয়েছে এবং AWS-এর সাথে অভিযোজিত হয়েছে, যা খরচকে অনেকাংশে কমিয়ে দেয়। বিকাশকারীরা AWS ক্লাউড পণ্যগুলি সম্পর্কে না শিখে প্রোটোটাইপ যাচাইকরণে ফোকাস করতে পারে৷ আমরা ESP RainMaker-এর বাস্তবায়ন এবং বৈশিষ্ট্য এবং প্ল্যাটফর্ম ব্যবহার করে উন্নয়নের জন্য কিছু মূল বিষয় ব্যাখ্যা করেছি।
Android এর জন্য ESP RainMaker ডাউনলোড করতে স্ক্যান করুন iOS এর জন্য ESP RainMaker ডাউনলোড করতে স্ক্যান করুন
অধ্যায় 3. ইএসপি রেইনমেকার 29 এর ভূমিকা
30 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
অধ্যায় 4 উন্নয়ন পরিবেশ স্থাপন
এই অধ্যায়টি ESP-IDF, ESP32-C3 এর জন্য অফিসিয়াল সফ্টওয়্যার ডেভেলপমেন্ট ফ্রেমওয়ার্কের উপর আলোকপাত করে। আমরা ব্যাখ্যা করব কিভাবে বিভিন্ন অপারেটিং সিস্টেমে পরিবেশ সেট আপ করতে হয়, এবং ESP-IDF-এর প্রকল্প কাঠামো এবং বিল্ড সিস্টেম, সেইসাথে সম্পর্কিত উন্নয়ন সরঞ্জামগুলির ব্যবহার প্রবর্তন করতে হয়। তারপর আমরা একটি প্রাক্তনের কম্পাইলিং এবং চলমান প্রক্রিয়া উপস্থাপন করবample প্রকল্প, প্রতিটি s এ আউটপুট লগের বিশদ ব্যাখ্যা দেওয়ার সময়tage.
4.1 ESP-IDF ওভারview
ESP-IDF (Espressif IoT ডেভেলপমেন্ট ফ্রেমওয়ার্ক) হল এসপ্রেসিফ টেকনোলজি দ্বারা প্রদত্ত একটি ওয়ান-স্টপ IoT ডেভেলপমেন্ট ফ্রেমওয়ার্ক। এটি প্রধান উন্নয়ন ভাষা হিসাবে C/C++ ব্যবহার করে এবং লিনাক্স, ম্যাক এবং উইন্ডোজের মতো মূলধারার অপারেটিং সিস্টেমের অধীনে ক্রস-সংকলন সমর্থন করে। প্রাক্তনampএই বইতে অন্তর্ভুক্ত le প্রোগ্রামগুলি ESP-IDF ব্যবহার করে তৈরি করা হয়েছে, যা নিম্নলিখিত বৈশিষ্ট্যগুলি অফার করে: · SoC সিস্টেম-স্তরের ড্রাইভার। ESP-IDF এর মধ্যে ESP32, ESP32-S2, ESP32-C3,
এবং অন্যান্য চিপস। এই ড্রাইভারগুলি পেরিফেরাল লো লেভেল (LL) লাইব্রেরি, হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) লাইব্রেরি, RTOS সাপোর্ট এবং আপার-লেয়ার ড্রাইভার সফ্টওয়্যার ইত্যাদি অন্তর্ভুক্ত করে। · প্রয়োজনীয় উপাদান। ESP-IDF IoT উন্নয়নের জন্য প্রয়োজনীয় মৌলিক উপাদানগুলিকে অন্তর্ভুক্ত করে। এর মধ্যে রয়েছে একাধিক নেটওয়ার্ক প্রোটোকল স্ট্যাক যেমন HTTP এবং MQTT, গতিশীল ফ্রিকোয়েন্সি মডুলেশন সহ একটি পাওয়ার ম্যানেজমেন্ট ফ্রেমওয়ার্ক এবং ফ্ল্যাশ এনক্রিপশন এবং সিকিউর বুট ইত্যাদির মতো বৈশিষ্ট্য। · উন্নয়ন এবং উত্পাদন সরঞ্জাম। ESP-IDF বিকাশ এবং ব্যাপক উৎপাদনের সময় নির্মাণ, ফ্ল্যাশ এবং ডিবাগিংয়ের জন্য সাধারণত ব্যবহৃত সরঞ্জাম সরবরাহ করে (চিত্র 4.1 দেখুন), যেমন CMake-এর উপর ভিত্তি করে বিল্ডিং সিস্টেম, GCC-এর উপর ভিত্তি করে ক্রস-কম্পাইলেশন টুল চেইন, এবং JTAG OpenOCD, ইত্যাদির উপর ভিত্তি করে ডিবাগিং টুল। এটা লক্ষণীয় যে ESP-IDF কোড প্রাথমিকভাবে Apache 2.0 ওপেন-সোর্স লাইসেন্স মেনে চলে। ব্যবহারকারীরা ওপেন সোর্স লাইসেন্সের শর্তাবলী মেনে চলার সময় সীমাবদ্ধতা ছাড়াই ব্যক্তিগত বা বাণিজ্যিক সফ্টওয়্যার বিকাশ করতে পারে। উপরন্তু, ব্যবহারকারীদের বিনামূল্যে স্থায়ী পেটেন্ট লাইসেন্স মঞ্জুর করা হয়, উৎস কোডে করা কোনো পরিবর্তন ওপেন-সোর্স করার বাধ্যবাধকতা ছাড়াই।
31
চিত্র 4.1।
বিল্ডিং, ফ্ল্যাশিং এবং ডিবাগ-
উন্নয়ন এবং ব্যাপক উত্পাদন জন্য ging সরঞ্জাম
4.1.1 ESP-IDF সংস্করণ
ইএসপি-আইডিএফ কোডটি একটি ওপেন সোর্স প্রকল্প হিসাবে গিটহাবে হোস্ট করা হয়েছে। বর্তমানে, তিনটি প্রধান সংস্করণ উপলব্ধ রয়েছে: v3, v4 এবং v5। প্রতিটি প্রধান সংস্করণে সাধারণত বিভিন্ন সাবভার্সন থাকে, যেমন v4.2, v4.3 ইত্যাদি। Espressif Systems প্রতিটি প্রকাশিত সাব-সংস্করণের জন্য বাগ ফিক্স এবং নিরাপত্তা প্যাচের জন্য 30-মাসের সমর্থন নিশ্চিত করে। তাই, সাবভার্সনগুলির সংশোধনগুলিও নিয়মিতভাবে প্রকাশিত হয়, যেমন v4.3.1, v4.2.2, ইত্যাদি। সারণি 4.1 এস্প্রেসিফ চিপগুলির জন্য বিভিন্ন ESP-IDF সংস্করণগুলির সমর্থন অবস্থা দেখায়, যা নির্দেশ করে যে তারা পূর্বে আছে কিনা।view stage (প্রাক জন্য সমর্থন প্রস্তাবview সংস্করণ, যার মধ্যে নির্দিষ্ট বৈশিষ্ট্য বা ডকুমেন্টেশনের অভাব থাকতে পারে) বা আনুষ্ঠানিকভাবে সমর্থিত।
টেবিল 4.1। Espressif চিপগুলির জন্য বিভিন্ন ESP-IDF সংস্করণের সমর্থন অবস্থা
সিরিজ ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 সমর্থিত
v4.2 সমর্থিত সমর্থিত
v4.3 সমর্থিত সমর্থিত সমর্থিত
v4.4 সমর্থিত সমর্থিত সমর্থিত সমর্থিত
প্রাকview
v5.0 সমর্থিত সমর্থিত সমর্থিত সমর্থিত সমর্থিত সমর্থিত প্রাকview
32 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
প্রধান সংস্করণগুলির পুনরাবৃত্তিতে প্রায়শই কাঠামোর কাঠামোর সমন্বয় এবং সংকলন সিস্টেমের আপডেট জড়িত থাকে। প্রাক্তন জন্যample, v3.* থেকে v4.*-এ প্রধান পরিবর্তন হল মেক থেকে CMake-এ বিল্ড সিস্টেমের ধীরে ধীরে স্থানান্তর। অন্যদিকে, ক্ষুদ্র সংস্করণের পুনরাবৃত্তির জন্য সাধারণত নতুন বৈশিষ্ট্য বা নতুন চিপগুলির জন্য সমর্থন যোগ করা হয়।
স্থিতিশীল সংস্করণ এবং GitHub শাখার মধ্যে সম্পর্ককে আলাদা করা এবং বোঝা গুরুত্বপূর্ণ। v*.* বা v*# হিসাবে লেবেল করা সংস্করণগুলি স্থিতিশীল সংস্করণগুলিকে উপস্থাপন করে যা Espressif দ্বারা সম্পূর্ণ অভ্যন্তরীণ পরীক্ষায় উত্তীর্ণ হয়েছে। একবার ঠিক হয়ে গেলে, একই সংস্করণের জন্য কোড, টুল চেইন এবং রিলিজ ডকুমেন্ট অপরিবর্তিত থাকে। যাইহোক, GitHub শাখাগুলি (যেমন, প্রকাশ/v4.3 শাখা) ঘন ঘন কোড কমিট করে, প্রায়ই প্রতিদিনের ভিত্তিতে। তাই, একই শাখার অধীনে দুটি কোড স্নিপেট আলাদা হতে পারে, যার ফলে ডেভেলপারদের তাদের কোড অবিলম্বে সেই অনুযায়ী আপডেট করতে হবে।
4.1.2 ESP-IDF গিট ওয়ার্কফ্লো
Espressif ESP-IDF এর জন্য একটি নির্দিষ্ট গিট ওয়ার্কফ্লো অনুসরণ করে, যা নিম্নরূপ বর্ণিত হয়েছে:
· মাস্টার শাখায় নতুন পরিবর্তন করা হয়েছে, যা প্রধান উন্নয়ন শাখা হিসাবে কাজ করে। মাস্টার শাখার ESP-IDF সংস্করণ সবসময় একটি -dev বহন করে tag ইঙ্গিত করতে যে এটি বর্তমানে বিকাশাধীন, যেমন v4.3-dev। মাস্টার শাখার পরিবর্তনগুলি প্রথমে পুনরায় হবেviewed এবং Espressif এর অভ্যন্তরীণ সংগ্রহস্থলে পরীক্ষিত, এবং তারপর স্বয়ংক্রিয় পরীক্ষা সম্পূর্ণ হওয়ার পরে GitHub-এ পুশ করা হয়।
· একবার একটি নতুন সংস্করণ মাস্টার শাখায় বৈশিষ্ট্য বিকাশ সম্পন্ন করে এবং বিটা পরীক্ষায় প্রবেশের মানদণ্ড পূরণ করলে, এটি একটি নতুন শাখায় রূপান্তরিত হয়, যেমন release/ v4.3। এ ছাড়া এই নতুন শাখাটি ড tagged একটি প্রাক-রিলিজ সংস্করণ, যেমন v4.3-beta1। বিকাশকারীরা শাখাগুলির সম্পূর্ণ তালিকা অ্যাক্সেস করতে গিটহাব প্ল্যাটফর্মে উল্লেখ করতে পারেন এবং tags ESP-IDF এর জন্য। এটা মনে রাখা গুরুত্বপূর্ণ যে বিটা সংস্করণে (প্রি-রিলিজ সংস্করণ) এখনও উল্লেখযোগ্য সংখ্যক পরিচিত সমস্যা থাকতে পারে। যেহেতু বিটা সংস্করণটি ক্রমাগত পরীক্ষার মধ্য দিয়ে যাচ্ছে, একই সাথে এই সংস্করণ এবং মাস্টার শাখা উভয়েই বাগ সংশোধন করা হয়েছে৷ ইতিমধ্যে, মাস্টার শাখা ইতিমধ্যেই পরবর্তী সংস্করণের জন্য নতুন বৈশিষ্ট্যগুলি তৈরি করতে শুরু করেছে৷ যখন পরীক্ষা প্রায় সম্পূর্ণ হয়, তখন শাখায় একটি রিলিজ প্রার্থী (rc) লেবেল যোগ করা হয়, যা নির্দেশ করে যে এটি v4.3-rc1-এর মতো অফিসিয়াল রিলিজের জন্য সম্ভাব্য প্রার্থী। এই এসtage, শাখাটি একটি প্রাক-প্রকাশিত সংস্করণ রয়ে গেছে।
· যদি কোন বড় বাগ আবিষ্কৃত না হয় বা রিপোর্ট করা না হয়, তবে প্রাক-রিলিজ সংস্করণটি শেষ পর্যন্ত একটি প্রধান সংস্করণ লেবেল (যেমন, v5.0) বা একটি ছোট সংস্করণ লেবেল (যেমন, v4.3) পায় এবং একটি অফিসিয়াল রিলিজ সংস্করণে পরিণত হয়, যা নথিভুক্ত করা হয়। রিলিজ নোট পৃষ্ঠায়. পরবর্তীকালে, এই সংস্করণে চিহ্নিত কোনো বাগ রিলিজ শাখায় সংশোধন করা হয়। ম্যানুয়াল টেস্টিং সম্পন্ন হওয়ার পর, শাখাটিকে একটি বাগ-ফিক্স সংস্করণ লেবেল (যেমন, v4.3.2) বরাদ্দ করা হয়, যা রিলিজ নোট পৃষ্ঠাতেও প্রতিফলিত হয়।
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 33
4.1.3 একটি উপযুক্ত সংস্করণ নির্বাচন করা
যেহেতু ESP-IDF আনুষ্ঠানিকভাবে v32 সংস্করণ থেকে ESP3-C4.3 সমর্থন করা শুরু করেছে, এবং এই বইটি লেখার সময় v4.4 এখনও আনুষ্ঠানিকভাবে প্রকাশিত হয়নি, তাই এই বইটিতে ব্যবহৃত সংস্করণটি v4.3.2, যা একটি সংশোধিত সংস্করণ। v4.3 এর। যাইহোক, এটি লক্ষ্য করা গুরুত্বপূর্ণ যে আপনি এই বইটি পড়ার সময়, v4.4 বা নতুন সংস্করণগুলি ইতিমধ্যে উপলব্ধ হতে পারে। একটি সংস্করণ নির্বাচন করার সময়, আমরা নিম্নলিখিত সুপারিশ:
· এন্ট্রি-লেভেল ডেভেলপারদের জন্য, স্থিতিশীল v4.3 সংস্করণ বা এর সংশোধিত সংস্করণ বেছে নেওয়ার পরামর্শ দেওয়া হয়, যা প্রাক্তনের সাথে সারিবদ্ধample সংস্করণ এই বইতে ব্যবহৃত.
· ব্যাপক উৎপাদনের উদ্দেশ্যে, সবচেয়ে আপ-টু-ডেট প্রযুক্তিগত সহায়তা থেকে উপকৃত হওয়ার জন্য সর্বশেষ স্থিতিশীল সংস্করণ ব্যবহার করার পরামর্শ দেওয়া হয়।
· আপনি যদি নতুন চিপ নিয়ে পরীক্ষা করতে চান বা নতুন পণ্যের বৈশিষ্ট্যগুলি অন্বেষণ করতে চান তবে দয়া করে মাস্টার শাখাটি ব্যবহার করুন৷ লেটেস্ট ভার্সনে সব লেটেস্ট ফিচার আছে, তবে মনে রাখবেন যে সেখানে পরিচিত বা অজানা বাগ থাকতে পারে।
· যদি স্থিতিশীল সংস্করণটি ব্যবহার করা হচ্ছে তাতে কাঙ্খিত নতুন বৈশিষ্ট্যগুলি অন্তর্ভুক্ত না থাকে এবং আপনি মাস্টার শাখার সাথে সম্পর্কিত ঝুঁকিগুলি কমিয়ে আনতে চান, তাহলে সংশ্লিষ্ট রিলিজ শাখা, যেমন রিলিজ/v4.4 শাখা ব্যবহার করার কথা বিবেচনা করুন। Espressif-এর GitHub সংগ্রহস্থল প্রথমে রিলিজ/v4.4 শাখা তৈরি করবে এবং পরবর্তীতে সমস্ত বৈশিষ্ট্য বিকাশ এবং পরীক্ষা শেষ করার পরে এই শাখার একটি নির্দিষ্ট ঐতিহাসিক স্ন্যাপশটের উপর ভিত্তি করে স্থিতিশীল v4.4 সংস্করণ প্রকাশ করবে।
4.1.4 ওভারview ESP-IDF SDK ডিরেক্টরির
ESP-IDF SDK দুটি প্রধান ডিরেক্টরি নিয়ে গঠিত: esp-idf এবং .espressif। আগেরটিতে ESP-IDF সংগ্রহস্থলের সোর্স কোড রয়েছে files এবং সংকলন স্ক্রিপ্ট, যখন পরেরটি প্রধানত সংকলন টুল চেইন এবং অন্যান্য সফ্টওয়্যার সংরক্ষণ করে। এই দুটি ডিরেক্টরির সাথে পরিচিতি ডেভেলপারদের উপলব্ধ সংস্থানগুলির আরও ভাল ব্যবহার করতে এবং বিকাশ প্রক্রিয়াকে গতিশীল করতে সহায়তা করবে। ইএসপি-আইডিএফ-এর ডিরেক্টরি কাঠামো নীচে বর্ণনা করা হয়েছে:
(1) ESP-IDF রিপোজিটরি কোড ডিরেক্টরি (/esp/esp-idf), যেমন চিত্র 4.2 এ দেখানো হয়েছে।
ক কম্পোনেন্ট ডিরেক্টরি উপাদান
এই মূল ডিরেক্টরিটি ESP-IDF-এর অসংখ্য প্রয়োজনীয় সফ্টওয়্যার উপাদানকে সংহত করে। এই ডিরেক্টরির মধ্যে থাকা উপাদানগুলির উপর নির্ভর না করে কোন প্রকল্প কোড কম্পাইল করা যাবে না। এটি বিভিন্ন এসপ্রেসিফ চিপগুলির জন্য ড্রাইভার সমর্থন অন্তর্ভুক্ত করে। পেরিফেরালগুলির জন্য এলএল লাইব্রেরি এবং এইচএএল লাইব্রেরি ইন্টারফেস থেকে উচ্চ-স্তরের ড্রাইভার এবং ভার্চুয়াল পর্যন্ত File সিস্টেম (ভিএফএস) স্তর সমর্থন, বিকাশকারীরা তাদের উন্নয়নের প্রয়োজনের জন্য বিভিন্ন স্তরে উপযুক্ত উপাদান চয়ন করতে পারে। ESP-IDF একাধিক স্ট্যান্ডার্ড নেটওয়ার্ক প্রোটোকল স্ট্যাককে সমর্থন করে যেমন TCP/IP, HTTP, MQTT, Webসকেট ইত্যাদি। ডেভেলপাররা নেটওয়ার্ক অ্যাপ্লিকেশন তৈরি করতে সকেটের মতো পরিচিত ইন্টারফেস ব্যবহার করতে পারে। উপাদানগুলি উপলব্ধি প্রদান করে-
34 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
চিত্র 4.2। ESP-IDF সংগ্রহস্থল কোড ডিরেক্টরি
sive কার্যকারিতা এবং সহজেই অ্যাপ্লিকেশনগুলিতে একত্রিত করা যেতে পারে, যা বিকাশকারীদেরকে শুধুমাত্র ব্যবসায়িক যুক্তিতে ফোকাস করতে দেয়। কিছু সাধারণ উপাদানের মধ্যে রয়েছে: · ড্রাইভার: এই উপাদানটিতে বিভিন্ন Espressif-এর জন্য পেরিফেরাল ড্রাইভার প্রোগ্রাম রয়েছে
চিপ সিরিজ, যেমন GPIO, I2C, SPI, UART, LEDC (PWM), ইত্যাদি। এই উপাদানের পেরিফেরাল ড্রাইভার প্রোগ্রামগুলি চিপ-স্বাধীন বিমূর্ত ইন্টারফেস অফার করে। প্রতিটি পেরিফেরাল একটি সাধারণ শিরোনাম আছে file (যেমন gpio.h), বিভিন্ন চিপ-নির্দিষ্ট সমর্থন প্রশ্ন মোকাবেলা করার প্রয়োজনীয়তা দূর করে। · esp_wifi: Wi-Fi, একটি বিশেষ পেরিফেরাল হিসাবে, একটি পৃথক উপাদান হিসাবে বিবেচিত হয়। এতে একাধিক এপিআই অন্তর্ভুক্ত রয়েছে যেমন বিভিন্ন Wi-Fi ড্রাইভার মোডের প্রাথমিককরণ, প্যারামিটার কনফিগারেশন এবং ইভেন্ট প্রক্রিয়াকরণ। এই উপাদানের কিছু ফাংশন স্ট্যাটিক লিঙ্ক লাইব্রেরি আকারে প্রদান করা হয়. ESP-IDF এছাড়াও ব্যবহারের সহজতার জন্য ব্যাপক ড্রাইভার ডকুমেন্টেশন প্রদান করে।
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 35
· freertos: এই উপাদানটিতে সম্পূর্ণ FreeRTOS কোড রয়েছে। এই অপারেটিং সিস্টেমের জন্য ব্যাপক সমর্থন প্রদানের পাশাপাশি, Espressif ডুয়াল-কোর চিপগুলিতেও তার সমর্থন বাড়িয়েছে। ESP32 এবং ESP32-S3 এর মত ডুয়াল-কোর চিপগুলির জন্য, ব্যবহারকারীরা নির্দিষ্ট কোরে কাজ তৈরি করতে পারে।
খ. ডকুমেন্ট ডিরেক্টরি ডক্স
এই ডিরেক্টরিতে ESP-IDF সম্পর্কিত ডেভেলপমেন্ট ডকুমেন্ট রয়েছে, যার মধ্যে রয়েছে Get Started Guide, API রেফারেন্স ম্যানুয়াল, ডেভেলপমেন্ট গাইড ইত্যাদি।
দ্রষ্টব্য স্বয়ংক্রিয় সরঞ্জাম দ্বারা সংকলিত হওয়ার পরে, এই ডিরেক্টরির বিষয়বস্তুগুলি https://docs.espressif.com/projects/esp-idf এ স্থাপন করা হয়৷ অনুগ্রহ করে নিশ্চিত করুন যে ডকুমেন্ট টার্গেটটি ESP32-C3 এ স্যুইচ করুন এবং নির্দিষ্ট ESP-IDF সংস্করণ নির্বাচন করুন৷
গ. স্ক্রিপ্ট টুল টুলস
এই ডিরেক্টরিতে সাধারণত ব্যবহৃত কম্পাইলেশন ফ্রন্ট-এন্ড টুল রয়েছে যেমন idf.py, এবং মনিটর টার্মিনাল টুল idf_monitor.py, ইত্যাদি। সাব-ডিরেক্টরি cmake-এ কোর স্ক্রিপ্টও রয়েছে fileসংকলন সিস্টেমের s, ESP-IDF সংকলন নিয়ম বাস্তবায়নের ভিত্তি হিসেবে কাজ করে। এনভায়রনমেন্ট ভেরিয়েবল যোগ করার সময়, টুল ডিরেক্টরির মধ্যে থাকা বিষয়বস্তু সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলে যোগ করা হয়, যা idf.py কে সরাসরি প্রজেক্ট পাথের অধীনে চালানোর অনুমতি দেয়।
d যেমনample প্রোগ্রাম ডিরেক্টরি প্রাক্তনampলেস
এই ডিরেক্টরিতে ESP-IDF প্রাক্তনের একটি বিশাল সংগ্রহ রয়েছেample প্রোগ্রাম যা কম্পোনেন্ট API-এর ব্যবহার প্রদর্শন করে। প্রাক্তনamples তাদের বিভাগের উপর ভিত্তি করে বিভিন্ন সাবডিরেক্টরিতে সংগঠিত হয়:
· শুরু করা: এই সাব-ডিরেক্টরিতে এন্ট্রি-লেভেল প্রাক্তন অন্তর্ভুক্ত রয়েছেampব্যবহারকারীদের মৌলিক বিষয়গুলি বুঝতে সাহায্য করার জন্য "হ্যালো ওয়ার্ল্ড" এবং "ব্লিঙ্ক" এর মতো।
· ব্লুটুথ: আপনি ব্লুটুথ সম্পর্কিত প্রাক্তন খুঁজে পেতে পারেনamples এখানে, Bluetooth LE Mesh, Bluetooth LE HID, BluFi, এবং আরও অনেক কিছু সহ৷
· ওয়াইফাই: এই সাব-ডিরেক্টরিটি ওয়াই-ফাই প্রাক্তনের উপর ফোকাস করেamples, Wi-Fi SoftAP, Wi-Fi Station, espnow, সেইসাথে মালিকানা যোগাযোগ প্রোটোকলের মতো মৌলিক প্রোগ্রাম সহampEspressif থেকে les. এটিতে একাধিক অ্যাপ্লিকেশন স্তর প্রাক্তন অন্তর্ভুক্ত রয়েছেamples Wi-Fi এর উপর ভিত্তি করে, যেমন Iperf, Sniffer, এবং Smart Config.
· পেরিফেরাল: এই বিস্তৃত সাব-ডিরেক্টরিটি পেরিফেরাল নামের উপর ভিত্তি করে আরও অনেক সাবফোল্ডারে বিভক্ত। এটিতে প্রধানত পেরিফেরাল ড্রাইভার প্রাক্তন রয়েছেampএসপ্রেসিফ চিপসের জন্য লেস, প্রতিটি প্রাক্তন সহampলে বেশ কয়েকটি উপ-প্রাক্তন সমন্বিতampলেস উদাহরণস্বরূপ, gpio সাব-ডিরেক্টরিতে দুটি প্রাক্তন অন্তর্ভুক্ত রয়েছেampলেস: GPIO এবং GPIO ম্যাট্রিক্স কীবোর্ড। এটা মনে রাখা গুরুত্বপূর্ণ যে সমস্ত প্রাক্তন নয়ampএই ডিরেক্টরির les ESP32-C3 এর জন্য প্রযোজ্য।
36 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
প্রাক্তন জন্যampলে, প্রাক্তনamples in usb/host শুধুমাত্র USB হোস্ট হার্ডওয়্যার (যেমন ESP32-S3) সহ পেরিফেরালগুলিতে প্রযোজ্য, এবং ESP32-C3-এ এই পেরিফেরাল নেই৷ কম্পাইলেশন সিস্টেম সাধারণত লক্ষ্য নির্ধারণ করার সময় প্রম্পট প্রদান করে। README file প্রতিটি প্রাক্তনample সমর্থিত চিপগুলির তালিকা করে। · প্রোটোকল: এই সাব-ডিরেক্টরীতে প্রাক্তন রয়েছেampএমকিউটিটি, এইচটিটিপি, এইচটিটিপি সার্ভার, পিপিপিওএস, মডবাস, এমডিএনএস, এসএনটিপি সহ বিভিন্ন কমিউনিকেশন প্রোটোকলের জন্য লেস, বিস্তৃত কমিউনিকেশন প্রোটোকল এক্স কভার করেampআইওটি বিকাশের জন্য প্রয়োজনীয়। · প্রভিশনিং: এখানে, আপনি প্রভিশনিং প্রাক্তন পাবেনampবিভিন্ন পদ্ধতির জন্য, যেমন Wi-Fi প্রভিশনিং এবং ব্লুটুথ LE প্রভিশনিং। · সিস্টেম: এই সাব-ডিরেক্টরিটিতে সিস্টেম ডিবাগিং প্রাক্তন অন্তর্ভুক্ত রয়েছেampলেস (যেমন, স্ট্যাক ট্রেসিং, রানটাইম ট্রেসিং, টাস্ক মনিটরিং), পাওয়ার ম্যানেজমেন্ট এক্সamples (যেমন, বিভিন্ন স্লিপ মোড, কো-প্রসেসর), এবং প্রাক্তনampকনসোল টার্মিনাল, ইভেন্ট লুপ এবং সিস্টেম টাইমারের মতো সাধারণ সিস্টেম উপাদানগুলির সাথে সম্পর্কিত। · স্টোরেজ: এই সাব-ডিরেক্টরির মধ্যে, আপনি প্রাক্তন আবিষ্কার করবেনampসব কিছু file ESP-IDF দ্বারা সমর্থিত সিস্টেম এবং স্টোরেজ মেকানিজম (যেমন ফ্ল্যাশ, এসডি কার্ড এবং অন্যান্য স্টোরেজ মিডিয়া পড়া এবং লেখা), পাশাপাশি প্রাক্তনampঅ-উদ্বায়ী স্টোরেজ (NVS), FatFS, SPIFFS এবং অন্যান্য file সিস্টেম অপারেশন। · নিরাপত্তা: এই সাব-ডিরেক্টরীতে প্রাক্তন রয়েছেampফ্ল্যাশ এনক্রিপশন সম্পর্কিত। (2) ESP-IDF কম্পাইলেশন টুল চেইন ডিরেক্টরি (/.espressif), যেমন চিত্র 4.3 এ দেখানো হয়েছে।
চিত্র 4.3। ESP-IDF সংকলন টুল চেইন ডিরেক্টরি
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 37
ক সফ্টওয়্যার বিতরণ ডিরেক্টরি dist
ESP-IDF টুল চেইন এবং অন্যান্য সফ্টওয়্যার সংকুচিত প্যাকেজ আকারে বিতরণ করা হয়। ইনস্টলেশন প্রক্রিয়া চলাকালীন, ইনস্টলেশন টুলটি প্রথমে সংকুচিত প্যাকেজটি ডিস্ট ডিরেক্টরিতে ডাউনলোড করে এবং তারপরে এটি নির্দিষ্ট ডিরেক্টরিতে বের করে। ইনস্টলেশন সম্পূর্ণ হলে, এই ডিরেক্টরির বিষয়বস্তু নিরাপদে সরানো যেতে পারে।
খ. পাইথন ভার্চুয়াল পরিবেশ ডিরেক্টরি python env
ESP-IDF-এর বিভিন্ন সংস্করণ পাইথন প্যাকেজের নির্দিষ্ট সংস্করণের উপর নির্ভর করে। এই প্যাকেজগুলি সরাসরি একই হোস্টে ইনস্টল করার ফলে প্যাকেজ সংস্করণগুলির মধ্যে বিরোধ দেখা দিতে পারে। এটি মোকাবেলা করার জন্য, ESP-IDF বিভিন্ন প্যাকেজ সংস্করণ বিচ্ছিন্ন করতে পাইথন ভার্চুয়াল পরিবেশ ব্যবহার করে। এই পদ্ধতির সাহায্যে, বিকাশকারীরা একই হোস্টে ESP-IDF-এর একাধিক সংস্করণ ইনস্টল করতে পারে এবং বিভিন্ন পরিবেশের ভেরিয়েবল আমদানি করে সহজেই তাদের মধ্যে স্যুইচ করতে পারে।
গ. ESP-IDF কম্পাইলেশন টুল চেইন ডিরেক্টরি টুল
এই ডিরেক্টরিতে প্রধানত ইএসপি-আইডিএফ প্রকল্পগুলি কম্পাইল করার জন্য প্রয়োজনীয় ক্রস-কম্পাইলেশন টুল রয়েছে, যেমন CMake টুলস, নিনজা বিল্ড টুলস এবং জিসিসি টুল চেইন যা চূড়ান্ত এক্সিকিউটেবল প্রোগ্রাম তৈরি করে। অতিরিক্তভাবে, এই ডিরেক্টরিতে সংশ্লিষ্ট হেডার সহ C/C++ ভাষার স্ট্যান্ডার্ড লাইব্রেরি রয়েছে files যদি একটি প্রোগ্রাম একটি সিস্টেম হেডার উল্লেখ করে file যেমন # অন্তর্ভুক্ত , কম্পাইলেশন টুল চেইন stdio.h সনাক্ত করবে file এই ডিরেক্টরির মধ্যে।
4.2 ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা
ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট মূলধারার অপারেটিং সিস্টেম যেমন Windows, Linux, এবং macOS সমর্থন করে। এই বিভাগে প্রতিটি সিস্টেমে উন্নয়ন পরিবেশ কিভাবে সেট আপ করতে হয় তা উপস্থাপন করা হবে। লিনাক্স সিস্টেমে ESP32-C3 বিকাশ করার সুপারিশ করা হচ্ছে, যা এখানে বিস্তারিতভাবে চালু করা হবে। ডেভেলপমেন্ট টুলের মিলের কারণে অনেক নির্দেশনা প্ল্যাটফর্ম জুড়ে প্রযোজ্য। অতএব, এই বিভাগের বিষয়বস্তু সাবধানে পড়ার পরামর্শ দেওয়া হচ্ছে।
দ্রষ্টব্য আপনি https://bookc3.espressif.com/esp32c3-এ উপলব্ধ অনলাইন নথিগুলি উল্লেখ করতে পারেন, যা এই বিভাগে উল্লিখিত কমান্ডগুলি প্রদান করে।
4.2.1 লিনাক্সে ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা
ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য প্রয়োজনীয় GNU ডেভেলপমেন্ট এবং ডিবাগিং টুল লিনাক্স সিস্টেমের স্থানীয়। উপরন্তু, লিনাক্সে কমান্ড-লাইন টার্মিনাল শক্তিশালী এবং ব্যবহারকারী-বান্ধব, এটি ESP32-C3 বিকাশের জন্য একটি আদর্শ পছন্দ করে তোলে। তুমি পারবে
38 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
আপনার পছন্দের লিনাক্স ডিস্ট্রিবিউশন নির্বাচন করুন, তবে আমরা উবুন্টু বা অন্যান্য ডেবিয়ান-ভিত্তিক সিস্টেম ব্যবহার করার পরামর্শ দিই। এই বিভাগটি Ubuntu 20.04-এ ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার বিষয়ে নির্দেশিকা প্রদান করে।
1. প্রয়োজনীয় প্যাকেজ ইনস্টল করুন
একটি নতুন টার্মিনাল খুলুন এবং সমস্ত প্রয়োজনীয় প্যাকেজ ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান। কমান্ড স্বয়ংক্রিয়ভাবে ইতিমধ্যে ইনস্টল করা প্যাকেজগুলি এড়িয়ে যাবে।
$ sudo apt-get install git wget flex bison gperf python3 python3-pip python3setuptools cmake নিনজা-বিল্ড ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
টিপস উপরের কমান্ডের জন্য আপনাকে অ্যাডমিনিস্ট্রেটর অ্যাকাউন্ট এবং পাসওয়ার্ড ব্যবহার করতে হবে। ডিফল্টরূপে, পাসওয়ার্ড প্রবেশ করার সময় কোন তথ্য প্রদর্শিত হবে না। প্রক্রিয়াটি চালিয়ে যেতে কেবল "এন্টার" কী টিপুন।
Git হল ESP-IDF-এর একটি মূল কোড ম্যানেজমেন্ট টুল। ডেভেলপমেন্ট এনভায়রনমেন্ট সফলভাবে সেট আপ করার পর, আপনি গিট লগ কমান্ড ব্যবহার করতে পারেন view ESP-IDF তৈরির পর থেকে করা সমস্ত কোড পরিবর্তন। উপরন্তু, Git সংস্করণ তথ্য নিশ্চিত করতে ESP-IDF-তেও ব্যবহার করা হয়, যা নির্দিষ্ট সংস্করণের সাথে সম্পর্কিত সঠিক টুল চেইন ইনস্টল করার জন্য প্রয়োজনীয়। গিটের পাশাপাশি, অন্যান্য গুরুত্বপূর্ণ সিস্টেম টুলের মধ্যে রয়েছে পাইথন। ESP-IDF পাইথনে লেখা অসংখ্য অটোমেশন স্ক্রিপ্ট অন্তর্ভুক্ত করে। CMake, Ninja-build, এবং Ccache-এর মতো টুলগুলি C/C++ প্রজেক্টে ব্যাপকভাবে ব্যবহৃত হয় এবং ESP-IDF-এ ডিফল্ট কোড সংকলন এবং বিল্ডিং টুল হিসেবে কাজ করে। libusb-1.0-0 এবং dfu-util হল USB সিরিয়াল যোগাযোগ এবং ফার্মওয়্যার বার্ন করার জন্য ব্যবহৃত প্রধান ড্রাইভার। সফ্টওয়্যার প্যাকেজ ইনস্টল হয়ে গেলে, আপনি apt show ব্যবহার করতে পারেন প্রতিটি প্যাকেজের বিস্তারিত বিবরণ পেতে কমান্ড। প্রাক্তন জন্যample, গিট টুলের জন্য বর্ণনা তথ্য প্রিন্ট করতে apt show git ব্যবহার করুন।
প্রশ্ন: পাইথন সংস্করণ সমর্থিত না হলে কী করবেন? উত্তর: ESP-IDF v4.3 এর জন্য একটি পাইথন সংস্করণ প্রয়োজন যা v3.6 এর চেয়ে কম নয়। উবুন্টুর পুরোনো সংস্করণগুলির জন্য, অনুগ্রহ করে ম্যানুয়ালি পাইথনের একটি উচ্চতর সংস্করণ ডাউনলোড এবং ইনস্টল করুন এবং Python3 কে ডিফল্ট পাইথন পরিবেশ হিসাবে সেট করুন। আপনি কীওয়ার্ড আপডেট-অল্টারনেটিভস পাইথন অনুসন্ধান করে বিস্তারিত নির্দেশাবলী পেতে পারেন।
2. ESP-IDF সংগ্রহস্থল কোড ডাউনলোড করুন
একটি টার্মিনাল খুলুন এবং mkdir কমান্ড ব্যবহার করে আপনার হোম ডিরেক্টরিতে esp নামে একটি ফোল্ডার তৈরি করুন। আপনি চাইলে ফোল্ডারটির জন্য একটি ভিন্ন নাম বেছে নিতে পারেন। ফোল্ডারে প্রবেশ করতে cd কমান্ডটি ব্যবহার করুন।
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 39
$ mkdir -p /esp $ cd /esp
নীচে দেখানো হিসাবে, ESP-IDF সংগ্রহস্থল কোড ডাউনলোড করতে git ক্লোন কমান্ড ব্যবহার করুন:
$ git ক্লোন -b v4.3.2 –পুনরাবৃত্ত https://github.com/espressif/esp-idf.git
উপরের কমান্ডে, প্যারামিটার -b v4.3.2 ডাউনলোড করার সংস্করণ নির্দিষ্ট করে (এই ক্ষেত্রে, সংস্করণ 4.3.2)। প্যারামিটার –রিকারসিভ নিশ্চিত করে যে ESP-IDF-এর সমস্ত সাব-রিপোজিটরি পুনরাবৃত্তিমূলকভাবে ডাউনলোড করা হয়েছে। সাব-রিপোজিটরি সম্পর্কে তথ্য .gitmodules-এ পাওয়া যাবে file.
3. ESP-IDF ডেভেলপমেন্ট টুল চেইন ইনস্টল করুন
Espressif টুল চেইন ডাউনলোড এবং ইনস্টল করার জন্য একটি স্বয়ংক্রিয় স্ক্রিপ্ট install.sh প্রদান করে। এই স্ক্রিপ্টটি বর্তমান ESP-IDF সংস্করণ এবং অপারেটিং সিস্টেমের পরিবেশ পরীক্ষা করে এবং তারপরে পাইথন টুল প্যাকেজ এবং সংকলন টুল চেইনের উপযুক্ত সংস্করণ ডাউনলোড ও ইনস্টল করে। টুল চেইনের জন্য ডিফল্ট ইনস্টলেশন পাথ হল /.espressif। আপনাকে যা করতে হবে তা হল esp-idf ডিরেক্টরিতে নেভিগেট করতে এবং install.sh চালাতে হবে।
$ cd /esp/esp-idf $ ./install.sh
আপনি সফলভাবে টুল চেইন ইনস্টল করলে, টার্মিনাল প্রদর্শন করবে:
সব সম্পন্ন!
এই মুহুর্তে, আপনি সফলভাবে ESP-IDF উন্নয়ন পরিবেশ সেট আপ করেছেন।
4.2.2 উইন্ডোজে ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা
1. ESP-IDF টুল ইনস্টলার ডাউনলোড করুন
টিপস Windows 10 বা তার উপরে ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার পরামর্শ দেওয়া হয়। আপনি https://dl.espressif.com/dl/esp-idf/ থেকে ইনস্টলারটি ডাউনলোড করতে পারেন। ইনস্টলারটিও একটি ওপেন সোর্স সফ্টওয়্যার এবং এর সোর্স কোড হতে পারে viewhttps://github.com/espressif/idf-installer এ ed।
· অনলাইন ইএসপি-আইডিএফ টুল ইনস্টলার
এই ইনস্টলারটি অপেক্ষাকৃত ছোট, প্রায় 4 এমবি আকারের, এবং অন্যান্য প্যাকেজ এবং কোড ইনস্টলেশন প্রক্রিয়া চলাকালীন ডাউনলোড করা হবে। অ্যাডভানtagঅনলাইন ইনস্টলারের e হল যে শুধুমাত্র সফ্টওয়্যার প্যাকেজ এবং কোডগুলি ইনস্টলেশন প্রক্রিয়া চলাকালীন চাহিদা অনুযায়ী ডাউনলোড করা যায় না, তবে ESP-IDF এর সমস্ত উপলব্ধ রিলিজ এবং GitHub কোডের সর্বশেষ শাখা (যেমন মাস্টার শাখা) ইনস্টল করার অনুমতি দেয়। . অসুবিধাtage হল যে এটি ইনস্টলেশন প্রক্রিয়া চলাকালীন একটি নেটওয়ার্ক সংযোগ প্রয়োজন, যা নেটওয়ার্ক সমস্যার কারণে ইনস্টলেশন ব্যর্থ হতে পারে।
40 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
· অফলাইন ইএসপি-আইডিএফ টুল ইনস্টলার এই ইনস্টলারটি বড়, প্রায় 1 গিগাবাইট আকারের, এবং পরিবেশ সেট আপের জন্য প্রয়োজনীয় সমস্ত সফ্টওয়্যার প্যাকেজ এবং কোড রয়েছে৷ প্রধান অ্যাডভানtagই অফলাইন ইনস্টলার হল যে এটি ইন্টারনেট অ্যাক্সেস ছাড়াই কম্পিউটারে ব্যবহার করা যেতে পারে এবং সাধারণত একটি উচ্চতর ইনস্টলেশন সাফল্যের হার থাকে। এটি লক্ষ করা উচিত যে অফলাইন ইনস্টলার শুধুমাত্র v*.* বা v*# দ্বারা চিহ্নিত ESP-IDF এর স্থিতিশীল রিলিজগুলি ইনস্টল করতে পারে।
2. ইনস্টলারটির একটি উপযুক্ত সংস্করণ ডাউনলোড করার পরে ESP-IDF টুল ইনস্টলার চালান (প্রাক্তন জন্য ESP-IDF টুল অফলাইন 4.3.2 নিনample এখানে), exe-এ ডাবল ক্লিক করুন file ESP-IDF ইনস্টলেশন ইন্টারফেস চালু করতে। অফলাইন ইনস্টলার ব্যবহার করে কীভাবে ESP-IDF স্থিতিশীল সংস্করণ v4.3.2 ইনস্টল করতে হয় তা নিম্নলিখিতটি প্রদর্শন করে।
(1) চিত্র 4.4 এ দেখানো "ইনস্টলেশন ভাষা নির্বাচন করুন" ইন্টারফেসে, ড্রপ-ডাউন তালিকা থেকে ব্যবহার করার জন্য ভাষা নির্বাচন করুন।
চিত্র 4.4. "ইনস্টলেশন ভাষা নির্বাচন করুন" ইন্টারফেস (2) ভাষা নির্বাচন করার পরে, "লাইসেন্স চুক্তি" ইন্টারফেস পপ আপ করতে "ঠিক আছে" ক্লিক করুন
(চিত্র 4.5 দেখুন)। ইনস্টলেশন লাইসেন্স চুক্তিটি মনোযোগ সহকারে পড়ার পরে, "আমি চুক্তি গ্রহণ করি" নির্বাচন করুন এবং "পরবর্তী" ক্লিক করুন।
চিত্র 4.5। "লাইসেন্স চুক্তি" ইন্টারফেস অধ্যায় 4. ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা 41
(3) Review "প্রাক-ইনস্টলেশন সিস্টেম চেক" ইন্টারফেসে সিস্টেম কনফিগারেশন (চিত্র 4.6 দেখুন)। উইন্ডোজ সংস্করণ এবং ইনস্টল করা অ্যান্টিভাইরাস সফ্টওয়্যার তথ্য পরীক্ষা করুন। সমস্ত কনফিগারেশন আইটেম স্বাভাবিক হলে "পরবর্তী" ক্লিক করুন। অন্যথায়, আপনি মূল আইটেমগুলির উপর ভিত্তি করে সমাধানের জন্য "সম্পূর্ণ লগ" ক্লিক করতে পারেন।
চিত্র 4.6। "ইনস্টলেশনের আগে সিস্টেম চেক" ইন্টারফেস টিপস
আপনি সাহায্যের জন্য https://github.com/espressif/idf-installer/issues-এ লগ জমা দিতে পারেন। (4) ESP-IDF ইনস্টলেশন ডিরেক্টরি নির্বাচন করুন। এখানে, D:/.espressif নির্বাচন করুন, যেমন দেখানো হয়েছে
চিত্র 4.7, এবং "পরবর্তী" ক্লিক করুন। অনুগ্রহ করে মনে রাখবেন যে .espressif এখানে একটি লুকানো ডিরেক্টরি। ইনস্টলেশন সম্পন্ন হওয়ার পরে, আপনি করতে পারেন view এই ডিরেক্টরির নির্দিষ্ট বিষয়বস্তু খোলার মাধ্যমে file ম্যানেজার এবং লুকানো আইটেম প্রদর্শন.
চিত্র 4.7। ESP-IDF ইনস্টলেশন ডিরেক্টরি নির্বাচন করুন 42 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
(5) যে উপাদানগুলিকে ইনস্টল করতে হবে তা পরীক্ষা করুন, যেমন চিত্র 4.8 এ দেখানো হয়েছে। এটি ডিফল্ট বিকল্প ব্যবহার করার সুপারিশ করা হয়, অর্থাৎ, সম্পূর্ণ ইনস্টলেশন, এবং তারপর "পরবর্তী" ক্লিক করুন।
চিত্র 4.8। ইনস্টল করার জন্য উপাদানগুলি নির্বাচন করুন (6) ইনস্টল করা উপাদানগুলি নিশ্চিত করুন এবং স্বয়ংক্রিয়ভাবে শুরু করতে "ইনস্টল করুন" এ ক্লিক করুন-
স্টলেশন প্রক্রিয়া, যেমন চিত্র 4.9-এ দেখানো হয়েছে। ইনস্টলেশন প্রক্রিয়া কয়েক মিনিট স্থায়ী হতে পারে এবং ইনস্টলেশন প্রক্রিয়ার অগ্রগতি বার চিত্র 4.10 এ দেখানো হয়েছে। ধৈর্য ধরে অপেক্ষা করুন.
চিত্র 4.9। ইনস্টলেশনের জন্য প্রস্তুতি (7) ইনস্টলেশন সম্পূর্ণ হওয়ার পরে, "ইএসপি-আইডিএফ নিবন্ধন করুন" চেক করার পরামর্শ দেওয়া হয়
অ্যান্টিভাইরাস সফ্টওয়্যার মুছে ফেলা থেকে প্রতিরোধ করতে টুল এক্সিকিউটেবলগুলিকে উইন্ডোজ ডিফেন্ডার এক্সক্লুশন হিসাবে…” files বর্জন আইটেম যোগ করা অ্যান্টিভাইরাস দ্বারা ঘন ঘন স্ক্যান এড়িয়ে যেতে পারে
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 43
চিত্র 4.10। ইনস্টলেশন প্রগ্রেস বার সফ্টওয়্যার, উইন্ডোজ সিস্টেমের কোড সংকলন দক্ষতা ব্যাপকভাবে উন্নত করে। ডেভেলপমেন্ট এনভায়রনমেন্টের ইনস্টলেশন সম্পূর্ণ করতে "Finish" এ ক্লিক করুন, যেমন চিত্র 4.11-এ দেখানো হয়েছে। আপনি "ESP-IDF PowerShell পরিবেশ চালান" বা "ESP-IDF কমান্ড প্রম্পট চালান" চেক করতে বেছে নিতে পারেন। উন্নয়ন পরিবেশ স্বাভাবিকভাবে কাজ করে তা নিশ্চিত করতে ইনস্টলেশনের পরে সরাসরি সংকলন উইন্ডোটি চালান।
চিত্র 4.11। ইনস্টলেশন সম্পন্ন হয়েছে (8) প্রোগ্রাম তালিকায় ইনস্টল করা উন্নয়ন পরিবেশ খুলুন (হয় ESP-IDF 4.3
CMD বা ESP-IDF 4.3 PowerShell টার্মিনাল, যেমন চিত্র 4.12-এ দেখানো হয়েছে), এবং ESP-IDF এনভায়রনমেন্ট ভেরিয়েবল টার্মিনালে চলাকালীন স্বয়ংক্রিয়ভাবে যুক্ত হবে। এর পরে, আপনি অপারেশনের জন্য idf.py কমান্ড ব্যবহার করতে পারেন। খোলা ESP-IDF 4.3 CMD চিত্র 4.13 এ দেখানো হয়েছে। 44 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক গাইড
চিত্র 4.12। উন্নয়ন পরিবেশ স্থাপন করা হয়েছে
চিত্র 4.13। ESP-IDF 4.3 CMD
4.2.3 Mac-এ ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা
একটি ম্যাক সিস্টেমে ইএসপি-আইডিএফ ডেভেলপমেন্ট এনভায়রনমেন্ট ইনস্টল করার প্রক্রিয়াটি লিনাক্স সিস্টেমের মতোই। রিপোজিটরি কোড ডাউনলোড এবং টুল চেইন ইনস্টল করার জন্য কমান্ড হুবহু একই। নির্ভরতা প্যাকেজ ইনস্টল করার জন্য শুধুমাত্র কমান্ড সামান্য ভিন্ন। 1. নির্ভরতা প্যাকেজ ইনস্টল করুন একটি টার্মিনাল খুলুন, এবং পাইথন প্যাকেজ পরিচালনার টুল, নিম্নলিখিত কমান্ডটি চালিয়ে পিপ ইনস্টল করুন:
% sudo সহজে পিপ ইনস্টল করুন
হোমব্রু ইনস্টল করুন, ম্যাকোসের জন্য একটি প্যাকেজ পরিচালনার সরঞ্জাম, নিম্নলিখিত কমান্ডটি চালিয়ে:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
নিম্নলিখিত কমান্ডটি চালিয়ে প্রয়োজনীয় নির্ভরতা প্যাকেজগুলি ইনস্টল করুন:
% brew python3 install cmake ninja ccache dfu-util
2. ESP-IDF রিপোজিটরি কোড ডাউনলোড করুন ESP-IDF রিপোজিটরি কোড ডাউনলোড করতে বিভাগ 4.2.1 এ দেওয়া নির্দেশাবলী অনুসরণ করুন। লিনাক্স সিস্টেমে ডাউনলোড করার জন্য ধাপগুলি একই।
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 45
3. ESP-IDF ডেভেলপমেন্ট টুল চেইন ইনস্টল করুন
ESP-IDF ডেভেলপমেন্ট টুল চেইন ইনস্টল করতে বিভাগ 4.2.1-এ দেওয়া নির্দেশাবলী অনুসরণ করুন। লিনাক্স সিস্টেমে ইনস্টলেশনের জন্য ধাপগুলি একই।
4.2.4 VS কোড ইনস্টল করা
ডিফল্টরূপে, ESP-IDF SDK একটি কোড সম্পাদনা টুল অন্তর্ভুক্ত করে না (যদিও Windows-এর জন্য সর্বশেষ ESP-IDF ইনস্টলার ESP-IDF Eclipse ইনস্টল করার বিকল্প দেয়)। আপনি কোড সম্পাদনা করতে আপনার পছন্দের যেকোন পাঠ্য সম্পাদনা সরঞ্জাম ব্যবহার করতে পারেন এবং তারপরে টার্মিনাল কমান্ড ব্যবহার করে এটি কম্পাইল করতে পারেন।
একটি জনপ্রিয় কোড এডিটিং টুল হল ভিএস কোড (ভিজ্যুয়াল স্টুডিও কোড), যা ব্যবহারকারী-বান্ধব ইন্টারফেস সহ একটি বিনামূল্যের এবং বৈশিষ্ট্য সমৃদ্ধ কোড সম্পাদক। এটি বিভিন্ন অফার করে plugins যা কোড নেভিগেশন, সিনট্যাক্স হাইলাইটিং, গিট সংস্করণ নিয়ন্ত্রণ এবং টার্মিনাল ইন্টিগ্রেশনের মতো কার্যকারিতা প্রদান করে। উপরন্তু, Espressif VS কোডের জন্য Espressif IDF নামে একটি ডেডিকেটেড প্লাগইন তৈরি করেছে, যা প্রজেক্ট কনফিগারেশন এবং ডিবাগিংকে সহজ করে।
আপনি VS কোডে বর্তমান ফোল্ডারটি দ্রুত খুলতে টার্মিনালে কোড কমান্ড ব্যবহার করতে পারেন। বিকল্পভাবে, আপনি VS কোডের মধ্যে সিস্টেমের ডিফল্ট টার্মিনাল কনসোল খুলতে শর্টকাট Ctrl+ ব্যবহার করতে পারেন।
টিপস ESP32-C3 কোড ডেভেলপমেন্টের জন্য VS কোড ব্যবহার করার পরামর্শ দেওয়া হয়। https://code.visualstudio.com/ থেকে ভিএস কোডের সর্বশেষ সংস্করণ ডাউনলোড এবং ইনস্টল করুন।
4.2.5 তৃতীয় পক্ষের উন্নয়ন পরিবেশের ভূমিকা
অফিসিয়াল ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্ট ছাড়াও, যা প্রাথমিকভাবে C ভাষা ব্যবহার করে, ESP32-C3 অন্যান্য মূলধারার প্রোগ্রামিং ভাষা এবং তৃতীয় পক্ষের উন্নয়ন পরিবেশের বিস্তৃত পরিসরকেও সমর্থন করে। কিছু উল্লেখযোগ্য বিকল্প অন্তর্ভুক্ত:
Arduino: হার্ডওয়্যার এবং সফ্টওয়্যার উভয়ের জন্য একটি ওপেন-সোর্স প্ল্যাটফর্ম, ESP32-C3 সহ বিভিন্ন মাইক্রোকন্ট্রোলারকে সমর্থন করে।
এটি C++ ভাষা ব্যবহার করে এবং একটি সরলীকৃত এবং প্রমিত API প্রদান করে, যা সাধারণত Arduino ভাষা হিসাবে পরিচিত। Arduino ব্যাপকভাবে প্রোটোটাইপ উন্নয়ন এবং শিক্ষাগত প্রসঙ্গে ব্যবহৃত হয়. এটি একটি এক্সটেনসিবল সফ্টওয়্যার প্যাকেজ এবং একটি IDE প্রদান করে যা সহজে সংকলন এবং ফ্ল্যাশ করার অনুমতি দেয়।
MicroPython: একটি Python 3 ভাষা দোভাষী এমবেডেড মাইক্রোকন্ট্রোলার প্ল্যাটফর্মে চালানোর জন্য ডিজাইন করা হয়েছে।
একটি সাধারণ স্ক্রিপ্ট ভাষার সাথে, এটি সরাসরি ESP32-C3 এর পেরিফেরাল রিসোর্স (যেমন UART, SPI, এবং I2C) এবং যোগাযোগ ফাংশন (যেমন Wi-Fi এবং Bluetooth LE) অ্যাক্সেস করতে পারে।
46 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
এটি হার্ডওয়্যার মিথস্ক্রিয়াকে সহজ করে তোলে। মাইক্রোপাইথন, পাইথনের ব্যাপক গাণিতিক অপারেশন লাইব্রেরির সাথে মিলিত, ESP32-C3-তে জটিল অ্যালগরিদম বাস্তবায়ন করতে সক্ষম করে, এআই-সম্পর্কিত অ্যাপ্লিকেশনগুলির বিকাশকে সহজতর করে। একটি লিপি ভাষা হিসাবে, বারবার সংকলনের প্রয়োজন নেই; পরিবর্তন করা যেতে পারে এবং স্ক্রিপ্টগুলি সরাসরি কার্যকর করা যেতে পারে।
NodeMCU: ESP সিরিজ চিপগুলির জন্য একটি LUA ভাষা দোভাষী তৈরি করা হয়েছে।
এটি ESP চিপগুলির প্রায় সমস্ত পেরিফেরাল ফাংশন সমর্থন করে এবং মাইক্রোপাইথনের তুলনায় হালকা। মাইক্রোপাইথনের মতো, নোডএমসিইউ একটি স্ক্রিপ্ট ভাষা ব্যবহার করে, বারবার সংকলনের প্রয়োজনীয়তা দূর করে।
উপরন্তু, ESP32-C3 NuttX এবং Zephyr অপারেটিং সিস্টেমকেও সমর্থন করে। NuttX হল একটি রিয়েল-টাইম অপারেটিং সিস্টেম যা POSIX-সামঞ্জস্যপূর্ণ ইন্টারফেস প্রদান করে, অ্যাপ্লিকেশন বহনযোগ্যতা বাড়ায়। Zephyr হল একটি ছোট রিয়েল-টাইম অপারেটিং সিস্টেম যা বিশেষভাবে IoT অ্যাপ্লিকেশনের জন্য ডিজাইন করা হয়েছে। এতে IoT বিকাশের জন্য প্রয়োজনীয় অসংখ্য সফ্টওয়্যার লাইব্রেরি রয়েছে, ধীরে ধীরে একটি ব্যাপক সফ্টওয়্যার ইকোসিস্টেমে বিকশিত হচ্ছে।
এই বইটি উপরে উল্লিখিত উন্নয়ন পরিবেশের জন্য বিস্তারিত ইনস্টলেশন নির্দেশাবলী প্রদান করে না। আপনি সংশ্লিষ্ট ডকুমেন্টেশন এবং নির্দেশাবলী অনুসরণ করে আপনার প্রয়োজনীয়তার উপর ভিত্তি করে একটি উন্নয়ন পরিবেশ ইনস্টল করতে পারেন।
4.3 ESP-IDF সংকলন সিস্টেম
4.3.1 কম্পাইলেশন সিস্টেমের মৌলিক ধারণা
একটি ESP-IDF প্রকল্প হল একটি এন্ট্রি ফাংশন এবং একাধিক স্বাধীন কার্যকরী উপাদান সহ একটি প্রধান প্রোগ্রামের একটি সংগ্রহ। প্রাক্তন জন্যample, একটি প্রকল্প যা LED সুইচ নিয়ন্ত্রণ করে প্রধানত একটি এন্ট্রি প্রোগ্রাম প্রধান এবং একটি ড্রাইভার উপাদান যা GPIO নিয়ন্ত্রণ করে। আপনি যদি LED রিমোট কন্ট্রোল উপলব্ধি করতে চান তবে আপনাকে Wi-Fi, TCP/IP প্রোটোকল স্ট্যাক ইত্যাদি যোগ করতে হবে।
কম্পাইলেশন সিস্টেম কম্পাইল, লিঙ্ক এবং এক্সিকিউটেবল জেনারেট করতে পারে fileবিল্ডিং নিয়মগুলির একটি সেটের মাধ্যমে কোডের জন্য s (.bin)। ESP-IDF v4.0 এবং উপরের সংস্করণগুলির সংকলন সিস্টেমটি ডিফল্টরূপে CMake-এর উপর ভিত্তি করে, এবং সংকলন স্ক্রিপ্ট CMakeLists.txt কোডের সংকলন আচরণ নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে। CMake এর মৌলিক সিনট্যাক্স সমর্থন করার পাশাপাশি, ESP-IDF সংকলন সিস্টেম ডিফল্ট সংকলন নিয়ম এবং CMake ফাংশনগুলির একটি সেটও সংজ্ঞায়িত করে এবং আপনি সাধারণ বিবৃতি সহ সংকলন স্ক্রিপ্ট লিখতে পারেন।
4.3.2 প্রকল্প File গঠন
একটি প্রকল্প হল একটি ফোল্ডার যাতে একটি এন্ট্রি প্রোগ্রাম প্রধান, ব্যবহারকারী-সংজ্ঞায়িত উপাদান এবং fileএক্সিকিউটেবল অ্যাপ্লিকেশান তৈরি করতে হবে, যেমন কম্পাইলেশন স্ক্রিপ্ট, কনফিগারেশন
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 47
files, পার্টিশন টেবিল, ইত্যাদি। file ESP-IDF ডেভেলপমেন্ট এনভায়রনমেন্টের একই সংস্করণ সহ মেশিনে কম্পাইল এবং জেনারেট করা যেতে পারে। একটি সাধারণ ESP-IDF প্রকল্প file গঠন চিত্র 4.14 এ দেখানো হয়েছে।
চিত্র 4.14। সাধারণ ESP-IDF প্রকল্প file গঠন যেহেতু ESP-IDF Espressif থেকে ESP32, ESP32-S সিরিজ, ESP32-C সিরিজ, ESP32-H সিরিজ ইত্যাদি সহ একাধিক IoT চিপ সমর্থন করে, তাই কোড কম্পাইল করার আগে একটি লক্ষ্য নির্ধারণ করা প্রয়োজন। লক্ষ্য হল হার্ডওয়্যার ডিভাইস যা অ্যাপ্লিকেশন প্রোগ্রাম চালায় এবং কম্পাইলেশন সিস্টেমের বিল্ড টার্গেট। আপনার প্রয়োজনের উপর নির্ভর করে, আপনি আপনার প্রকল্পের জন্য এক বা একাধিক লক্ষ্য নির্দিষ্ট করতে পারেন। প্রাক্তন জন্যample, idf.py সেট-টার্গেট esp32c3 কমান্ডের মাধ্যমে, আপনি ESP32-C3 তে সংকলন লক্ষ্য সেট করতে পারেন, এই সময়ে ESP32C3-এর জন্য ডিফল্ট প্যারামিটার এবং সংকলন টুল চেইন পাথ লোড হবে। সংকলনের পরে, ESP32C3 এর জন্য একটি এক্সিকিউটেবল প্রোগ্রাম তৈরি করা যেতে পারে। আপনি একটি ভিন্ন লক্ষ্য সেট করতে আবার সেট-টার্গেট কমান্ড চালাতে পারেন, এবং সংকলন সিস্টেম স্বয়ংক্রিয়ভাবে পরিষ্কার এবং পুনরায় কনফিগার করবে। উপাদান
ESP-IDF-এর উপাদানগুলি হল মডুলার এবং স্বাধীন কোড ইউনিট যা সংকলন ব্যবস্থার মধ্যে পরিচালিত হয়। এগুলি ফোল্ডার হিসাবে সংগঠিত হয়, ফোল্ডার নামটি ডিফল্টরূপে উপাদানের নাম উপস্থাপন করে। প্রতিটি উপাদানের নিজস্ব সংকলন স্ক্রিপ্ট রয়েছে যা 48 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: আইওটি-এর জন্য একটি ব্যাপক গাইড
এর সংকলন পরামিতি এবং নির্ভরতা নির্দিষ্ট করে। সংকলন প্রক্রিয়া চলাকালীন, উপাদানগুলি পৃথক স্ট্যাটিক লাইব্রেরিতে সংকলিত হয় (.a files) এবং অবশেষে অ্যাপ্লিকেশন প্রোগ্রাম গঠনের জন্য অন্যান্য উপাদানের সাথে মিলিত হয়।
ESP-IDF উপাদানগুলির আকারে অপারেটিং সিস্টেম, পেরিফেরাল ড্রাইভার এবং নেটওয়ার্ক প্রোটোকল স্ট্যাকের মতো প্রয়োজনীয় ফাংশন সরবরাহ করে। এই উপাদানগুলি ESP-IDF রুট ডিরেক্টরির মধ্যে অবস্থিত উপাদান ডিরেক্টরিতে সংরক্ষণ করা হয়। বিকাশকারীদের এই উপাদানগুলিকে myProject-এর উপাদান ডিরেক্টরিতে অনুলিপি করার দরকার নেই। পরিবর্তে, তাদের শুধুমাত্র প্রকল্পের CMakeLists.txt-এ এই উপাদানগুলির নির্ভরতা সম্পর্ক নির্দিষ্ট করতে হবে file REQUIRES বা PRIV_REQUIRES নির্দেশাবলী ব্যবহার করে৷ সংকলন সিস্টেম স্বয়ংক্রিয়ভাবে প্রয়োজনীয় উপাদানগুলি সনাক্ত করবে এবং সংকলন করবে।
অতএব, myProject এর অধীনে উপাদান ডিরেক্টরি প্রয়োজনীয় নয়। এটি শুধুমাত্র প্রকল্পের কিছু কাস্টম উপাদান অন্তর্ভুক্ত করতে ব্যবহৃত হয়, যা তৃতীয় পক্ষের লাইব্রেরি বা ব্যবহারকারী-সংজ্ঞায়িত কোড হতে পারে। অতিরিক্তভাবে, উপাদানগুলি ESP-IDF বা বর্তমান প্রজেক্ট ব্যতীত অন্য যেকোন ডিরেক্টরি থেকে সংগ্রহ করা যেতে পারে, যেমন অন্য ডিরেক্টরিতে সংরক্ষিত ওপেন-সোর্স প্রকল্প থেকে। এই ক্ষেত্রে, আপনাকে শুধুমাত্র রুট ডিরেক্টরির অধীনে CMakeLists.txt-এ EXTRA_COMPONENT_DIRS ভেরিয়েবল সেট করে কম্পোনেন্টের পাথ যোগ করতে হবে। এই ডিরেক্টরিটি একই নামের যেকোনো ESP-IDF কম্পোনেন্টকে ওভাররাইড করবে, সঠিক কম্পোনেন্ট ব্যবহার করা হয়েছে তা নিশ্চিত করে।
এন্ট্রি প্রোগ্রাম প্রধান প্রকল্পের মধ্যে প্রধান ডিরেক্টরি একই অনুসরণ করে file অন্যান্য উপাদান হিসাবে গঠন (যেমন, উপাদান1)। যাইহোক, এটি একটি বিশেষ তাত্পর্য ধারণ করে কারণ এটি একটি বাধ্যতামূলক উপাদান যা প্রতিটি প্রকল্পে বিদ্যমান থাকা আবশ্যক। প্রধান ডিরেক্টরিতে প্রজেক্টের সোর্স কোড এবং ব্যবহারকারীর প্রোগ্রামের এন্ট্রি পয়েন্ট থাকে, সাধারণত app_main নামে। ডিফল্টরূপে, ব্যবহারকারী প্রোগ্রামের সম্পাদন এই এন্ট্রি পয়েন্ট থেকে শুরু হয়। মূল উপাদানটিও আলাদা যে এটি স্বয়ংক্রিয়ভাবে অনুসন্ধান পথের সমস্ত উপাদানের উপর নির্ভর করে। তাই, CMakeLists.txt-এ REQUIRES বা PRIV_REQUIRES নির্দেশাবলী ব্যবহার করে স্পষ্টভাবে নির্ভরতা নির্দেশ করার প্রয়োজন নেই file.
কনফিগারেশন file প্রকল্পের রুট ডিরেক্টরিতে একটি কনফিগারেশন রয়েছে file sdkconfig বলা হয়, যা প্রকল্পের মধ্যে সমস্ত উপাদানগুলির জন্য কনফিগারেশন পরামিতি ধারণ করে। sdkconfig file কম্পাইলেশন সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে উত্পন্ন হয় এবং idf.py menuconfig কমান্ড দ্বারা সংশোধন এবং পুনরুত্পাদন করা যেতে পারে। মেনু কনফিগারেশন বিকল্পগুলি মূলত প্রকল্পের Kconfig.projbuild এবং উপাদানগুলির Kconfig থেকে উদ্ভূত হয়। কম্পোনেন্ট ডেভেলপাররা সাধারণত কম্পোনেন্টটিকে নমনীয় এবং কনফিগার করার জন্য Kconfig-এ কনফিগারেশন আইটেম যোগ করে।
বিল্ড ডিরেক্টরি ডিফল্টরূপে, প্রজেক্টের মধ্যে বিল্ড ডিরেক্টরি মধ্যবর্তী সঞ্চয় করে files এবং fi-
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 49
nal এক্সিকিউটেবল প্রোগ্রাম idf.py বিল্ড কমান্ড দ্বারা উত্পন্ন। সাধারণভাবে, বিল্ড ডিরেক্টরির বিষয়বস্তু সরাসরি অ্যাক্সেস করার প্রয়োজন নেই। ESP-IDF ডিরেক্টরির সাথে ইন্টারঅ্যাক্ট করার জন্য পূর্বনির্ধারিত কমান্ড প্রদান করে, যেমন স্বয়ংক্রিয়ভাবে সংকলিত বাইনারি সনাক্ত করতে idf.py ফ্ল্যাশ কমান্ড ব্যবহার করে file এবং এটিকে নির্দিষ্ট ফ্ল্যাশ ঠিকানায় ফ্ল্যাশ করুন, অথবা idf.py fullclean কমান্ড ব্যবহার করে সম্পূর্ণ বিল্ড ডিরেক্টরি পরিষ্কার করুন।
পার্টিশন টেবিল (partitions.csv) প্রতিটি প্রজেক্টের জন্য একটি পার্টিশন টেবিলের প্রয়োজন হয় যাতে ফ্ল্যাশের স্থান ভাগ করা যায় এবং এক্সিকিউটেবল প্রোগ্রামের আকার এবং শুরুর ঠিকানা এবং ব্যবহারকারীর ডেটা স্পেস উল্লেখ করা যায়। কমান্ড idf.py ফ্ল্যাশ বা OTA আপগ্রেড প্রোগ্রাম এই টেবিল অনুযায়ী সংশ্লিষ্ট ঠিকানায় ফার্মওয়্যার ফ্ল্যাশ করবে। ESP-IDF উপাদান/ partition_table-এ বেশ কিছু ডিফল্ট পার্টিশন টেবিল প্রদান করে, যেমন partitions_singleapp.csv এবং partitions_two_ ota.csv, যা মেনু কনফিগারেশনে নির্বাচন করা যেতে পারে।
সিস্টেমের ডিফল্ট পার্টিশন টেবিল প্রকল্পের প্রয়োজনীয়তা পূরণ করতে না পারলে, একটি কাস্টম partitions.csv প্রকল্প ডিরেক্টরিতে যোগ করা যেতে পারে এবং মেনু কনফিগারেশনে নির্বাচন করা যেতে পারে।
4.3.3 কম্পাইলেশন সিস্টেমের ডিফল্ট বিল্ড নিয়ম
একই নামের উপাদান ওভাররাইড করার নিয়ম কম্পোনেন্ট অনুসন্ধান প্রক্রিয়া চলাকালীন, সংকলন সিস্টেম একটি নির্দিষ্ট ক্রম অনুসরণ করে। এটি প্রথমে ESP-IDF-এর অভ্যন্তরীণ উপাদানগুলির জন্য অনুসন্ধান করে, তারপর ব্যবহারকারী প্রকল্পের উপাদানগুলির সন্ধান করে এবং অবশেষে EXTRA_COMPONENT_DIRS-এ উপাদানগুলির জন্য অনুসন্ধান করে৷ যে ক্ষেত্রে একাধিক ডিরেক্টরিতে একই নামের উপাদান রয়েছে, শেষ ডিরেক্টরিতে পাওয়া উপাদানটি একই নামের পূর্ববর্তী কোনো উপাদানকে ওভাররাইড করবে। এই নিয়মটি মূল ESP-IDF কোড অক্ষত রেখে ব্যবহারকারী প্রকল্পের মধ্যে ESP-IDF উপাদানগুলির কাস্টমাইজেশনের অনুমতি দেয়।
ডিফল্টরূপে সাধারণ উপাদানগুলি অন্তর্ভুক্ত করার নিয়মগুলি বিভাগ 4.3.2 এ উল্লিখিত হিসাবে, উপাদানগুলিকে CMakeLists.txt-এ অন্যান্য উপাদানগুলির উপর তাদের নির্ভরতা স্পষ্টভাবে উল্লেখ করতে হবে। যাইহোক, সাধারণ উপাদান যেমন freertos স্বয়ংক্রিয়ভাবে বিল্ড সিস্টেমে ডিফল্টরূপে অন্তর্ভুক্ত করা হয়, এমনকি যদি তাদের নির্ভরতার সম্পর্কগুলি সংকলন স্ক্রিপ্টে স্পষ্টভাবে সংজ্ঞায়িত করা না থাকে। ESP-IDF সাধারণ উপাদানগুলির মধ্যে রয়েছে freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, এবং cxx। এই সাধারণ উপাদানগুলি ব্যবহার করে CMakeLists.txt লেখার সময় পুনরাবৃত্তিমূলক কাজ এড়িয়ে যায় এবং এটি আরও সংক্ষিপ্ত করে তোলে।
কনফিগারেশন আইটেম ওভাররাইড করার নিয়ম ডেভেলপাররা ডিফল্ট কনফিগারেশন যোগ করে ডিফল্ট কনফিগারেশন প্যারামিটার যোগ করতে পারে file প্রকল্পে sdkconfig.defaults নামে। প্রাক্তন জন্যampলে, CONFIG_LOG_ যোগ করা হচ্ছে
50 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
DEFAULT_LEVEL_NONE = y ডিফল্টরূপে লগ ডেটা প্রিন্ট না করার জন্য UART ইন্টারফেস কনফিগার করতে পারে। তদ্ব্যতীত, যদি একটি নির্দিষ্ট লক্ষ্য, একটি কনফিগারেশনের জন্য নির্দিষ্ট পরামিতি সেট করার প্রয়োজন হয় file নাম sdkconfig.defaults.TARGET_NAME যোগ করা যেতে পারে, যেখানে TARGET_NAME হতে পারে esp32s2, esp32c3, ইত্যাদি। এই কনফিগারেশন fileসাধারণ ডিফল্ট কনফিগারেশন সহ s কে কম্পাইলেশনের সময় sdkconfig এ আমদানি করা হয় file sdkconfig.defaults প্রথমে আমদানি করা হচ্ছে, তারপর লক্ষ্য-নির্দিষ্ট কনফিগারেশন দ্বারা অনুসরণ করা হচ্ছে file, যেমন sdkconfig.defaults.esp32c3। ক্ষেত্রে যেখানে একই নামের সাথে কনফিগারেশন আইটেম আছে, পরবর্তী কনফিগারেশন file প্রাক্তনকে অগ্রাহ্য করবে।
4.3.4 সংকলন স্ক্রিপ্টের ভূমিকা
ESP-IDF ব্যবহার করে একটি প্রজেক্ট ডেভেলপ করার সময়, ডেভেলপারদের শুধুমাত্র সোর্স কোড লিখতে হবে না কিন্তু প্রজেক্ট এবং উপাদানগুলির জন্য CMakeLists.txtও লিখতে হবে। CMakeLists.txt একটি পাঠ্য file, এটি একটি সংকলন স্ক্রিপ্ট হিসাবেও পরিচিত, যা সংকলন বস্তুর একটি সিরিজ, সংকলন কনফিগারেশন আইটেম এবং উত্স কোডের সংকলন প্রক্রিয়াকে গাইড করার জন্য কমান্ডগুলিকে সংজ্ঞায়িত করে। ESP-IDF v4.3.2 এর কম্পাইলেশন সিস্টেম CMake এর উপর ভিত্তি করে। নেটিভ CMake ফাংশন এবং কমান্ডগুলিকে সমর্থন করার পাশাপাশি, এটি কাস্টম ফাংশনগুলির একটি সিরিজকেও সংজ্ঞায়িত করে, যা সংকলন স্ক্রিপ্টগুলি লেখাকে আরও সহজ করে তোলে।
ESP-IDF-এর সংকলন স্ক্রিপ্টগুলিতে প্রধানত প্রকল্প সংকলন স্ক্রিপ্ট এবং উপাদান সংকলন স্ক্রিপ্ট অন্তর্ভুক্ত থাকে। প্রজেক্টের রুট ডিরেক্টরিতে CMakeLists.txt কে প্রজেক্ট কম্পাইলেশন স্ক্রিপ্ট বলা হয়, যা পুরো প্রোজেক্টের কম্পাইলেশন প্রক্রিয়াকে গাইড করে। একটি মৌলিক প্রকল্প সংকলন স্ক্রিপ্ট সাধারণত নিম্নলিখিত তিনটি লাইন অন্তর্ভুক্ত করে:
1. cmake_minimum_required(VERSION 3.5) 2. অন্তর্ভুক্ত ($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. প্রকল্প(myProject)
তাদের মধ্যে, cmake_minimum_required (VERSION 3.5) অবশ্যই প্রথম লাইনে স্থাপন করতে হবে, যা প্রকল্পের জন্য প্রয়োজনীয় ন্যূনতম CMake সংস্করণ নম্বর নির্দেশ করতে ব্যবহৃত হয়। CMake-এর নতুন সংস্করণগুলি সাধারণত পুরানো সংস্করণগুলির সাথে পিছিয়ে সামঞ্জস্যপূর্ণ, তাই সামঞ্জস্য নিশ্চিত করতে নতুন CMake কমান্ডগুলি ব্যবহার করার সময় সেই অনুযায়ী সংস্করণ সংখ্যা সামঞ্জস্য করুন।
অন্তর্ভুক্ত ($ENV {IDF_PATH}/tools/cmake/project.cmake) পূর্ব-নির্ধারিত কনফিগারেশন আইটেম এবং ESP-IDF সংকলন সিস্টেমের কমান্ড আমদানি করে, সেকশন 4.3.3 এ বর্ণিত কম্পাইলেশন সিস্টেমের ডিফল্ট বিল্ড নিয়মগুলি সহ। প্রজেক্ট(myProject) নিজেই প্রজেক্ট তৈরি করে এবং এর নাম নির্দিষ্ট করে। এই নামটি চূড়ান্ত আউটপুট বাইনারি হিসাবে ব্যবহার করা হবে file নাম, যেমন, myProject.elf এবং myProject.bin।
একটি প্রকল্পের মূল উপাদান সহ একাধিক উপাদান থাকতে পারে। প্রতিটি উপাদানের শীর্ষ-স্তরের ডিরেক্টরিতে একটি CMakeLists.txt থাকে file, যাকে কম্পোনেন্ট কম্পাইলেশন স্ক্রিপ্ট বলা হয়। উপাদান সংকলন স্ক্রিপ্টগুলি প্রধানত উপাদান নির্ভরতা, কনফিগারেশন পরামিতি, উত্স কোড নির্দিষ্ট করতে ব্যবহৃত হয় files, এবং শিরোনাম অন্তর্ভুক্ত fileএর জন্য
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 51
সংকলন ESP-IDF এর কাস্টম ফাংশন idf_component_register এর সাথে, একটি উপাদান সংকলন স্ক্রিপ্টের জন্য ন্যূনতম প্রয়োজনীয় কোডটি নিম্নরূপ:
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "অন্তর্ভুক্ত"
3.
উপাদান প্রয়োজন1)
SRCS প্যারামিটার উৎসের একটি তালিকা প্রদান করে files কম্পোনেন্টে, একাধিক থাকলে স্পেস দিয়ে আলাদা করা হয় files INCLUDE_DIRS প্যারামিটার সর্বজনীন শিরোনামের একটি তালিকা প্রদান করে file কম্পোনেন্টের জন্য ডিরেক্টরি, যা বর্তমান কম্পোনেন্টের উপর নির্ভর করে এমন অন্যান্য কম্পোনেন্টের জন্য সার্চ পাথ অন্তর্ভুক্ত করা হবে। REQUIRES প্যারামিটার বর্তমান উপাদানের জন্য সর্বজনীন উপাদান নির্ভরতা সনাক্ত করে। কম্পোনেন্টের জন্য এটা স্পষ্টভাবে বলা দরকার যে তারা কোন উপাদানের উপর নির্ভর করে, যেমন component2 component1 এর উপর নির্ভর করে। যাইহোক, প্রধান উপাদানের জন্য, যা ডিফল্টরূপে সমস্ত উপাদানের উপর নির্ভর করে, প্রয়োজনীয় প্যারামিটারটি বাদ দেওয়া যেতে পারে।
এছাড়াও, স্থানীয় CMake কমান্ডগুলিও সংকলন স্ক্রিপ্টে ব্যবহার করা যেতে পারে। প্রাক্তন জন্যample, ভেরিয়েবল সেট করতে কমান্ড সেটটি ব্যবহার করুন, যেমন set(variable “VALUE”)।
4.3.5 কমন কমান্ডের ভূমিকা
ESP-IDF কোড সংকলনের প্রক্রিয়ায় CMake (প্রকল্প কনফিগারেশন টুল), নিনজা (প্রজেক্ট বিল্ডিং টুল) এবং esptool (ফ্ল্যাশ টুল) ব্যবহার করে। প্রতিটি টুল কম্পাইলেশন, বিল্ডিং এবং ফ্ল্যাশ প্রক্রিয়ায় আলাদা ভূমিকা পালন করে এবং বিভিন্ন অপারেটিং কমান্ড সমর্থন করে। ব্যবহারকারীর অপারেশনের সুবিধার্থে, ESP-IDF একটি ইউনিফাইড ফ্রন্ট-এন্ড idf.py যোগ করে যা উপরের কমান্ডগুলিকে দ্রুত কল করার অনুমতি দেয়।
idf.py ব্যবহার করার আগে, নিশ্চিত করুন যে:
· ESP-IDF এর পরিবেশ পরিবর্তনশীল IDF_PATH বর্তমান টার্মিনালে যোগ করা হয়েছে। কমান্ড এক্সিকিউশন ডাইরেক্টরি হল প্রোজেক্টের রুট ডিরেক্টরি, যার মধ্যে রয়েছে
প্রকল্প সংকলন স্ক্রিপ্ট CMakeLists.txt.
idf.py এর সাধারণ কমান্ডগুলি নিম্নরূপ:
· idf.py –help: কমান্ডের তালিকা এবং তাদের ব্যবহারের নির্দেশাবলী প্রদর্শন করা। · idf.py সেট-টার্গেট : সংকলন taidf.py fullcleanrget সেট করা, যেমন
প্রতিস্থাপন হিসাবে esp32c3 সহ। · idf.py মেনু কনফিগারেশন: মেনু কনফিগ চালু করা, একটি টার্মিনাল গ্রাফিক্যাল কনফিগারেশন
টুল, যা কনফিগারেশন বিকল্পগুলি নির্বাচন বা সংশোধন করতে পারে এবং কনফিগারেশন ফলাফল sdkconfig এ সংরক্ষিত হয় file. · idf.py বিল্ড: কোড সংকলন শুরু করা। মধ্যবর্তী files এবং সংকলন দ্বারা উত্পন্ন চূড়ান্ত এক্সিকিউটেবল প্রোগ্রামটি ডিফল্টরূপে প্রকল্পের বিল্ড ডিরেক্টরিতে সংরক্ষণ করা হবে। সংকলন প্রক্রিয়া ক্রমবর্ধমান হয়, যার মানে যদি শুধুমাত্র একটি উৎস file পরিবর্তিত হয়, শুধুমাত্র পরিবর্তিত file পরের বার কম্পাইল করা হবে।
52 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
· idf.py পরিষ্কার: মধ্যবর্তী পরিষ্কার করা files প্রকল্প সংকলন দ্বারা উত্পন্ন. পুরো প্রকল্পটি পরবর্তী সংকলনে কম্পাইল করতে বাধ্য করা হবে। মনে রাখবেন যে CMake কনফিগারেশন এবং menuconfig দ্বারা করা কনফিগারেশন পরিবর্তনগুলি পরিষ্কারের সময় মুছে ফেলা হবে না।
· idf.py fullclean: সমস্ত CMake কনফিগারেশন আউটপুট সহ সম্পূর্ণ বিল্ড ডিরেক্টরি মুছে ফেলা হচ্ছে files আবার প্রকল্প তৈরি করার সময়, CMake স্ক্র্যাচ থেকে প্রকল্পটি কনফিগার করবে। দয়া করে মনে রাখবেন যে এই কমান্ডটি পুনরাবৃত্তিমূলকভাবে সমস্ত মুছে ফেলবে files বিল্ড ডিরেক্টরিতে, তাই এটি সাবধানতার সাথে এবং প্রকল্প কনফিগারেশন ব্যবহার করুন file মুছে ফেলা হবে না।
· idf.py ফ্ল্যাশ: এক্সিকিউটেবল প্রোগ্রাম বাইনারি ফ্ল্যাশ করা file লক্ষ্য ESP32-C3 বিল্ড দ্বারা উত্পন্ন. বিকল্পগুলি - পি এবং -খ সিরিয়াল পোর্টের ডিভাইসের নাম এবং ফ্ল্যাশিংয়ের জন্য বড রেট যথাক্রমে সেট করতে ব্যবহৃত হয়। এই দুটি বিকল্প নির্দিষ্ট করা না থাকলে, সিরিয়াল পোর্ট স্বয়ংক্রিয়ভাবে সনাক্ত করা হবে এবং ডিফল্ট বড রেট ব্যবহার করা হবে।
· idf.py মনিটর: লক্ষ্য ESP32-C3 এর সিরিয়াল পোর্ট আউটপুট প্রদর্শন করা হচ্ছে। হোস্ট-সাইড সিরিয়াল পোর্টের ডিভাইসের নাম নির্দিষ্ট করতে -p বিকল্পটি ব্যবহার করা যেতে পারে। সিরিয়াল পোর্ট প্রিন্টিংয়ের সময়, মনিটর থেকে প্রস্থান করতে Ctrl+] কী সমন্বয় টিপুন।
উপরের কমান্ডগুলিও প্রয়োজন অনুসারে একত্রিত করা যেতে পারে। প্রাক্তন জন্যample, কমান্ড idf.py বিল্ড ফ্ল্যাশ মনিটর কোড সংকলন, ফ্ল্যাশ এবং ক্রমানুসারে সিরিয়াল পোর্ট মনিটর খুলবে।
ESP-IDF কম্পাইলেশন সিস্টেম সম্পর্কে আরও জানতে আপনি https://bookc3.espressif.com/build-system-এ যেতে পারেন।
4.4 অনুশীলন: সংকলন প্রাক্তনampলে প্রোগ্রাম "ব্লিঙ্ক"
4.4.1 প্রাক্তনampলে বিশ্লেষণ
এই বিভাগটি Blink প্রোগ্রামটিকে প্রাক্তন হিসাবে গ্রহণ করবেampলে বিশ্লেষণ করতে file বিশদভাবে একটি বাস্তব প্রকল্পের গঠন এবং কোডিং নিয়ম। ব্লিঙ্ক প্রোগ্রাম LED ব্লিঙ্কিং ইফেক্ট প্রয়োগ করে, এবং প্রকল্পটি প্রাক্তন ডিরেক্টরিতে অবস্থিতamples/get-start/blink, যার একটি উৎস রয়েছে file, কনফিগারেশন files, এবং বেশ কিছু সংকলন স্ক্রিপ্ট।
এই বইতে চালু করা স্মার্ট আলো প্রকল্প এই প্রাক্তন উপর ভিত্তি করেampলে প্রোগ্রাম। শেষ পর্যন্ত শেষ করতে পরবর্তী অধ্যায়গুলিতে ফাংশনগুলি ধীরে ধীরে যুক্ত করা হবে।
সোর্স কোড পুরো ডেভেলপমেন্ট প্রক্রিয়া প্রদর্শনের জন্য, ব্লিঙ্ক প্রোগ্রামটি esp32c3-iot-projects/device firmware/1 blink-এ কপি করা হয়েছে।
ব্লিঙ্ক প্রকল্পের ডিরেক্টরি কাঠামো files চিত্র 4.15 এ দেখানো হয়েছে।
ব্লিঙ্ক প্রকল্পে শুধুমাত্র একটি প্রধান ডিরেক্টরি রয়েছে, যা একটি বিশেষ উপাদান যা
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 53
চিত্র 4.15। File ব্লিঙ্ক প্রকল্পের ডিরেক্টরি কাঠামো
অধ্যায় 4.3.2 এ বর্ণিত হিসাবে অবশ্যই অন্তর্ভুক্ত করতে হবে। প্রধান ডিরেক্টরিটি মূলত app_main() ফাংশনের বাস্তবায়ন সংরক্ষণ করতে ব্যবহৃত হয়, যা ব্যবহারকারী প্রোগ্রামের এন্ট্রি পয়েন্ট। ব্লিঙ্ক প্রকল্পে উপাদান ডিরেক্টরি অন্তর্ভুক্ত করা হয় না, কারণ এই প্রাক্তনample শুধুমাত্র ESP-IDF এর সাথে আসা উপাদানগুলি ব্যবহার করতে হবে এবং অতিরিক্ত উপাদানগুলির প্রয়োজন নেই৷ ব্লিঙ্ক প্রজেক্টে অন্তর্ভুক্ত CMakeLists.txt সংকলন প্রক্রিয়া পরিচালনা করতে ব্যবহৃত হয়, যখন Kconfig.projbuild এই প্রাক্তনের জন্য কনফিগারেশন আইটেম যোগ করতে ব্যবহৃত হয়ampমেনু কনফিগারেশনে লে প্রোগ্রাম। অন্যান্য অপ্রয়োজনীয় files কোডের সংকলনকে প্রভাবিত করবে না, তাই সেগুলি এখানে আলোচনা করা হবে না। পলক প্রকল্পের একটি বিস্তারিত ভূমিকা files নিম্নরূপ।
1. /*blink.c নিম্নলিখিত হেডার অন্তর্ভুক্ত করে files*/
2. #অন্তর্ভুক্ত
// স্ট্যান্ডার্ড সি লাইব্রেরি হেডার file
3. # "freertos/freeRTOS.h" //FreeRTOS প্রধান শিরোনাম অন্তর্ভুক্ত করুন file
4. # "freertos/task.h" অন্তর্ভুক্ত করুন
//FreeRTOS টাস্ক হেডার file
5. # "sdkconfig.h" অন্তর্ভুক্ত করুন
//কনফিগারেশন হেডার file kconfig দ্বারা উত্পন্ন
6. # "driver/gpio.h" অন্তর্ভুক্ত করুন
//GPIO ড্রাইভার হেডার file
উৎস file blink.c শিরোনাম একটি সিরিজ রয়েছে fileফাংশন ঘোষণার সাথে সম্পর্কিত-
tions ESP-IDF সাধারণত স্ট্যান্ডার্ড লাইব্রেরি হেডার অন্তর্ভুক্ত করার ক্রম অনুসরণ করে files, FreeR-
TOS হেডার files, ড্রাইভার হেডার files, অন্যান্য কম্পোনেন্ট হেডার files, এবং প্রজেক্ট হেডার files.
যে ক্রমে হেডার files অন্তর্ভুক্ত করা হয় চূড়ান্ত সংকলন ফলাফল প্রভাবিত করতে পারে, তাই চেষ্টা করুন
ডিফল্ট নিয়ম অনুসরণ করুন। এটা উল্লেখ করা উচিত যে sdkconfig.h স্বয়ংক্রিয়ভাবে তৈরি হয়
kconfig দ্বারা এবং শুধুমাত্র idf.py menuconfig কমান্ডের মাধ্যমে কনফিগার করা যেতে পারে।
এই হেডারের সরাসরি পরিবর্তন file ওভাররাইট করা হবে।
1. /*আপনি idf.py মেনু কনফিগারেশনে LED এর সাথে সম্পর্কিত GPIO নির্বাচন করতে পারেন এবং menuconfig এর পরিবর্তনের ফলাফল হল CONFIG_BLINK এর মান
_GPIO পরিবর্তন করা হবে। এছাড়াও আপনি সরাসরি ম্যাক্রো সংজ্ঞা পরিবর্তন করতে পারেন
এখানে, এবং CONFIG_BLINK_GPIO কে একটি নির্দিষ্ট মান পরিবর্তন করুন।*/ 2. #BLINK_GPIO CONFIG_BLINK_GPIO সংজ্ঞায়িত করুন
3. void app_main(অকার্যকর)
৩০। {
5.
/*IO কে GPIO ডিফল্ট ফাংশন হিসাবে কনফিগার করুন, পুল-আপ মোড সক্ষম করুন এবং
6.
ইনপুট এবং আউটপুট মোড অক্ষম*/
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার: IoT-এর জন্য একটি ব্যাপক নির্দেশিকা
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22। }
/*GPIO কে আউটপুট মোডে সেট করুন*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); যখন (1) {
/*প্রিন্ট লগ*/ printf ("এলইডিএন বন্ধ করা"); /*এলইডি বন্ধ করুন (আউটপুট নিম্ন স্তর)*/ gpio_set_level(BLINK_GPIO, 0); /*বিলম্ব (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("LEDn চালু করা"); /*এলইডি চালু করুন (আউটপুট উচ্চ স্তর)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
ব্লিঙ্ক এক্সে app_main() ফাংশনample প্রোগ্রাম ব্যবহারকারী প্রোগ্রামের জন্য এন্ট্রি পয়েন্ট হিসাবে কাজ করে। এটি একটি সাধারণ ফাংশন যার কোন প্যারামিটার এবং কোন রিটার্ন মান নেই। সিস্টেমটি শুরু করার পরে এই ফাংশনটি বলা হয়, যার মধ্যে লগ সিরিয়াল পোর্ট শুরু করা, একক/দ্বৈত কোর কনফিগার করা এবং ওয়াচডগ কনফিগার করার মতো কাজগুলি অন্তর্ভুক্ত রয়েছে।
app_main() ফাংশনটি main নামের একটি টাস্কের পরিপ্রেক্ষিতে চলে। এই টাস্কের স্ট্যাকের আকার এবং অগ্রাধিকার মেনু কনফিগ কম্পোনেন্ট কনফিগ কমন ইএসপি-সম্পর্কিত এ সামঞ্জস্য করা যেতে পারে।
LED ব্লিঙ্ক করার মতো সাধারণ কাজের জন্য, সমস্ত প্রয়োজনীয় কোড সরাসরি app_main() ফাংশনে প্রয়োগ করা যেতে পারে। এটি সাধারণত LED এর সাথে সম্পর্কিত GPIO সূচনা করা এবং LED চালু এবং বন্ধ করার জন্য কিছুক্ষণ (1) লুপ ব্যবহার করে। বিকল্পভাবে, আপনি একটি নতুন টাস্ক তৈরি করতে FreeRTOS API ব্যবহার করতে পারেন যা LED ব্লিঙ্কিং পরিচালনা করে। নতুন টাস্ক সফলভাবে তৈরি হয়ে গেলে, আপনি app_main() ফাংশন থেকে প্রস্থান করতে পারেন।
main/CMakeLists.txt-এর বিষয়বস্তু file, যা প্রধান উপাদানের জন্য সংকলন প্রক্রিয়া নির্দেশ করে, নিম্নরূপ:
1. idf_component_register(SRCS "blink.c" অন্তর্ভুক্ত করুন_DIRS "।")
তাদের মধ্যে, main/CMakeLists.txt শুধুমাত্র একটি কম্পাইলেশন সিস্টেম ফাংশন কল করে, সেটি হল idf_component_register। বেশিরভাগ অন্যান্য উপাদানের জন্য CMakeLists.txt-এর মতই, blink.c SRCS এবং উৎসে যোগ করা হয়েছে fileSRCS এ যোগ করা s সংকলন করা হবে। একই সময়ে, ".", যা CMakeLists.txt যেখানে অবস্থিত সেই পথটিকে প্রতিনিধিত্ব করে, শিরোনামের অনুসন্ধান ডিরেক্টরি হিসাবে INCLUDE_DIRS-এ যোগ করা উচিত। files CMakeLists.txt এর বিষয়বস্তু নিম্নরূপ:
1. বর্তমান প্রকল্প দ্বারা সমর্থিত প্রাচীনতম CMake সংস্করণ হিসাবে #v3.5 উল্লেখ করুন 2. #সংকলন চালিয়ে যাওয়ার আগে v3.5-এর চেয়ে কম সংস্করণগুলি আপগ্রেড করা আবশ্যক 3. cmake_minimum_required(VERSION 3.5) 4. #ESP-এর ডিফল্ট CMake কনফিগারেশন অন্তর্ভুক্ত করুন -আইডিএফ সংকলন সিস্টেম
অধ্যায় 4. উন্নয়ন পরিবেশ স্থাপন 55
5. অন্তর্ভুক্ত করুন($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. # "ব্লিঙ্ক" নামে একটি প্রকল্প তৈরি করুন 7. প্রকল্প
তাদের মধ্যে, রুট ডিরেক্টরিতে CMakeLists.txt প্রধানত $ENV{IDF_ PATH}/tools/cmake/project.cmake অন্তর্ভুক্ত করে, যা প্রধান CMake কনফিগারেশন file ESP-IDF দ্বারা প্রদত্ত। এটা con ব্যবহার করা হয়
দলিল/সম্পদ
![]() |
Espressif সিস্টেম ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার [পিডিএফ] ব্যবহারকারীর নির্দেশিকা ESP32-C3 ওয়্যারলেস অ্যাডভেঞ্চার, ESP32-C3, ওয়্যারলেস অ্যাডভেঞ্চার, অ্যাডভেঞ্চার |