সুচিপত্র:

তাপমাত্রা এবং আর্দ্রতা মনিটর: 6 টি ধাপ (ছবি সহ)
তাপমাত্রা এবং আর্দ্রতা মনিটর: 6 টি ধাপ (ছবি সহ)

ভিডিও: তাপমাত্রা এবং আর্দ্রতা মনিটর: 6 টি ধাপ (ছবি সহ)

ভিডিও: তাপমাত্রা এবং আর্দ্রতা মনিটর: 6 টি ধাপ (ছবি সহ)
ভিডিও: নিউজ চ্যানেলের সামনে বিয়ের প্রস্তাব দিলো! 🤯 2024, জুলাই
Anonim
তাপমাত্রা এবং আর্দ্রতা মনিটর
তাপমাত্রা এবং আর্দ্রতা মনিটর
তাপমাত্রা এবং আর্দ্রতা মনিটর
তাপমাত্রা এবং আর্দ্রতা মনিটর

এই নির্দেশে আমি আপনাকে দেখাব কিভাবে আপনার বসার ঘরের জন্য আপনার নিজের তাপমাত্রা এবং আর্দ্রতা মনিটর তৈরি করতে হয়। রিমোট সার্ভারে ডেটা লগ করার উদ্দেশ্যে (যেমন রাস্পবেরি পাই) এবং পরে একটি সহজ ওয়েব ইন্টারফেসের মাধ্যমে এটি অ্যাক্সেস করার উদ্দেশ্যে ডিভাইসটিতে ওয়াইফাই ক্ষমতাও রয়েছে।

ডিভাইসের প্রধান অংশ হল একটি ESP8266 মাইক্রোকন্ট্রোলার, একটি DHT11 তাপমাত্রা এবং আর্দ্রতা সেন্সর এবং একটি 16x4 অক্ষরের LCD। প্রকল্পটি সম্পূর্ণরূপে ওপেন সোর্স, তাই নির্দ্বিধায় ঘেরের জন্য পরিকল্পিত, বোর্ড লেআউট এবং নকশা ফাইল ডাউনলোড করুন এবং আপনার পছন্দ মতো পরিবর্তন করুন।

ধাপ 1: সরঞ্জাম এবং যন্ত্রাংশ

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

মনিটর তৈরি করতে আপনার নিম্নলিখিত অংশগুলির প্রয়োজন হবে:

1 x ESP-12F [2 €]-যতদূর আমি জানি ESP-12E এবং ESP-12F মূলত অভিন্ন, পার্থক্যের সাথে ESP-12F এর একটি ভাল অ্যান্টেনা আছে।

1 x DHT11 তাপমাত্রা এবং আর্দ্রতা সেন্সর [0.80 €] - DHT22 এছাড়াও কাজ করতে যাচ্ছে কিন্তু ঘরের 3D মডেলে কিছু পরিবর্তন করতে হবে, DHT22 এছাড়াও একটু বেশি ব্যয়বহুল।

1 x 16x4 অক্ষর LCD 5V [3.30 €] - হ্যাঁ, আপনার একটি 5V প্রয়োজন হবে যেহেতু PCB ডিজাইন করা হয়েছে তাই LCD সরাসরি ভোল্টেজ নিয়ন্ত্রকের পরিবর্তে 5V থেকে চালিত হবে। ভোল্টেজ নিয়ন্ত্রকের উপর লোড কমানোর জন্য এটি করা হয়েছিল কিন্তু 5V ডিসপ্লেগুলি সস্তা হওয়ার প্রবণতা রয়েছে। কিন্তু চিন্তা করবেন না, যদিও ESP8266 3.3V এ কাজ করে তবুও এটি ঠিক কাজ করবে।

1 x LD1117V33 SMD ভোল্টেজ রেগুলেটর, LD33 (SOT223 প্যাকেজ) নামেও পরিচিত [0.80 €]

1 x 100nF সিরামিক এসএমডি ক্যাপাসিটর (0603 প্যাকেজ)

1 x 10uF ট্যানটালাম এসএমডি ক্যাপাসিটর (3528 প্যাকেজ)

1 x 10K SMD প্রতিরোধক (0805 প্যাকেজ)

1 x 10 কে ট্রিমার পট (গর্তের মাধ্যমে)

1 x 47Ω SMD রেজিস্টর (0805 প্যাকেজ) - এটি শুধু LCD এর ব্যাকলাইটে যাওয়া কারেন্ট সীমাবদ্ধ করার জন্য। বিভিন্ন প্রতিরোধের মান নিয়ে নির্দ্বিধায় পরীক্ষা করুন এবং আপনার পছন্দের তীব্রতা নির্বাচন করুন।

1 x SMD মোমেন্টারি সুইচ [0.80 €] - বিশেষভাবে আমি এটি ব্যবহার করেছি, কিন্তু আপনি একই পদচিহ্নের সাহায্যে যেকোন ক্ষণস্থায়ী সুইচ ব্যবহার করতে পারেন। আমি একাধিক পেয়ে ইবেতে একই সুইচগুলি কম খুঁজে পেতে সক্ষম হয়েছিলাম।

1 x 5.5x2.1 মিমি ডিসি জ্যাক (প্যানেল মাউন্ট) [0.50 €] - আমি যেটি ব্যবহার করেছি তার 8 মিমি প্যানেল কাটআউট ব্যাস এবং 9 মিমি দৈর্ঘ্য রয়েছে। এটি "প্যানেল মাউন্ট ডিসি জ্যাক" (সংযুক্ত ছবি দেখুন) অনুসন্ধান করে সহজেই ইবেতে পাওয়া যাবে।

1 x 2.54mm (100mil) 40-pin পুরুষ পিন হেডার (গর্তের মাধ্যমে)

1 x 2.54mm (100mil) 40-pin machined মহিলা পিন হেডার (গর্তের মাধ্যমে)

1 x 2.54mm (100mil) জাম্পার - এটি কম্পিউটার মাদারবোর্ডে ব্যবহৃতগুলির মতই।

4 x M3 8mm বোল্ট

4 x M3 4x4mm থ্রেডেড ইনসার্ট - ইবেতে "M3 প্রেস -ইন ব্রাস কপার ইনসার্টস" সার্চ করে সহজেই পাওয়া যাবে (সংযুক্ত ছবি দেখুন)।

4 x M2 12mm বোল্ট

4 x M2 বাদাম

1 x ইউএসবি টাইপ এ থেকে 5.5x2.1 মিমি ডিসি প্লাগ কেবল [1.5 €] - এটি আপনার ডিভাইসটিকে একটি স্ট্যান্ডার্ড ফোন চার্জার বা ইউএসবি পোর্ট সহ যেকোনো কম্পিউটার থেকে পাওয়ার ক্ষমতা দেবে। ডিভাইসটি শুধুমাত্র 300mA এর সবচেয়ে খারাপ কেস এবং 250mA গড় করে, তাই একটি USB 2.0 পোর্টও করবে।

1 x PCB - বোর্ডের পুরুত্ব সমালোচনামূলক নয়, তাই শুধু 1.6 মিমি যান যা সাধারণত অধিকাংশ PCB নির্মাতাদের কাছে সবচেয়ে সস্তা বিকল্প।

স্ট্যান্ডেড তারের 3 x টুকরা (প্রায় 60 মিমি প্রতিটি)

হিটশ্রিঙ্ক টিউবিং এর 3 x টুকরা (প্রায় 10 মিমি প্রতিটি)

এবং নিম্নলিখিত সরঞ্জামগুলি:

তাতাল

ইউএসবি থেকে সিরিয়াল কনভার্টার - বোর্ডে ESP8266 প্রোগ্রাম করার জন্য আপনার এটির প্রয়োজন হবে।

ফিলিপস স্ক্রু ড্রাইভার এবং/অথবা হেক্স কী - আপনি যে ধরনের স্ক্রু ব্যবহার করবেন তার উপর নির্ভর করে।

3D প্রিন্টার - যদি আপনার 3D প্রিন্টারে অ্যাক্সেস না থাকে, আপনি সর্বদা একটি জেনেরিক প্লাস্টিকের প্রজেক্ট বক্স ব্যবহার করতে পারেন এবং ড্রেমেল দিয়ে নিজেই কাটআউট তৈরি করতে পারেন। এই ধরনের বাক্সের জন্য সর্বনিম্ন অভ্যন্তরীণ মাত্রা 24 মিমি উচ্চতা, 94 মিমি দৈর্ঘ্য এবং 66 মিমি প্রস্থ হতে হবে। LCD মাউন্ট করার জন্য আপনাকে 8mm M2 স্ট্যান্ড-অফ ব্যবহার করতে হবে।

ড্রেমেল - শুধুমাত্র প্রয়োজন যদি আপনি 3D মুদ্রিত ঘেরের জন্য না যান।

ধাপ 2: পিসিবি তৈরি করা

পিসিবি তৈরি করা
পিসিবি তৈরি করা
পিসিবি তৈরি করা
পিসিবি তৈরি করা
পিসিবি তৈরি করা
পিসিবি তৈরি করা

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

বোর্ডগুলিতে আপনার হাত পাওয়ার পরে এটি উপাদানগুলি বিক্রি করার সময়। এটি বেশ সহজবোধ্য হওয়া উচিত, তবে কয়েকটি জিনিস লক্ষ্য করা উচিত। প্রথমে, এলসিডি হেডারে পিসিবি সোল্ডার করার জন্য এগিয়ে যাবেন না, ঘেরটি যেভাবে ডিজাইন করা হয়েছিল তার কারণে এটি চূড়ান্ত সমাবেশের সময় করা দরকার। আপনি যদি নিজের ঘের তৈরি করছেন তবে নির্দ্বিধায় সেই পরামর্শ উপেক্ষা করুন।

U3 সংযোগকারী যেখানে DHT11 সেন্সর সংযুক্ত হতে যাচ্ছে। আদর্শভাবে, আপনার সেই উদ্দেশ্যে 90 ° কোণযুক্ত মেশিনযুক্ত মহিলা পিন হেডার ব্যবহার করা উচিত। কিন্তু যদি আপনি আমাকে পছন্দ করেন তবে আমি এটি খুঁজে পেতে সক্ষম নই, কেবল একটি সোজা পান এবং এটি নিজেই বাঁকুন। যদি আপনি পরে করেন, DHT11 এর লিডগুলিও কিছুটা ছোট হতে চলেছে, তাই আপনাকে কিছু এক্সটেনশন বিক্রি করতে হবে। পিন হেডার এবং সেন্সরের সাথে একবার সংযুক্ত হওয়ার দূরত্ব মোটামুটি 5 মিমি হওয়া প্রয়োজন।

যে কারণে আপনি একটি মেশিনযুক্ত পিন হেডার ব্যবহার করতে চান, তার কারণ হল নিয়মিত মহিলা পিন হেডারের তুলনায় গর্তগুলো ছোট। সুতরাং, সেন্সরের লিডগুলি সেখানে শক্তভাবে বসে একটি শক্ত সংযোগ তৈরি করতে পারে। কিন্তু আপনি পুরুষ পিন হেডারের একটি অংশে DHT11 সোল্ডার করার চেষ্টা করতে পারেন এবং এটিকে নিয়মিত কোণযুক্ত মহিলা পিন হেডারের সাথে সংযুক্ত করতে পারেন, যা ঠিক একইভাবে কাজ করা উচিত।

ধাপ 3: ঘের তৈরি করা

ঘের তৈরি করা
ঘের তৈরি করা
ঘের তৈরি করা
ঘের তৈরি করা
ঘের তৈরি করা
ঘের তৈরি করা
ঘের তৈরি করা
ঘের তৈরি করা

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

উভয় অংশ 0.2 মিমি স্তর উচ্চতায় একটি মান 0.4 মিমি অগ্রভাগ দিয়ে মুদ্রণ করা যেতে পারে, আমার ক্ষেত্রে উভয় অংশের মিলনের জন্য মুদ্রণের সময় ছিল প্রায় 4 ঘন্টা। Idাকনাটির জন্য ঘরের মূল অংশের কোন সাপোর্টের প্রয়োজন হয় না, তবে প্রধানত স্ক্রু সকেটের নীচের অংশের জন্য। মুদ্রণ করার পরে সমর্থনগুলি সরানোর ক্ষেত্রে খুব সতর্কতা অবলম্বন করুন, আমি এটি করার সময় LCD এর জন্য একটি স্ট্যান্ড-অফ ভেঙে ফেলতে পেরেছিলাম এবং সুপারগ্লু দিয়ে এটিকে আবার আঠালো করতে হয়েছিল।

ঘেরটি ফ্রিক্যাডে ডিজাইন করা হয়েছে, সুতরাং আপনি যদি কোনও পরিবর্তন করতে চান তবে এটি বেশ সহজবোধ্য হওয়া উচিত। ঘের ছাপানোর জন্য এসটিএল ফাইলগুলির পাশাপাশি ফ্রিক্যাড ডিজাইনের ফাইলগুলি থিংভার্সে পাওয়া যাবে।

ধাপ 4: মনিটর একত্রিত করা

ঘের মুদ্রিত, সবকিছু একসাথে রাখার সময়। প্রথমে, কেসির ভিতরে এলসিডি রাখুন এবং বাম দিকে স্লাইড করুন, তাই এটি এবং সেন্সরের জন্য গর্তের মধ্যে একটি ফাঁক থাকবে।

ছবি
ছবি

এরপরে, পিসিবি এর উপরে রাখুন, পিন হেডারে ইতিমধ্যে সেন্সর সংযুক্ত করা আছে।

ছবি
ছবি

এর পরে, সেন্সরটিকে গর্তে ধাক্কা দিন, এলসিডি পিছনে স্লাইড করুন এবং পিন হেডারে পিসিবি োকান। এখন M2 বাদাম এবং বোল্ট ব্যবহার করে এলসিডি ঠিক করুন এবং পিন হেডারে PCB সোল্ডার করুন।

ছবি
ছবি

এর পরে, পাওয়ার জ্যাকটি জায়গায় রাখুন, এর সাথে কিছু তার সংযুক্ত করুন এবং তাদের অন্যান্য প্রান্তগুলি পিসিবিতে সোল্ডার করুন। এখানে কিছু হিটশ্রিঙ্ক টিউবিং ব্যবহার করাও একটি ভাল ধারণা হবে।

ছবি
ছবি

শেষ ধাপ হল ধাতব থ্রেডযুক্ত সন্নিবেশগুলি ইনস্টল করা যাতে 3াকনাটি এম 3 বোল্টের সাথে জায়গায় স্ক্রু করা যায়। সেই উদ্দেশ্যে আপনার গরম করার জন্য আপনার সোল্ডারিং লোহা ব্যবহার করতে হবে, যাতে সেগুলো গর্তে ঠেলে দেওয়া যায়। আপনি যদি আপনার 3D প্রিন্টে ধাতব থ্রেড যুক্ত করার বিষয়ে আরও তথ্যের প্রয়োজন হয় তবে আপনি এই নির্দেশাবলীর দিকে নজর দিতে পারেন।

ছবি
ছবি

ধাপ 5: সার্ভার সেট আপ

সার্ভার সেট আপ করা হচ্ছে
সার্ভার সেট আপ করা হচ্ছে

ESP8266 এ ফার্মওয়্যার আপলোড করার আগে আরও একটি কাজ করা প্রয়োজন, যা ডিভাইস দ্বারা প্রাপ্ত ডেটা লগ করার জন্য একটি সার্ভার স্থাপন করছে। সেই উদ্দেশ্যে আপনি আপনার ব্যক্তিগত নেটওয়ার্কে রাস্পবেরি পাই থেকে শুরু করে ডিজিটাল মহাসাগরের ফোঁটা পর্যন্ত যে কোনও লিনাক্স মেশিন ব্যবহার করতে পারেন। আমি পরবর্তীতে গিয়েছিলাম, কিন্তু আপনি যা চয়ন করেন না কেন প্রক্রিয়াটি প্রায় একই রকম।

অ্যাপাচি, মাইএসকিউএল (মারিয়াডিবি) এবং পিএইচপি ইনস্টল করা

প্রথমে আমাদের LAMP সেটআপ করতে হবে, অথবা অন্য কথায় Apache, MySQL (MariaDB) এবং PHP সার্ভারে ইনস্টল করতে হবে। তার জন্য আপনাকে আপনার ডিস্ট্রোর প্যাকেজ ম্যানেজার ব্যবহার করতে হবে, উদাহরণের জন্য আমি apt ব্যবহার করব যা রাস্পবিয়ান সহ যেকোন ডেবিয়ান ভিত্তিক ডিস্ট্রো দ্বারা ব্যবহৃত প্যাকেজ ম্যানেজার।

sudo apt আপডেট

sudo apt apache2 mysql-server mysql-client php libapache2-mod-php php-mysql ইনস্টল করুন

এটি সম্পন্ন হওয়ার পরে, যদি আপনি আপনার সার্ভারের আইপি ঠিকানাটি আপনার ব্রাউজারের ঠিকানা বারে রাখেন তবে আপনি অ্যাপাচির ডিফল্ট পৃষ্ঠা দেখতে সক্ষম হবেন।

ডাটাবেস সেট আপ করা

এখন ডেটা লগ করার জন্য আমাদের একটি ডাটাবেস দরকার। প্রথমে, মাইএসকিউএল এর সাথে রুট হিসাবে সংযোগ করে, সুডো মাইএসকিউএল

এবং নিম্নরূপ ডাটাবেস এবং এটি ব্যবহার করে একটি ব্যবহারকারী তৈরি করুন, ডেটাবেস 'সেন্সর' তৈরি করুন

ব্যবহার করুন `সেন্সর`; টেবিল তৈরি করুন `তাপমাত্রা` (` id` bigint (20) নোট অটো_ইনক্রিমেন্ট না, `client_id` smallint (6) NULL না,` value `smallint (6) Null না,` created_at` টাইমস্ট্যাম্প নট ডিফল্ট CURRENT_TIMESTAMP, প্রাইমারি কী (` id`)) ইঞ্জিন = InnoDB; সারণী তৈরি করুন `আর্দ্রতা` (` id` bigint (20) NULL AUTO_INCREMENT, `client_id` smallint (6) NULL,` value` smallint (6) NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, প্রাথমিক KEY id`)) ইঞ্জিন = InnoDB; ব্যবহারকারী '[ব্যবহারকারীর নাম]' local 'লোকালহোস্ট' দ্বারা চিহ্নিত '[পাসওয়ার্ড]' তৈরি করুন; 'সেন্সর' -এ সমস্ত বিশেষাধিকার প্রদান করুন।* 'সেন্সর'@'লোকালহোস্ট'; প্রস্থান করুন

আপনার পছন্দসই মাইএসকিউএল ব্যবহারকারীর প্রকৃত ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে [ব্যবহারকারীর নাম] এবং [পাসওয়ার্ড] প্রতিস্থাপন করতে ভুলবেন না। এছাড়াও, তাদের একটি নোট রাখুন কারণ পরবর্তী পদক্ষেপের জন্য আপনাকে তাদের প্রয়োজন হবে।

লগিং এবং ওয়েব ইন্টারফেস স্ক্রিপ্ট কনফিগার করা

Apache- এর ডিফল্ট ভার্চুয়াল হোস্টের ডকুমেন্ট রুট/var/www/html ডিরেক্টরিতে পরিবর্তন করুন, ডিফল্ট ওয়েবপেজ ধারণকারী HTML ফাইলটি মুছে ফেলুন এবং এর ভিতরে লগিং এবং ওয়েব ইন্টারফেস স্ক্রিপ্ট ডাউনলোড করুন।

cd/var/www/html

sudo rm index.html sudo wget https://raw.githubusercontent.com/magkopian/esp-arduino-temp-monitor/master/server/log.php sudo wget https://raw.githubusercontent.com/magkopian/esp- arduino-temp-Monitor/master/server/index.php

এখন ন্যানো ব্যবহার করে লগিং স্ক্রিপ্ট সম্পাদনা করুন, sudo ন্যানো log.php

আপনি আগের ধাপে তৈরি করা MySQL ব্যবহারকারীর ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে [ব্যবহারকারীর নাম] এবং [পাসওয়ার্ড] প্রতিস্থাপন করতে হবে। এছাড়াও, [ক্লায়েন্ট কী] একটি অনন্য স্ট্রিং দিয়ে প্রতিস্থাপন করুন এবং এটি একটি নোট নিন। এটি একটি পাসওয়ার্ড হিসাবে ব্যবহার করা হবে যাতে মনিটর সার্ভারে নিজেকে প্রমাণ করতে পারে।

অবশেষে, index.php সম্পাদনা করুন ন্যানো দিয়ে, sudo ন্যানো index.php

এবং MySQL ব্যবহারকারীর জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে [ব্যবহারকারীর নাম] এবং [পাসওয়ার্ড] প্রতিস্থাপন করুন যেমন আপনি লগিং স্ক্রিপ্ট দিয়ে করেছিলেন।

HTTPS সেট আপ করা (alচ্ছিক)

এটি alচ্ছিক হতে পারে, কিন্তু যদি ESP8266 এবং সার্ভারের মধ্যে সংযোগ ইন্টারনেটে থাকে তবে কিছু এনক্রিপশন ব্যবহার করার সুপারিশ করা হয়।

দুর্ভাগ্যক্রমে, আপনি কেবল এগিয়ে যেতে পারেন না এবং শংসাপত্র পাওয়ার জন্য লেটস এনক্রিপ্টের মতো কিছু ব্যবহার করতে পারেন। কারণ লেখার সময় কমপক্ষে, ESP8266 এর জন্য HTTP ক্লায়েন্ট লাইব্রেরির জন্য http.begin () কল করার সময় সার্টিফিকেটের ফিঙ্গারপ্রিন্টকে দ্বিতীয় যুক্তি হিসেবে প্রদান করতে হবে। এর মানে হল যে আপনি যদি লেটস এনক্রিপ্টের মতো কিছু ব্যবহার করেন, তাহলে প্রতিটি পুনর্নবীকরণের পরে সার্টিফিকেট ফিঙ্গারপ্রিন্ট আপডেট করার জন্য আপনাকে প্রতি months মাস অন্তর ফার্মওয়্যারটি চিপে রিফ্লেশ করতে হবে।

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

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

sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout /etc/ssl/private/sensors.key -out /etc/ssl/certs/sensors.crt

যেহেতু এটি একটি স্ব-স্বাক্ষরিত সার্টিফিকেট যা আপনি বেশিরভাগ প্রশ্নের উত্তর দেন তা খুব বেশি গুরুত্বপূর্ণ নয়, সাধারণ নাম জিজ্ঞাসা করা প্রশ্নটি বাদ দিয়ে। এই ভার্চুয়াল হোস্টের জন্য আপনাকে সম্পূর্ণ সাবডোমেন ব্যবহার করতে হবে। আপনি এখানে যে সাবডোমেনটি দেবেন তা সার্ভারনেমের সাথে একই হতে হবে যা আপনি পরে আপনার ভার্চুয়াল হোস্ট কনফিগারেশনে সেট করবেন।

পরবর্তী একটি নতুন ভার্চুয়াল হোস্ট কনফিগারেশন তৈরি করুন, sudo nano /etc/apache2/sites-available/sensors-ssl.conf

নিম্নলিখিত বিষয়বস্তু সহ, সার্ভারনেম [সাবডোমেন] DocumentRoot/var/www/sensors SSLEngine ON SSLCertificateKeyFile /etc/ssl/private/sensors.key SSLCertificateFile /etc/ssl/certs/sensors.crt Options +FollowSymlinks -Indexes AllowOverRide $ ErrorLOG error-ssl.log CustomLog $ {APACHE_LOG_DIR} /sensors-access-ssl.log মিলিত

আবার, [সাবডোমেন] কে একই সাবডোমেনের সাথে প্রতিস্থাপন করতে ভুলবেন না যা আপনি শংসাপত্রের সাথে ব্যবহার করেছিলেন। এই মুহুর্তে আপনাকে Apache এর ডিফল্ট ভার্চুয়াল হোস্ট অক্ষম করতে হবে, sudo a2dissite 000-default

ডকুমেন্ট রুট ডাইরেক্টরির নাম পরিবর্তন করুন, sudo mv/var/www/html/var/www/sensors

এবং অবশেষে নতুন ভার্চুয়াল হোস্ট সক্ষম করুন এবং অ্যাপাচি পুনরায় চালু করুন, sudo a2ensite সেন্সর-এসএসএল

sudo systemctl apache2 পুনরায় চালু করুন

শেষ যেটা করা দরকার তা হল সার্টিফিকেটের ফিঙ্গারপ্রিন্ট পাওয়া, কারণ আপনাকে এটি ফার্মওয়্যার কোডে ব্যবহার করতে হবে।

openssl x509 -noout -fingerprint -sha1 -inform pem -in /etc/ssl/certs/sensors.crt

Http.begin () ফিঙ্গারপ্রিন্টের বাইটের মধ্যে ডিলিমিটারগুলি স্পেস হওয়ার আশা করে, তাই আপনার কোডে এটি ব্যবহার করার আগে আপনাকে কোলনগুলিকে স্পেস দিয়ে প্রতিস্থাপন করতে হবে।

এখন, যদি আপনি ওয়েব ইন্টারফেসের জন্য একটি স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করতে না চান তবে একটি নতুন সাবডোমেইন সেটআপ করুন এবং একটি নতুন ভার্চুয়াল হোস্ট কনফিগারেশন তৈরি করুন, সুডো ন্যানো /etc/apache2/sites-available/sensors-web-ssl.conf

নিম্নলিখিত বিষয়বস্তু সহ, সার্ভারনেম [সাবডোমেন] ডকুমেন্টরুট/ভার/www/সেন্সর #SSLEngine ON #SSLCertificateFile /etc/letsencrypt/live/ /letsencrypt/live/ [subdomain]

ওয়েব ইন্টারফেসের জন্য আপনি যে সাবডোমেন সেটআপ করেছেন তার সাথে [সাবডোমেন] প্রতিস্থাপন করতে ভুলবেন না। এরপরে নতুন ভার্চুয়াল হোস্ট সক্ষম করুন, অ্যাপাচি পুনরায় চালু করুন, সার্টবট ইনস্টল করুন এবং লেটস এনক্রিপ্ট থেকে নতুন সাবডোমেনের জন্য একটি শংসাপত্র পান, sudo a2ensite সেন্সর-ওয়েব-এসএসএল

sudo systemctl apache2 পুনরায় চালু করুন sudo apt update sudo apt install certbot sudo certbot certonly --apache -d [subdomain]

সার্টিফিকেট পাওয়ার পর ভার্চুয়াল হোস্ট কনফিগারেশনটি আবার সম্পাদন করে SSLEngine, SSLCertificateFile, SSLCertificateKeyFile এবং SSLCertificateChainFile লাইনগুলিকে অসম্পূর্ণ করুন এবং Apache পুনরায় চালু করুন।

এবং এখন আপনি প্রথম সাবডোমেন ব্যবহার করতে পারেন যা ESP8266 থেকে সার্ভারে ডেটা পাঠানোর জন্য স্ব-স্বাক্ষরিত সার্টিফিকেট ব্যবহার করে, যখন দ্বিতীয়টি আপনার ব্রাউজার থেকে ওয়েব ইন্টারফেস অ্যাক্সেস করার জন্য ব্যবহার করে। সার্টবট একটি সিস্টেমড টাইমার ব্যবহার করে প্রতি 3 মাসে স্বয়ংক্রিয়ভাবে আপনাকে নবায়ন করার শংসাপত্রের যত্ন নেবে যা ডিফল্টরূপে সক্ষম হওয়া উচিত।

ধাপ 6: ESP8266 প্রোগ্রামিং

ESP8266 প্রোগ্রামিং
ESP8266 প্রোগ্রামিং

অবশেষে, মাইক্রোকন্ট্রোলারে ফার্মওয়্যার লোড করা একমাত্র কাজ। এটি করার জন্য, এখান থেকে ফার্মওয়্যারের সোর্স কোডটি ডাউনলোড করুন এবং আরডুইনো আইডিই ব্যবহার করে এটি খুলুন। আপনার ওয়াইফাই নেটওয়ার্কের আসল SSID এবং পাসওয়ার্ড দিয়ে আপনাকে [SSID] এবং [পাসওয়ার্ড] প্রতিস্থাপন করতে হবে। আপনি সার্ভারে পিএইচপি স্ক্রিপ্টে ব্যবহার করেছেন এমন স্প্রিন্টফ ফাংশন কলটিতে [ক্লায়েন্ট আইডি] এবং [ক্লায়েন্ট কী] প্রতিস্থাপন করতে হবে। অবশেষে, আপনাকে [হোস্ট] ডোমেন নাম বা সার্ভারের আইপি ঠিকানা দিয়ে প্রতিস্থাপন করতে হবে। যদি আপনি HTTPS ব্যবহার করেন তাহলে আপনাকে http.begin () এর ফাংশন কলে দ্বিতীয় যুক্তি হিসেবে আপনার সার্টিফিকেটের আঙুলের ছাপ সরবরাহ করতে হবে। আমি পূর্ববর্তী ধাপে "HTTPS সেট আপ" বিভাগে সার্টিফিকেটের আঙুলের ছাপ কিভাবে পেতে হয় তা ব্যাখ্যা করেছি।

পরবর্তী, যদি আপনি ইতিমধ্যেই না করেন তবে আপনাকে Arduino IDE এর বোর্ড ম্যানেজার ব্যবহার করে ESP8266 কমিউনিটি কোর প্যাকেজ ইনস্টল করতে হবে। একবার এটি হয়ে গেলে, বোর্ড মেনু থেকে NodeMCU 1.0 (ESP-12E মডিউল) নির্বাচন করুন। এরপরে, আপনাকে লাইব্রেরি ম্যানেজার ব্যবহার করে সিম্পলডিএইচটি লাইব্রেরি ইনস্টল করতে হবে। অবশেষে, আপনার আইডিই উইন্ডোর উপরের বাম কোণে যাচাই বোতামটি টিপুন যাতে নিশ্চিত হয় যে কোডটি ত্রুটি ছাড়াই সংকলিত হয়।

এবং এখন, অবশেষে ফার্মওয়্যারকে মাইক্রোকন্ট্রোলারে বার্ন করার সময় এসেছে। এটি করার জন্য ডানদিকে জাম্পার JP1 সরান, তাই ESP8266 এর GPIO0 মাটিতে সংযুক্ত হবে যা প্রোগ্রামিং মোড সক্ষম করবে। তারপরে, আপনার ইউএসবিকে সিরিয়াল কনভার্টারের সাথে জাম্পার ওয়্যার ব্যবহার করে প্রোগ্রামিং হেডারে সংযুক্ত করুন যা পি 1 হিসাবে লেবেলযুক্ত। প্রোগ্রামিং হেডারের পিন 1 হল গ্রাউন্ড, পিন 2 হল ESP8266 এর রিসিভ পিন এবং পিন 3 ট্রান্সমিট। আপনার ইউএসবি থেকে সিরিয়াল কনভার্টারে ট্রান্সমিট, রিসিভে ট্রান্সমিট এবং অবশ্যই গ্রাউন্ড টু গ্রাউন্ডে যাওয়ার জন্য আপনাকে ESP8266 রিসিভ করতে হবে।

অবশেষে, আপনার ইউএসবি থেকে ডিসি জ্যাক ক্যাবল ব্যবহার করে ডিভাইসটিকে 5V দিয়ে পাওয়ার করুন এবং আপনার কম্পিউটারে সিরিয়াল কনভার্টারে ইউএসবি সংযুক্ত করুন। আপনার আইডিইতে টুলস মেনু খোলার সাথে সাথে আপনার এখন ভার্চুয়াল সিরিয়াল পোর্ট দেখতে হবে যেখানে ESP8266 সংযুক্ত রয়েছে। এখন, শুধু আপলোড বোতাম টিপুন এবং এটাই! যদি সবকিছু প্রত্যাশিতভাবে হয় তবে আপনার ডিভাইসের এলসিডিতে তাপমাত্রা এবং আর্দ্রতা রিডিং দেখতে সক্ষম হওয়া উচিত। ESP8266 আপনার নেটওয়ার্কে সংযোগ করার পর এবং সার্ভারের সাথে যোগাযোগ শুরু করার পর, বর্তমান তারিখ এবং সময়ও ডিসপ্লেতে দেখা উচিত।

কয়েক ঘন্টা পরে যখন সার্ভার একটি ভাল পরিমাণ তথ্য সংগ্রহ করবে তখন আপনি http (s): // [host] /index.php?client_id= [client id] এ গিয়ে তাপমাত্রা এবং আর্দ্রতা চার্ট দেখতে সক্ষম হবেন।যেখানে [হোস্ট] হয় আপনার সার্ভারের আইপি অ্যাড্রেস বা ওয়েব ইন্টারফেসের জন্য আপনি যে সাবডোমেন ব্যবহার করছেন, এবং [ক্লায়েন্ট আইডি] ডিভাইসের ক্লায়েন্ট আইডি যা আপনি যদি এটিকে তার ডিফল্ট ভ্যালুতে রেখে দেন তবে এটি 1 হওয়া উচিত।

প্রস্তাবিত: