جدول المحتويات:

درجة الحرارة والرطوبة من اردوينو إلى Raspberry Pi: 6 خطوات
درجة الحرارة والرطوبة من اردوينو إلى Raspberry Pi: 6 خطوات

فيديو: درجة الحرارة والرطوبة من اردوينو إلى Raspberry Pi: 6 خطوات

فيديو: درجة الحرارة والرطوبة من اردوينو إلى Raspberry Pi: 6 خطوات
فيديو: How to make a weather monitoring system with Raspberry Pi board 2024, يوليو
Anonim
درجة الحرارة والرطوبة من Arduino إلى Raspberry Pi
درجة الحرارة والرطوبة من Arduino إلى Raspberry Pi

يعد تتبع درجة الحرارة والرطوبة أمرًا مهمًا إذا كان لديك دفيئة ، أو لديك خطط مستقبلية لترقية الدفيئة الخاصة بك إلى مزرعة ذكية صغيرة.

بالنسبة إلى Instructable الأول الخاص بي ، سأوضح كيفية إنشاء نموذج أولي:

  • قم بتوصيل مستشعر درجة الحرارة والرطوبة DHT11 بجهاز Arduino Mega 2560
  • قم ببرمجة Arduino في C لقراءة بيانات المستشعر
  • اعرض بيانات درجة الحرارة والرطوبة على شاشة LCD متصلة بـ Arduino
  • قم بتوجيه Arduino لإرسال بيانات المستشعر إلى Raspberry Pi 3 Model B +
  • اكتب الكود في Python لعرض بيانات المستشعر

لماذا نستخدم RPi و Arduino معًا؟

يمكن أن يتيح اتصال Arduino و RPi إمكانات رائعة إذا كنت بحاجة إلى إدخال / إخراج يتفوق فيه Arduino وشبكة الاتصال / تعدد مؤشرات الترابط / المرئيات التي يكون RPi أفضل بكثير فيها.

بمعنى آخر ، سنستخدم Arduino للتحكم في المهام المكثفة واستخدام RPi لحساب المهام المكثفة.

تتوفر إصدارات متينة من Arduinos في Rugged-Circuits

الخطوة 1: الحصول على أجهزة Arduino & RPi

تتوفر مجموعات بدء تشغيل Arduino بسهولة وتسمح لك بتجربة أنواع مختلفة من أجهزة الاستشعار والأدوات. يعد شراء مجموعة أدوات بدء التشغيل أرخص بدلاً من طلب أجزاء مختلفة بشكل منفصل. لقد قمت بتزويد بعض الروابط التابعة أدناه للإشارة إلى Banggood و Amazon US.

مجموعة اردوينو للمبتدئين (Banggood)

مجموعة المبتدئين من Arduino (أمازون الولايات المتحدة)

Element14 RPi 3 B + Motherboard (أمازون الولايات المتحدة)

حافظة Raspberry Pi 3 B + (Amazon US)

بطاقة Micro SD سعة 32 جيجا بايت (أمازون الولايات المتحدة).

الخطوة 2: قم بتوصيل DHT11 & LCD بـ Arduino

قم بتوصيل DHT11 و LCD بـ Arduino
قم بتوصيل DHT11 و LCD بـ Arduino

الخطوة 3: برمجة Arduino

# اردوينو dht11-lcd2004

# المؤلف: فاسو فيرابين

#https://www.instructables.com/member/VasooV/ #Reads البيانات من DHT11 متصل بـ Arduino ، ويعرض على LCD2004 ويرسل البيانات عبر المسلسل إلى Raspberry Pi

#يشمل

#يشمل

// تم تعريف شاشة LCD على أنها رقم الجهاز 0x27 على ناقل I2C

LiquidCrystal_I2C lcd (0x27 ، 20 ، 4) ؛

// DHT11 متصل بالدبوس 8

dht DHT ؛ # تعريف الاستشعارPin 8

// Raspberry Pi متصل بـ Serial 0

#define serialPi المسلسل

الإعداد باطل() {

lcd.begin (20 ، 4) ؛ // يقوم بتهيئة واجهة شاشة LCD ، ويحدد أبعاد (العرض والارتفاع) لشاشة عرض lcd.init () ؛ اضاءه خلفيه ال سى دى()؛ serialPi.begin (9600) ؛ // Arduino to serial monitor}

حلقة فارغة() {

// قراءة بيانات المستشعر

int sensorData = DHT.read11 (sensorPin) ؛ درجة حرارة تعويم = دهت. الرطوبة العائمة = رطوبة دهت.

// درجة حرارة الطباعة

lcd.setCursor (0 ، 0) ؛ lcd.print ("درجة الحرارة") ؛ lcd.print (درجة الحرارة) ؛ lcd.print ("C") ؛

// رطوبة الطباعة

lcd.setCursor (0 ، 1) ؛ lcd.print ("الرطوبة") ؛ lcd.print (الرطوبة) ؛ lcd.print ("٪") ؛

// أرسل بيانات درجة الحرارة والرطوبة إلى Raspberry Pi

serialPi.print ("") ؛

// انتظر لمدة 10 ثوانٍ

تأخير (10000) ؛ }

الخطوة 4: إعداد Arduino و LCD و DHT11 العامل

إعداد العمل من Arduino و LCD و DHT11
إعداد العمل من Arduino و LCD و DHT11

الخطوة 5: قم بتوصيل Raspberry Pi بـ Arduino

قم بتوصيل Raspberry Pi بـ Arduino
قم بتوصيل Raspberry Pi بـ Arduino

الخطوة 6: كود RPi Python لقراءة البيانات التسلسلية لمنفذ USB

# rpi-arduino-dht11

#Raspberry Pi يقرأ بيانات مستشعر درجة الحرارة والرطوبة من Arduino

استيراد المسلسل ، سلسلة ، الوقت

# في هذا المثال يتم استخدام / dev / ttyUSB0

# قد يتغير هذا في حالتك إلى / dev / ttyUSB1 ، / dev / ttyUSB2 ، إلخ. ser = serial. Serial ('/ dev / ttyUSB0'، 9600)

# كتلة التعليمات البرمجية التالية تعمل على النحو التالي:

# إذا كانت البيانات التسلسلية موجودة ، اقرأ السطر ، وفك تشفير بيانات UTF8 ، #… أزل نهاية أحرف السطر اللاحقة # … قسّم البيانات إلى درجة حرارة ورطوبة #… أزل مؤشري البداية والنهاية () # … اطبع الإخراج أثناء صحيح: إذا ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). strip ('r / n') datasplit = cookedserial.split ('،') temperature = datasplit [0].strip (') طباعة (درجة الحرارة) طباعة (الرطوبة)

موصى به: