جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
في هذا البرنامج التعليمي ، ستقوم ببناء جهاز مراقبة للهواء يراقب درجة حرارة الهواء والرطوبة والضغط ، وكل ذلك باستخدام Blynk و esp32 و DHT22 و BMP180.
اللوازم
- esp32 متحكم
- دهت 22
- BMP180
الخطوة 1: إعداد Blynk
ستحتاج إلى Blynk لهذا المشروع حتى تتمكن من رؤية النتائج في الوقت الفعلي في أي مكان في العالم. يمكنك معرفة كيفية إعداد Blynk في تعليمي السابق.
الخطوة 2: قم بتثبيت المكتبات
المكتبة الأولى التي ستحتاج إلى تثبيتها هي مكتبة SparkFun RHT03 Arduino ، يمكنك تنزيلها من https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide؟_ga= 2.53575016.1755727564.1559404402-688583549.1496066940 # تركيب مكتبة. بعد تنزيله ، افتح Arduino IDE وانتقل إلى Sketch> Include Library> Add. ZIP Library… وحدد ملف zip الذي قمت بتنزيله للتو.
المكتبة الثانية التي تحتاج إلى تثبيتها هي مكتبة Adafruit BMP085 ، يمكنك تثبيتها بالذهاب إلى Sketch> Include Library> Manage Libraries… ثم ابحث عن "BMP085".
الخطوة 3: اربط الدائرة
أنت الآن بحاجة إلى توصيل الدائرة الكهربائية ، إنها دائرة سهلة جدًا. انظر مخططات الدائرة أعلاه.
الخطوة 4: بناء تطبيق Blynk
ستحتاج إلى التطبيق في Blynk حتى تتمكن من تلقي البيانات وإظهارها لك في التطبيق ، بشكل بياني. لبنائه استخدم الصور أعلاه.
الحاجيات:
- 2x مقاييس
- 1x المستوى الأفقي
إعدادات مقياس درجة الحرارة:
- الاسم: درجة الحرارة
- اللون: برتقالي / أصفر
- المدخلات: V5 0-100
- التسمية: / دبوس / درجة مئوية
الفاصل الزمني للتحديث: 1 ثانية
إعدادات مقياس الرطوبة:
- الاسم: الرطوبة
- اللون: أزرق فاتح
- المدخلات V6 0-100
- التسمية: / دبوس /٪
- الفاصل الزمني للتحديث: 1 ثانية
إعدادات مستوى الضغط
- الاسم: الضغط
- اللون: برتقالي / أصفر
- المدخلات: V7 950-1050
- قلب المحور: إيقاف
- الفاصل الزمني للتحديث: 1 ثانية
الخطوة 5: قم بتحميل الكود
الآن نحن جاهزون للرمز. قبل تحميل الكود ، ستحتاج إلى إجراء بعض التغييرات ، ابحث عن السطر char auth = "YourAuthToken"؛ واستبدل YourAuthToken برمز Auth الذي كتبته سابقًا وإذا كنت تستخدم wifi ، فابحث عن السطر char ssid = "YourNetworkName" ؛ واستبدل YourNetworkName باسم شبكتك وابحث عن سطر char pass = "YourPassword" ؛ واستبدل YourPassword بكلمة مرور Wifi الخاصة بك. بعد القيام بذلك يمكنك الآن تحميل الكود.
#define BLYNK_PRINT المسلسل # تضمين
#يشمل
#يشمل
#يشمل
#يشمل
#يشمل
/////////////////////
// تعريفات الدبوس // ///////////////////// const int DHT22_DATA_PIN = 27 ؛ // DHT22 data pin const int FLAME_SENSOR_DATA_PIN = 32 ؛ // Flame Sensor data pin ///////////////////////////// // RHT03 Object Creation // ////////// /////////////////// RHT03 rht ؛ // يؤدي هذا إلى إنشاء كائن RTH03 ، والذي سنستخدمه للتفاعل مع المستشعر ///////////////////////////// // BMP180 / BMP085 إنشاء الكائن // ///////////////////////////// Adafruit_BMP085 bmp ؛ // يجب أن تحصل على Auth Token في تطبيق Blynk. // انتقل إلى إعدادات المشروع (رمز الجوز). char auth = "YourAuthToken" ؛ // بيانات اعتماد WiFi الخاصة بك. // تعيين كلمة المرور على "" للشبكات المفتوحة. char ssid = "YourNetworkName"؛ char pass = "YourPassword" ؛ توقيت BlynkTimer. sendSensor () باطلة {int updateRet = rht.update () ، if (updateRet == 1) {// يمكن استدعاء وظائف الرطوبة () و tempC () و tempF () - بعد // تحديث ناجح () - للحصول على الرطوبة ودرجة الحرارة الأخيرة // قيمة تعويم أحدث الرطوبة = rht.humidity () ؛ تعويم latestTempC = rht.tempC () ، تعويم latestTempF = rht.tempF () ، float latestPressure = bmp.readPressure () / 100 ؛ Blynk.virtualWrite (V5 ، latestTempC) ؛ Blynk.virtualWrite (V6 ، أحدث الرطوبة) ؛ Blynk.virtualWrite (V7 ، latestPressure) ؛ } آخر {// إذا فشل التحديث ، حاول التأخير لـ RHT_READ_INTERVAL_MS مللي ثانية قبل // المحاولة مرة أخرى. تأخير (RHT_READ_INTERVAL_MS) ، }} void setup () {// Debug console Serial.begin (9600)؛ Blynk.begin (auth ، ssid ، pass) ؛ // يمكنك أيضًا تحديد الخادم: //Blynk.begin(auth، ssid، pass، "blynk-cloud.com"، 80)؛ //Blynk.begin(auth، ssid، pass، IPAddress (192، 168، 1، 100)، 8080) ؛ rht.begin (DHT22_DATA_PIN) ، if (! bmp.begin ()) {Serial.println ("تعذر العثور على مستشعر BMP085 / BMP180 صالح ، تحقق من الأسلاك!") ؛ while (1) {}} // إعداد وظيفة ليتم استدعاؤها كل ثانية timer.setInterval (1000L، sendSensor) ؛ } حلقة فارغة () {Blynk.run ()؛ timer.run () ، }
الخطوة 6: انتهى
أحسنت ، اكتملت الدائرة الآن ويمكن وضعها الآن في مكان حيث يتم تشغيلها وسترسل بيانات درجة الحرارة والرطوبة والضغط إلى هاتفك!