সুচিপত্র:

হোম নেটওয়ার্ক তাপমাত্রা সেন্সর: 7 ধাপ
হোম নেটওয়ার্ক তাপমাত্রা সেন্সর: 7 ধাপ

ভিডিও: হোম নেটওয়ার্ক তাপমাত্রা সেন্সর: 7 ধাপ

ভিডিও: হোম নেটওয়ার্ক তাপমাত্রা সেন্সর: 7 ধাপ
ভিডিও: ESP8266 ESP01 DHT11 তাপমাত্রা আর্দ্রতা সেন্সর মডিউল প্রোগ্রামিং | RemoteXY | FLProg 2024, নভেম্বর
Anonim
হোম নেটওয়ার্ক তাপমাত্রা সেন্সর
হোম নেটওয়ার্ক তাপমাত্রা সেন্সর

এই প্রকল্পটি করার জন্য আপনাকে কি জানতে হবে:

আপনার সম্পর্কে জানতে হবে:- কিছু ইলেকট্রনিক্স দক্ষতা (সোল্ডারিং)

- লিনাক্স

- Arduino IDE

(আপনাকে IDE- এ অতিরিক্ত বোর্ড আপডেট করতে হবে:

- Arduino IDE এর মাধ্যমে একটি ESP বোর্ড আপডেট/প্রোগ্রামিং।

(ওয়েবে কিছু চমৎকার টিউটোরিয়াল পাওয়া যায়)

এটি একটি Arduino Uno ব্যবহার করে বা FTDI (ইউএসবি থেকে সিরিয়াল অ্যাডাপ্টার) ব্যবহার করে করা যেতে পারে।

আমি আমার ইউনো ব্যবহার করেছি কারণ আমার পিসিতে কোন সিরিয়াল পোর্ট ছিল না বা আমার এফটিডিআই ছিল না

ধাপ 1: কেনাকাটা করুন

কেনাকাটা করতে যাও
কেনাকাটা করতে যাও

এটা ঘটানোর জন্য আপনার কি প্রয়োজন হবে?

ডিজিটাল তাপমাত্রা এবং আর্দ্রতা সেন্সরের জন্য:

- হয় একটি রুটিবোর্ড বা প্রোটোটাইপ পিসিবি, সোল্ডার, সোল্ডারিং লোহার মত বিকল্প …

- কিছু তার

- দুই জাম্পার

- একটি 10k ওহম প্রতিরোধক

- একটি ESP12F (অন্যান্য মডেলগুলিও কাজ করতে পারে …)

- একটি DHT22 (DHT11 এর চেয়ে একটু বেশি ব্যয়বহুল কিন্তু আরো সঠিক)

- 3 এএ রিচার্জেবল ব্যাটারি এবং ব্যাটারি ধারক

- একটি ছোট প্লাস্টিকের বাক্স আপনার প্রকল্পে ুকিয়ে দিন

- পরবর্তী পর্যায়ে আমি ব্যাটারি প্যাক এবং ESP এর মধ্যে দুটি 10uF ক্যাপাসিটার সহ HT7333 যোগ করার পরিকল্পনা করছি

প্রস্তাবিত 3.3 ভি -তে ইনপুট ভোল্টেজ (ভিসিসি) স্থিতিশীল করতে কিন্তু ইএসপিকে ওভারভোল্টেজ থেকে রক্ষা করতে।

নেটওয়ার্ক অংশের জন্য:

- আপনার বাড়ির ওয়াইফাই নেটওয়ার্ক

সার্ভার অংশের জন্য:

- যেকোন লিনাক্স ভিত্তিক সিস্টেম (সর্বদা চালু!)

আমি একটি রাস্পবেরি পাই ব্যবহার করেছি (যা আমি আমার আউটডোর আইপি ক্যামেরার জন্য সার্ভার হিসাবেও ব্যবহার করি।)

- আপনার সার্ভার কোড কম্পাইল করার জন্য gcc কম্পাইলার

- rrdtool প্যাকেজ তথ্য সংরক্ষণ এবং গ্রাফ তৈরি করতে

- অ্যাপাচি (বা অন্য ওয়েব সার্ভার)

আপনার পছন্দের পিসি বা ল্যাপটপটিতে Arduino IDE আছে।

পদক্ষেপ 2: সেটআপ এবং পটভূমি

সেটআপ এবং ব্যাকগ্রাউন্ড
সেটআপ এবং ব্যাকগ্রাউন্ড

ওয়াইফাই সংযুক্ত এই সংস্করণে - আইওটি বলার অপেক্ষা রাখে না - তাপমাত্রা এবং আর্দ্রতা সেন্সর আমি একটি ESP12F, একটি DHT22 এবং রিচার্জেবল ব্যাটারি সহ 3 AA ব্যাটারি ধারক ব্যবহার করেছি।

প্রতি 20 মিনিটে ESP DHT22 থেকে একটি পরিমাপ নেয় এবং এটি আমার হোম ওয়াইফাই নেটওয়ার্কে UDP- এর উপর একটি সার্ভারে (একটি রাস্পবেরি পাই) পাঠায়। পরিমাপ পাঠানোর পরে, ইএসপি গভীর ঘুমে চলে যায়। এর মানে হল যে মডিউলের শুধুমাত্র রিয়েল টাইম ঘড়িটি চালিত থাকে, যার ফলে একটি অবিশ্বাস্য শক্তি সঞ্চয় হয়। প্রায় 5 সেকেন্ডের জন্য, মডিউলটি প্রায় 100mA প্রয়োজন, তারপর 20 মিনিটের সময় শুধুমাত্র 150uA গভীর ঘুম।

আমি কোনও ইন্টারনেট ভিত্তিক পরিষেবা ব্যবহার করতে চাইনি কারণ আমার রাস্পবেরি পাই আছে যা সর্বদা আছে এবং এইভাবে আমি সার্ভারের অংশটি লেখার আনন্দও পেয়েছি।

সার্ভারে (রাস্পবেরি পাই চলমান রাস্পবিয়ান) আমি একটি সাধারণ ইউডিপি শ্রোতা (সার্ভার) লিখেছি যা মানগুলিকে একটি সাধারণ আরআরডিতে সংরক্ষণ করে। (RRDtool ব্যবহার করে রাউন্ড রবিন ডাটাবেস Tobias Oetiker দ্বারা।)

RRDtool এর সুবিধা হল যে আপনি একবার আপনার ডাটাবেস তৈরি করেন এবং আকার একই থাকে। অন্যথায় আপনার ব্যাকগ্রাউন্ডে একটি ডাটাবেস সার্ভার (যেমন মাইএসকিউএলডি) চলার দরকার নেই। RRDtool আপনাকে ডাটাবেস তৈরি এবং গ্রাফ তৈরির জন্য সরঞ্জাম দেয়।

আমার সার্ভার একটি পর্যায়ক্রমিক ভিত্তিতে গ্রাফ তৈরি করে এবং খুব সহজ http পৃষ্ঠায় সবকিছু প্রদর্শন করে। আমি রাস্পবেরি পাই এ Apache2 ওয়েব সার্ভারের সাথে সংযোগ করে একটি সাধারণ ব্রাউজারের সাথে আমার রিডিংয়ের পরামর্শ নিতে পারি!

অবশেষে, আমার একটি FTDI (USB থেকে সিরিয়াল) ছিল না তাই আমি আমার Arduino UNO ব্যবহার করেছি আপনাকে TX এবং RX এর এবং ESP এবং UNO এর GND সংযোগ করতে হবে। (আমি জানি, আপনার প্রবৃত্তি হয়তো আপনাকে RX এবং TX- কে অতিক্রম করতে বলবে … এটাও চেষ্টা করেছে, কাজ করে না।)

আমি একটি স্তরের রূপান্তর করিনি (UNO: High = 5V কিন্তু ESP মূলত একটি 3.3V ডিভাইস … বাজারে কিছু চমৎকার FTDI আছে যেখানে আপনি আপনার উচ্চ স্তরটি 5 বা 3.3V হতেও নির্বাচন করতে পারেন।

আমার সার্কিট 3 এএ রিচার্জেবল ব্যাটারি দ্বারা চালিত - তাই আসলে 3 এক্স 1.2V। পরবর্তী পর্যায়ে আমি নিরাপত্তার জন্য ব্যাটারি প্যাক এবং সার্কিটের মধ্যে একটি HT7333 স্থাপন করতে চাই; নতুন চার্জ করা ব্যাটারিতে 1.2V এর বেশি থাকতে পারে এবং ESP মিনিটে চালিত হওয়া উচিত। 3V এবং সর্বোচ্চ 3.6V এছাড়াও যদি আমি সিদ্ধান্ত নিই - দুর্বলতার এক মুহুর্তে - ক্ষারীয় ব্যাটারি (3 X 1.5V = 4.5V) রাখার জন্য আমার ESP ভাজা হবে না!

আমি 10cm x 10cm সোলার প্যানেল ব্যবহার করার কথাও ভেবেছিলাম, কিন্তু এটা শুধু ঝামেলার মূল্য ছিল না। প্রতি ঘন্টায় 3 টি পরিমাপ (মূলত 3x 5 সেকেন্ড @ 100mA সর্বোচ্চ। এবং বাকি সময় @ 100uA), আমি একই রিচার্জেবল ব্যাটারিতে 1 বছরের জন্য আমার সার্কিটকে পাওয়ার আশা করি।

ধাপ 3: Arduino - ESP12 অংশ

Arduino - ESP12 অংশ
Arduino - ESP12 অংশ
Arduino - ESP12 অংশ
Arduino - ESP12 অংশ

আমি বিভিন্ন ধাপে এই প্রকল্পটি করেছি।

বেশ কয়েকটি লিঙ্ক আছে যা আপনাকে ESP12 (ওরফে। ESP8266) আমদানি করতে সাহায্য করে Arduino IDE তে। (আমাকে একটি বাগের কারণে সাম্প্রতিক সংস্করণের পরিবর্তে 2.3.0 সংস্করণটি ব্যবহার করতে হয়েছিল যা এর মধ্যে সমাধান করা যেতে পারে …)

আমি আমার আরডুইনো ইউএনও (শুধুমাত্র ইউএসবি এর মাধ্যমে সিরিয়ালের মাধ্যমে আমার পিসির মধ্যে একটি সেতু হিসেবে ব্যবহার করা হয়েছে) ইএসপি সিরিয়াল ইন্টারফেসে ইএসপি হুকিং করে শুরু করেছি। এটি ব্যাখ্যা করার জন্য পৃথক নির্দেশিকা রয়েছে।

আমার সমাপ্ত প্রকল্পে আমি সিরিয়ালের সাথে সংযোগ স্থাপনের জন্য তারগুলি ছেড়ে দিয়েছি যদি আমার কখনও সমস্যা সমাধানের প্রয়োজন হয়। RX

তারপরে আপনাকে নিম্নরূপ আপনার ESP12 তারের করতে হবে:

ইএসপি পিন…

GND UNO GND

RX UNO RX

TX UNO TX

EN VCC

GPIO15 GND

প্রাথমিকভাবে আমি ইউএনও -তে 3.3V থেকে আমার ইএসপি পাওয়ার চেষ্টা করেছি কিন্তু আমি দ্রুতই আমার ইএসপি কে একটি বেঞ্চ পাওয়ার সাপ্লাই দিয়ে পাওয়ার জন্য সরিয়ে নিয়েছি কিন্তু আপনি আপনার ব্যাটারি প্যাকটিও ব্যবহার করতে পারেন।

GPIO0 আমি ইএসপি ফ্ল্যাশিং (= প্রোগ্রামিং) সক্ষম করতে GND এর সাথে একটি জাম্পারের সাথে এটি সংযুক্ত করেছি।

প্রথম পরীক্ষা: জাম্পার খোলা রেখে আরডুইনো আইডিই (115200 বাউড!) এ একটি সিরিয়াল মনিটর শুরু করুন।

ইএসপি পাওয়ার চক্র, আপনি কিছু আবর্জনা অক্ষর এবং তারপর একটি বার্তা দেখতে হবে:

Ai-Thinker Technology Co. Ltd. প্রস্তুত

এই মোডে, ESP কিছুটা পুরানো ফ্যাশনের মডেমের মত কাজ করে। আপনাকে AT কমান্ড ব্যবহার করতে হবে।

নিম্নলিখিত কমান্ডগুলি চেষ্টা করুন:

AT+RST

এবং নিম্নলিখিত দুটি কমান্ড

AT+CWMODE = 3

ঠিক আছে

AT+CWLAP

এটি আপনাকে এলাকার সমস্ত ওয়াইফাই নেটওয়ার্কের একটি তালিকা দেবে।

যদি এটি কাজ করে তবে আপনি পরবর্তী পদক্ষেপের জন্য প্রস্তুত।

ধাপ 4: একটি নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) ক্লায়েন্ট হিসাবে ইএসপি পরীক্ষা করা।

একটি নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) ক্লায়েন্ট হিসাবে ইএসপি পরীক্ষা করা।
একটি নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) ক্লায়েন্ট হিসাবে ইএসপি পরীক্ষা করা।
একটি নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) ক্লায়েন্ট হিসাবে ইএসপি পরীক্ষা করা।
একটি নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) ক্লায়েন্ট হিসাবে ইএসপি পরীক্ষা করা।

Arduino IDE তে, ফাইল, উদাহরণ, ESP8266WiFi এর অধীনে NTPClient লোড করুন।

এটি কাজ করার জন্য ছোটখাটো পরিবর্তন প্রয়োজন; আপনাকে আপনার SSID এবং আপনার ওয়াইফাই নেটওয়ার্কের পাসওয়ার্ড দিতে হবে।

এখন জাম্পার রাখুন, GPIO0 কে GND থেকে ছোট করুন।

ESP কে পাওয়ার সাইকেল করুন এবং ESP এ স্কেচ আপলোড করুন।

সংকলনের পরে, ইএসপিতে আপলোড শুরু করা উচিত। কোডটি ডাউনলোড হওয়ার সাথে সাথে ইএসপি -তে নীল LED দ্রুত জ্বলজ্বল করবে।

আমি লক্ষ্য করেছি যে আইডিই পুনরায় চালু করার সাথে সাথে আমাকে কিছুটা খেলতে হয়েছিল, আপলোডটি কাজ করার আগে ইএসপি পুনরায় চালু করা হয়েছিল।

আপনি স্কেচ কম্পাইল/আপলোড শুরু করার আগে, সিরিয়াল কনসোল (= সিরিয়াল মনিটর) বন্ধ করতে ভুলবেন না কারণ এটি আপনাকে আপলোড করতে বাধা দেবে।

একবার আপলোড সফল হলে, আপনি ইএসপি কার্যকরভাবে ইন্টারনেট থেকে সময় পেতে দেখতে সিরিয়াল মনিটরটি আবার খুলতে পারেন।

দারুণ, আপনি আপনার ইএসপি প্রোগ্রাম করেছেন, আপনার ওয়াইফাই এর সাথে সংযুক্ত এবং ইন্টারনেট থেকে সময় পেয়েছেন।

পরবর্তী ধাপে আমরা DHT22 পরীক্ষা করব।

ধাপ 5: DHT22 সেন্সর পরীক্ষা করা

DHT22 সেন্সর পরীক্ষা করা হচ্ছে
DHT22 সেন্সর পরীক্ষা করা হচ্ছে

এখন কিছু অতিরিক্ত তারের প্রয়োজন।

DHT পিন… সেন্সরের পিন 1 (বাম দিকে) VCC (3.3V) এর সাথে সংযুক্ত করুন

পিন 2 ESP GPIO5 সংযোগ করুন (স্কেচে DHTPIN)

গ্রাউন্ডে সেন্সরের পিন 4 (ডানদিকে) সংযুক্ত করুন

পিন 2 (ডেটা) থেকে সেন্সরের পিন 1 (পাওয়ার) থেকে 10K রোধকারী সংযুক্ত করুন।

এনটিপি পরীক্ষার অনুরূপ, DHTtester স্কেচ খুঁজুন, এবং নিম্নলিখিত উপায়ে এটি টুইক করুন:

#DHTPIN 5 সংজ্ঞায়িত করুন // আমরা সেন্সরের সাথে সংযোগ করার জন্য GPIO5 নির্বাচন করেছি#DHTTYPE DHT22 // সংজ্ঞায়িত করুন যেহেতু আমরা একটি DHT22 ব্যবহার করছি কিন্তু এই কোড/লাইব্রেরি DHT11 এর জন্যও উপযুক্ত

আবার, সিরিয়াল মনিটর বন্ধ করুন, পাওয়ার চক্রটি ESP এবং কম্পাইল করুন এবং ESP ফ্ল্যাশ করুন।

যদি সবকিছু ঠিক থাকে তবে আপনার সিরিয়াল মনিটরে পরিমাপগুলি দেখা উচিত।

আপনি সেন্সর দিয়ে কিছুটা খেলতে পারেন। আপনি যদি এটির উপর শ্বাস নেন, আপনি দেখতে পাবেন আর্দ্রতা বেড়ে যাচ্ছে।

আপনার যদি একটি (নন এলইডি) ডেস্ক ল্যাম্প থাকে তবে আপনি এটিকে কিছুটা গরম করার জন্য সেন্সরে জ্বলতে পারেন।

দারুণ! সেন্সরের দুটি বড় অংশ এখন কাজ করছে।

পরবর্তী ধাপে আমি চূড়ান্ত কোড সম্পর্কে মন্তব্য করব।

ধাপ 6: এটি একত্রিত করা …

একসাথে রেখে…
একসাথে রেখে…

আবার কিছু অতিরিক্ত ওয়্যারিং … এটি ডিপস্লিপকে সম্ভব করা।

মনে রাখবেন, ডিপস্লিপ আইওটি ডিভাইসের জন্য একটি অবিশ্বাস্য ফাংশন।

তবে যদি আপনার সেন্সর ডিপস্লিপের জন্য হার্ডওয়ার্ড হয় তবে ইএসপি পুনরায় প্রোগ্রাম করা কঠিন হতে পারে তাই আমরা এর মধ্যে আরেকটি জাম্পার সংযোগ করতে যাচ্ছি

GPIO16-RST।

হ্যাঁ এটা অবশ্যই GPIO16 হতে হবে, কারণ GPIO হল ডিভাইসটি জাগিয়ে তোলার জন্য কঠোর পরিশ্রমী যখন ডিপস্লিপের পর রিয়েল টাইম ক্লক বন্ধ হয়ে যায়!

যখন আপনি পরীক্ষা করছেন, আপনি 15 সেকেন্ড ডিপস্লিপ করার সিদ্ধান্ত নিতে পারেন।

যখন আমি ডিবাগ করছিলাম, আমি জাম্পারকে GPIO0 এ সরিয়ে দেব যাতে আমি আমার প্রোগ্রামটি ফ্ল্যাশ করতে পারি।

ডাউনলোড শেষ হলে, আমি জাম্পারকে GPIO16 এ সরিয়ে দেব যাতে ডিপস্লিপ কাজ করে।

ESP এর কোডকে TnHclient.c বলা হয়

আপনাকে আপনার SSID, পাসওয়ার্ড এবং আপনার সার্ভারের IP ঠিকানা পরিবর্তন করতে হবে।

কোডের অতিরিক্ত লাইন রয়েছে যা আপনি আপনার সেটআপের সমস্যা সমাধান বা পরীক্ষা করতে ব্যবহার করতে পারেন।

ধাপ 7: জিনিসগুলির সার্ভার সাইড।

সার্ভার সাইড অফ থিংস।
সার্ভার সাইড অফ থিংস।
সার্ভার সাইড অফ থিংস।
সার্ভার সাইড অফ থিংস।

এটি একটি সাধারণ ভুল বোঝাবুঝি যে ইউডিপি অবিশ্বস্ত এবং টিসিপি …

এটি একটি স্ক্রু ড্রাইভারের চেয়ে হাতুড়ি বলার মতোই মূর্খ। এগুলি কেবল ভিন্ন খুব দরকারী সরঞ্জাম এবং তাদের উভয়েরই তাদের ব্যবহার রয়েছে।

যাইহোক, ইউডিপি ছাড়া ইন্টারনেট কাজ করবে না … ডিএনএস ইউডিপি ভিত্তিক।

সুতরাং, আমি ইউডিপি বেছে নিলাম কারণ এটি খুব হালকা, সহজ এবং দ্রুত।

আমি মনে করি আমার ওয়াইফাই খুবই নির্ভরযোগ্য তাই ক্লায়েন্ট সর্বোচ্চ 3 টি UDP প্যাকেট পাঠাবে যদি স্বীকৃতি "ঠিক আছে!" প্রাপ্ত হয় না।

TnHserver এর জন্য C- কোড TnHServer.c ফাইলে রয়েছে।

কোডটি ব্যাখ্যা করে বেশ কয়েকটি মন্তব্য রয়েছে।

আমাদের সার্ভারে কিছু অতিরিক্ত টুল লাগবে: rrdtool, apache এবং হয়তো tcpdump।

রাস্পবিয়ানে rrdtool ইনস্টল করার জন্য আপনি কেবল প্যাকেজটি ইনস্টল করতে পারেন: apt-get install rrdtool

যদি আপনার নেটওয়ার্ক ট্র্যাফিক ডিবাগ করার প্রয়োজন হয়, tcpdump কাজে আসে apt-get install tcpdump

গ্রাফগুলির সাথে পরামর্শ করার জন্য আমার একটি ব্রাউজার ব্যবহার করতে সক্ষম হওয়ার জন্য একটি ওয়েব সার্ভারের প্রয়োজন ছিল: apt-get apache2 ইনস্টল করুন

রাউন্ড রবিন ডাটাবেস তৈরির কমান্ড পেতে আমি এই টুলটি ব্যবহার করেছি: https://rrdwizard.appspot.com/index.php। আপনাকে কেবল একবার এটি চালাতে হবে (যদি আপনি এটি প্রথমবার সঠিকভাবে পান)।

rrdtool TnHdatabase.rrd তৈরি করুন-এখন -10s শুরু করুন

-পদক্ষেপ '1200'

ডিএস: তাপমাত্রা: গেজ: 1200: -20.5: 45.5 '

DS: আর্দ্রতা: গেজ: 1200: 0: 100.0 '

'আরআরএ: গড়: 0.5: 1: 720'

'আরআরএ: গড়: 0.5: 3: 960'

'আরআরএ: গড়: 0.5: 18: 1600'

অবশেষে, আমি প্রতিদিন মধ্যরাতে আমার TnHserver পুনরায় চালু করার জন্য একটি ক্রন্টাব এন্ট্রি ব্যবহার করি। আমি সুরক্ষা সতর্কতা হিসাবে TnHserver একটি সাধারণ ব্যবহারকারী (অর্থাৎ। রুট নয়) হিসাবে চালাই।

0 0 * * */usr/bin/pkill TnHserver; /home/user/bin/TnHserver>/dev/null 2> & 1

আপনি চেক করতে পারেন যে TnHserver কাজ করে চলছে

$ ps -elf | grep TnHserver

এবং আপনি যাচাই করতে পারেন যে এটি পোর্ট 7777 এ প্যাকেটের জন্য শুনছে

$ netstat -anu

সক্রিয় ইন্টারনেট সংযোগ (সার্ভার এবং প্রতিষ্ঠিত)

Proto Recv-Q সেন্ড-কিউ স্থানীয় ঠিকানা বিদেশী ঠিকানা রাজ্য

udp 0 0 0.0.0.0:7777 0.0.0.0:*

অবশেষে CreateTnH_Graphs.sh.txt গ্রাফ তৈরির জন্য একটি উদাহরণ স্ক্রিপ্ট। (আমি স্ক্রিপ্টগুলিকে রুট হিসাবে জেনারেট করি, আপনি হয়তো এটি করতে চান না।)

খুব সহজ ওয়েবপেজ ব্যবহার করে আপনি আপনার হোম নেটওয়ার্কের যেকোন ব্রাউজার থেকে গ্রাফ দেখতে পারেন।

প্রস্তাবিত: