جدول المحتويات:
- الخطوة الأولى: إخلاء المسؤولية
- الخطوة 2: قم بإعداد حساب IFTTT مجاني
- الخطوة 3: أنشئ تطبيق IFTTT الصغير
- الخطوة 4: تكوين جزء "هذا" من التطبيق الصغير الخاص بك
- الخطوة 5: أضف خدمة WebHooks إلى التطبيق الصغير الخاص بك
- الخطوة 6: قم بإعداد مشغل "تلقي طلب ويب"
- الخطوة 7: أدخل اسم الحدث
- الخطوة 8: تكوين "هذا" جزء من التطبيق الصغير الخاص بك
- الخطوة 9: إعداد خدمة الإجراء
- الخطوة 10: اتصل بجداول بيانات Google
- الخطوة 11: اختر إجراء
- الخطوة 12: قم بإعداد الإجراء
- الخطوة 13: مراجعة التطبيق الصغير وإنهائه
- الخطوة 14: استرجع معلومات التكوين المطلوبة لاحقًا
- الخطوة 15: تابع إلى وثائق Webhooks لمفتاح API
- الخطوة 16: احفظ مفتاح API
- الخطوة 17: اجمع المكونات
- الخطوة 18: قم بتجميع المكونات
- الخطوة 19: اكتب كود اردوينو
- الخطوة 20: النتائج
- الخطوة 21: الاعتمادات
فيديو: مشروع مسجل حالة الباب ودرجة الحرارة: 21 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
سيوضح لك هذا Instructable كيفية إنشاء باب بسيط ومسجل حالة درجة الحرارة بأقل من 10.00 دولارات باستخدام ESP8266 NodeMCU ، ومستشعر درجة الحرارة والرطوبة DHT11 ، ومفتاح باب / نافذة ريد ، ومقاوم 10 كيلو أوم وبعض الأسلاك الموصلة.
نشأ هذا المشروع من رغبتي في القيام بالمزيد من أتمتة المنزل باستخدام لوحة Arduino ، نظرًا لأنني كنت أقرأ كثيرًا عن EPS8266 NodeMCU المتوافق مع Arduino ، فقد قررت أن هذه اللوحة ستكون اللوحة المثالية منخفضة التكلفة للقيام ببعض التجارب. بعد البحث في الإنترنت عن مشاريع أتمتة المنزل باستخدام لوحات ESP8266 ، استقررت على الجمع بين درجة الحرارة ومسجل حالة الباب في محاولتي الأولى. في نهاية المطاف ، سيتم دمج هذا المشروع مع الماكينات وأجهزة استشعار الرطوبة وغيرها من الأجهزة الإلكترونية لأتمتة منزل أخضر صغير صممه وبناؤه جدي منذ 50 عامًا. سيتم استخدام مستشعر درجة الحرارة لتحديد ما إذا كان يجب تشغيل نظام التسخين أو فك ارتباطه وكذلك إرسال إشارة إلى الماكينات لفتح وإغلاق نظام التهوية عند الحاجة. سيتم مراقبة حالة نظام التهوية عن طريق استخدام مفاتيح القصب المغناطيسية. أخيرًا ، سيتم استخدام مستشعرات الرطوبة لأتمتة نظام الري.
الخطوة الأولى: إخلاء المسؤولية
مجرد إخلاء سريع للمسؤولية لذكر أننا لا نتحمل أي مسؤولية عن أي شيء يحدث نتيجة لاتباع هذه التعليمات. من الأفضل دائمًا اتباع تعليمات الشركات المصنعة وأوراق السلامة عند إنشاء أي شيء ، لذا يرجى الرجوع إلى هذه المستندات لمعرفة أي من الأجزاء والأدوات التي تستخدمها لبناء قطعك الخاصة. نحن ببساطة نقدم فقط معلومات عن الخطوات التي استخدمناها لإنشاء خطتنا. نحن لسنا محترفين. في الواقع ، 2 من كل 3 أفراد شاركوا في هذا البناء هم من الأطفال.
الخطوة 2: قم بإعداد حساب IFTTT مجاني
إذا لم يكن لديك حساب بالفعل ، فقد حان الوقت الآن لإعداد حساب IFTTT مجاني من خلال الانتقال إلى صفحتهم الرئيسية.. IFTTT تعني If This Then That وهي عبارة عن منصة مجانية تتيح لك توصيل الخدمات المستندة إلى الإنترنت بطرق جديدة تمكنك من الاستفادة من تلك الخدمات بطرق جديدة. بالنسبة لهذا المشروع ، سنستخدم IFTTT للسماح لـ ESP8266 بتسجيل حالة الباب عبر مفتاح القصب ودرجة الحرارة والرطوبة عبر مستشعر DHT11 في مستند أوراق Google.
الخطوة 3: أنشئ تطبيق IFTTT الصغير
أثناء وجودك في IFTTT ، تابع إلى قسم "تطبيقاتي الصغيرة" وأنشئ تطبيقًا صغيرًا جديدًا بالنقر فوق الزر "تطبيق صغير جديد".
الخطوة 4: تكوين جزء "هذا" من التطبيق الصغير الخاص بك
انقر فوق كلمة "هذه" باللون الأزرق - كما هو موضح في الشكل أعلاه.
الخطوة 5: أضف خدمة WebHooks إلى التطبيق الصغير الخاص بك
في شريط البحث ، ابحث عن خدمة "Webhooks" وحدد رمز Webhooks.
بمجرد العثور على خدمة Webhooks ، انقر عليها.
الخطوة 6: قم بإعداد مشغل "تلقي طلب ويب"
اختر المشغل "تلقي طلب ويب".
الخطوة 7: أدخل اسم الحدث
في مربع النص ، قم بتوفير التطبيق الصغير الجديد الخاص بك باسم حدث. لقد اخترت "مسجل البيانات" ولكن يمكنك اختيار ما تريد.
الخطوة 8: تكوين "هذا" جزء من التطبيق الصغير الخاص بك
انقر فوق كلمة "تلك" باللون الأزرق - كما هو موضح في الشكل أعلاه.
الخطوة 9: إعداد خدمة الإجراء
في مربع البحث ، ابحث عن خدمة "جداول بيانات Google" ، وانقر على رمز جداول بيانات Google.
الخطوة 10: اتصل بجداول بيانات Google
إذا لم تكن قد قمت بذلك بالفعل ، فستحتاج إلى ربط حساب IFTTT بجداول بيانات Google. اضغط على زر الاتصال الموضح أعلاه واتبع التعليمات التي تظهر على الشاشة.
الخطوة 11: اختر إجراء
انقر فوق "إضافة صف إلى جدول البيانات".
الخطوة 12: قم بإعداد الإجراء
أدخل اسمًا في مربع النص "اسم جدول البيانات". اخترت استخدام "Data_Logger" لتحقيق التناسق. اترك باقي الإعدادات وشأنها (يمكنك تجربة تلك الإعدادات في وقت آخر) ثم اضغط على الزر "إنشاء إجراء" أسفل الشاشة.
الخطوة 13: مراجعة التطبيق الصغير وإنهائه
بمجرد أن تشعر بالرضا عن تكوين التطبيق الصغير الخاص بك ، اضغط على الزر "إنهاء".
الخطوة 14: استرجع معلومات التكوين المطلوبة لاحقًا
انقر على "Webhooks" كما هو موضح أعلاه.
الخطوة 15: تابع إلى وثائق Webhooks لمفتاح API
قد يبدو الأمر غريبًا ولكن انقر على رابط التوثيق في أعلى اليمين للمتابعة إلى الصفحة باستخدام مفتاح API الفريد الخاص بك.
الخطوة 16: احفظ مفتاح API
يعرض السطر الأول من شاشة التوثيق مفتاح API الفريد الخاص بك. انسخ هذا المفتاح واحفظه لاستخدامه لاحقًا.
من الجيد أيضًا اختبار التطبيق الصغير هنا. تذكر تغيير {event} إلى Data_Logger أو أي شيء قمت بتسميته الحدث الخاص بك وإضافة بعض البيانات إلى القيم الفارغة الثلاث ثم انقر فوق الزر "Test It" في أسفل الصفحة. يجب أن ترى رسالة خضراء تقول "تم تشغيل الحدث". إذا كان الأمر كذلك ، فانتقل إلى محرر مستندات Google وتأكد من أن البيانات التي أدخلتها في صفحة الاختبار ظهرت في مستند جداول بيانات Google.
الخطوة 17: اجمع المكونات
ستحتاج فقط إلى أجزاء قليلة.
1) مجلس تطوير NodeMcu ESP8266
2) مستشعر درجة الحرارة / الرطوبة DHT11
3) باب / نافذة ريد التبديل
4) 10 كيلو أوم المقاوم
5) سلك التوصيل
الخطوة 18: قم بتجميع المكونات
1) قم بتوصيل أحد دبوس 3v3 الموجود على ESP8266 بالدبوس vcc على DHT11.
2) قم بتوصيل أحد المسامير الأرضية الموجودة على ESP8266 بالدبوس الأرضي على DHT11.
3) قم بتوصيل الدبوس D4 (المعروف أيضًا باسم الدبوس 2 في IDE) على ESP8266 بدبوس البيانات في DHT11.
4) قم بتوصيل دبوس 3v3 آخر على ESP8266 إلى جانب واحد من مفتاح الباب / النافذة.
5) قم بتوصيل الدبوس D5 (المعروف أيضًا باسم دبوس 14 في IDE) على ESP8266 بالجانب الآخر من مفتاح الباب / النافذة ، وقم أيضًا بتوصيله بجانب واحد من المقاوم 10 كيلو أوم.
6) قم بتوصيل الجانب الآخر من المقاوم 10 كيلو أوم بدبوس أرضي آخر على ESP8266.
لتحديدات ESP8266 pin ، يرجى الرجوع إلى هذا الرسم التخطيطي المفيد أو الفيديو المفيد للغاية.
الخطوة 19: اكتب كود اردوينو
انسخ والصق الكود أدناه في Arduino IDE الخاص بك.
# تضمين # تضمين # تضمين "DHT.h"
#define DHTPIN 2 // ما هو الدبوس الرقمي الذي نتصل به
#define DOORPIN 14 // ما هو الدبوس الرقمي الذي يعمل به مفتاح الباب.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN ، DHTTYPE) ؛
عدد كثافة العمليات = 1 ؛
const char * ssid = "some_ssid" ؛ // غيّر هذا لاستخدام ssid const char * password = "some_password" ؛ // قم بتغيير هذا لاستخدام كلمة المرور الخاصة بك int sleepTime = 100 ؛
// Maker Webhooks IFTTT
const char * server = "maker.ifttt.com" ؛
// مصدر عنوان URL الخاص بـ IFTTT
const char * Resource = "/ trigger / SOME_SERVICE_NAME / with / key / SOME_API_KEY" ؛ // تأكد من استخدام اسم الخدمة ومفتاح api الخاص بك.
String doorStatus = "مغلق" ؛
حالة منطقية متغيرة تغيرت = خطأ ؛
// إذا كنت تنام لساعات ، فاضبط الفاصل الزمني بالساعة * 60 دقيقة * 60 ثانية * 1000 مللي ثانية
فاصل زمني طويل = 1.0 * 60 * 60 * 1000 ؛ // 1 ساعة غير موقعة منذ فترة طويلة ميليس = 0 - (2 * فاصل زمني) ؛
الإعداد باطل () {
Serial.begin (115200) ؛ attachInterrupt (digitalPinToInterrupt (DOORPIN) أو eventTriggered أو أختر) ؛ pinMode (DOORPIN ، INPUT) ؛ // مستشعر الباب dht.begin () ؛ WiFi.begin (SSID ، كلمة المرور) ؛
Serial.print ("\ n اتصال..")؛
while (WiFi.status ()! = WL_CONNECTED) {delay (1000) ؛ Serial.print (".") ؛ } Serial.print ("\ n")؛ }
حدث باطل
stateChanged = صحيح ؛ Serial.println ("فحص الباب!") ؛ if (digitalRead (DOORPIN) == HIGH) // تحقق لمعرفة ما إذا كان الباب مفتوحًا {Serial.println ("الباب مغلق!")؛ doorStatus = "مغلق" ؛ } else {Serial.println ("الباب مفتوح!")؛ doorStatus = "مفتوح" ؛ }}
checkStatus () باطلة {
if (WiFi.status () == WL_CONNECTED) {// تحقق من حالة اتصال WiFi // تستغرق قراءة درجة الحرارة أو الرطوبة حوالي 250 مللي ثانية! // قد تكون قراءات المستشعر أيضًا "قديمة" حتى ثانيتين (مستشعر بطيء جدًا) تعويم h = dht.readHumidity () ؛ // قراءة درجة الحرارة على أنها مئوية (الافتراضي) float t = dht.readTemperature () ؛ // قراءة درجة الحرارة على أنها فهرنهايت (isFahrenheit = true) float f = dht.readTemperature (true) ؛ // تحقق مما إذا كانت أي قراءات فشلت والخروج مبكرًا (للمحاولة مرة أخرى). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Failed to read from DHT sensor!")؛ //Serial.print (".") ؛ // فشلت القراءة من مستشعر DHT! إرجاع؛ } // حساب مؤشر الحرارة بالفهرنهايت (الافتراضي) float hif = dht.computeHeatIndex (f، h)؛ // حساب مؤشر الحرارة بالدرجة المئوية (isFahreheit = false) float hic = dht.computeHeatIndex (t، h، false) ؛
Serial.print ("\ n") ؛
Serial.print ("درجة الحرارة:") ؛ Serial.print (f) ؛ Serial.print ("* F (") ؛ Serial.print (t) ؛ Serial.print ("* C)") ؛ Serial.print ("\ t") ؛ Serial.print ("مؤشر الحرارة:") ؛ Serial.print (hif) ؛ Serial.print ("* F (") ؛ Serial.print (hic) ؛ Serial.print ("* C)٪") ؛ Serial.print ("\ t") ؛ Serial.print ("الرطوبة:") ؛ Serial.println (ح) ؛
if (digitalRead (DOORPIN) == HIGH) // تحقق لمعرفة ما إذا كان الباب مفتوحًا
{Serial.println ("الباب مغلق!") ؛ doorStatus = "مغلق" ؛ } else {Serial.println ("الباب مفتوح!")؛ doorStatus = "مفتوح" ؛ } String jsonObject = String ("{" value1 / ": \" ") + f +" * F ("+ t +" * C) / "+ hif +" * F ("+ hic +" * C) "+" / "، \" value2 / ": \" "+ h +" / "، \" value3 / ": \" "+ doorStatus +" / "}"؛ HTTPClient http ؛ String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9" ؛ http.begin (completeUrl) ؛ // http.begin (الخادم) ؛ http.addHeader ("نوع المحتوى" ، "تطبيق / json") ؛ http. POST (jsonObject) ، http.writeToStream (& المسلسل) ؛ http.end () ، //اغلق الاتصال
stateChanged = خطأ ؛
int sleepTimeInMinutes = الفاصل الزمني / 1000/60 ؛ Serial.print ("\ n / n اذهب إلى وضع السكون لـ") ؛ Serial.print (sleepTimeInMinutes) ؛ Serial.println ("دقيقة (دقائق) …") ؛ }}
حلقة فارغة() {
تيار طويل بدون توقيع ميليس = ميلي () ؛ تأخير (4000) ؛ // إذا تجاوزنا الوقت المنقضي ، فقم بفحص الباب ودرجة الحرارة. إذا (currentMillis - previousMillis> = الفاصل الزمني) {stateChanged = true ؛ PreviousMillis = CurrentMillis ؛ Serial.print (العد ++) ؛ Serial.println (") فحص بسبب الوقت المنقضي!")؛ } else if (stateChanged) {Serial.print (count ++)؛ Serial.println (") التحقق بسبب تغيير الحالة!")؛ }
// إذا تغيرت الحالة ، فتحقق من الباب ودرجة الحرارة.
إذا (stateChanged) {checkStatus () ؛ }
تأخير (وقت النوم) ؛
}
الخطوة 20: النتائج
بمجرد تحميل شفرة المصدر في الخطوة السابقة ، يجب أن تحصل على نتائج مثل المثال الموضح أعلاه.
الخطوة 21: الاعتمادات
لقد وجدت الكثير من التلميحات والنصائح المفيدة من Random Nerd Tutorials ، وأود أن أشكرهم على كل ما قدموه من مساعدة. خاصةً برنامجهم التعليمي الممتاز على ESP32 ESP8266 نشر قراءات المستشعر إلى أوراق Google التي تعتمد عليها الأجزاء الرئيسية من Instructable.
بالإضافة إلى ذلك ، ساعدني DHT11 Instructable من TheCircuit في فهم كيفية استخدام هذا المستشعر الصغير غير المكلف للغاية ولكنه مثير للاهتمام.
علاوة على ذلك ، هناك العديد من البرامج التعليمية التي تتناول مراقبة أبوابك مثل Garage Door Monitor وآخر من Random Nerd Tutorials. لقد استخدمت أجزاءً وقطعًا منها لمساعدتي في فهم كيفية تشغيل مفتاح القصب الخاص بي بشكل صحيح.
أخيرًا ، باستخدام هذه المعلومات بالإضافة إلى التفاصيل الأخرى التي وجدتها حول الإنترنت ، تمكنت من إنشاء نظام يلبي احتياجاتي. آمل أن تجد هذا Instructable مفيدًا وأن تبني واحدة خاصة بك.
موصى به:
كيفية عمل مسجل بيانات في الوقت الحقيقي للرطوبة ودرجة الحرارة باستخدام Arduino UNO وبطاقة SD - DHT11 محاكاة مسجل البيانات في Proteus: 5 خطوات
كيفية عمل مسجل بيانات في الوقت الحقيقي للرطوبة ودرجة الحرارة باستخدام Arduino UNO وبطاقة SD | DHT11 محاكاة مسجل البيانات في Proteus: مقدمة: مرحبًا ، هذا Liono Maker ، إليك رابط YouTube. نحن نصنع مشروعًا إبداعيًا مع Arduino ونعمل على أنظمة مضمنة. Data-Logger: مسجل البيانات (أيضًا مسجل البيانات أو مسجل البيانات) هو جهاز إلكتروني يسجل البيانات بمرور الوقت مع
نظام التحكم في الرطوبة ودرجة الحرارة لتراريوم: 11 خطوة (بالصور)
نظام التحكم في الرطوبة ودرجة الحرارة لـ Terrarium: مقدمة: هذه التعليمات مخصصة لتطوير نظام معياري للتحكم في الرطوبة ودرجة الحرارة باستخدام Arduino Uno. يستخدم هذا النظام مسبارًا مقاومًا للرطوبة ودرجة الحرارة لرصد المعلمات البيئية و Arduino Uno
بيانات مستشعر الاهتزاز ودرجة الحرارة اللاسلكي إلى MySQL باستخدام Node-RED: 40 خطوة
الاهتزاز اللاسلكي وبيانات مستشعر درجة الحرارة إلى MySQL باستخدام Node-RED: تقديم مستشعر الاهتزاز ودرجة الحرارة اللاسلكي طويل المدى لإنترنت الأشياء من NCD ، والذي يضم نطاقًا يصل إلى ميلين باستخدام بنية الشبكات الشبكية اللاسلكية. يشتمل هذا الجهاز على مستشعر دقيق للاهتزاز ودرجة الحرارة 16 بت ، وهو
كيفية عمل مسجل بيانات لدرجة الحرارة ودرجة الحموضة والأكسجين المذاب: 11 خطوة (بالصور)
كيفية عمل مسجل بيانات لدرجة الحرارة ودرجة الحموضة والأكسجين المذاب: الأهداف: عمل مسجل بيانات بقيمة 500 دولار. يخزن بيانات لدرجة الحرارة ، ودرجة الحموضة ، و DO مع طابع زمني وباستخدام اتصال I2C. لماذا I2C (الدائرة المتكاملة)؟ يمكن للمرء تكديس أكبر عدد ممكن من أجهزة الاستشعار في نفس الخط بالنظر إلى أن كل واحد منهم لديه
حالة مشروع سريعة وسهلة: 15 خطوة
حالة مشروع سريعة وسهلة: يوضح هذا المشروع كيفية إنشاء حالة مشروع بسيطة من مواد متجر الأجهزة في فترة بعد الظهر تقريبًا. إنه مناسب بشكل خاص للمشاريع التي تحتاج إلى عناصر تحكم أو شاشات عرض للمستخدم. في هذا المثال ، قمت ببناء حالة لـ "Wacky soun