สารบัญ:

อุณหภูมิและความชื้นจาก Arduino ถึง Raspberry Pi: 6 ขั้นตอน
อุณหภูมิและความชื้นจาก Arduino ถึง Raspberry Pi: 6 ขั้นตอน

วีดีโอ: อุณหภูมิและความชื้นจาก Arduino ถึง Raspberry Pi: 6 ขั้นตอน

วีดีโอ: อุณหภูมิและความชื้นจาก Arduino ถึง Raspberry Pi: 6 ขั้นตอน
วีดีโอ: Raspberry Pi EP.44 วัดอุณหภูมิด้วย DHT Sensor ใน Raspberry Pi 3 2024, กรกฎาคม
Anonim
อุณหภูมิและความชื้นจาก Arduino ถึง Raspberry Pi
อุณหภูมิและความชื้นจาก Arduino ถึง Raspberry Pi

การติดตามอุณหภูมิและความชื้นเป็นสิ่งสำคัญหากคุณมีเรือนกระจก หรือมีแผนในอนาคตที่จะอัพเกรดเรือนกระจกของคุณให้เป็นฟาร์มอัจฉริยะขนาดเล็ก

สำหรับ Instructable แรกของฉัน ฉันจะสาธิตวิธีสร้างต้นแบบ:

  • เชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับ Arduino Mega 2560
  • ตั้งโปรแกรม Arduino ใน C เพื่ออ่านข้อมูลเซ็นเซอร์
  • แสดงข้อมูลอุณหภูมิและความชื้นบน LCD ที่เชื่อมต่อกับ Arduino
  • สั่งให้ Arduino ส่งข้อมูลเซ็นเซอร์ไปยัง Raspberry Pi 3 รุ่น B+
  • เขียนโค้ดใน Python เพื่อแสดงข้อมูลเซ็นเซอร์

ทำไมต้องใช้ RPi และ Arduino ร่วมกัน?

การเชื่อมต่อ Arduino และ RPi สามารถให้ความสามารถที่ยอดเยี่ยม หากคุณต้องการ I/O ที่ Arduino เชี่ยวชาญ และการสื่อสารเครือข่าย/มัลติเธรด/ภาพซึ่ง RPi ทำได้ดีกว่ามาก

กล่าวอีกนัยหนึ่ง เราจะใช้ Arduino เพื่อควบคุมงานที่เข้มข้น และใช้ RPi สำหรับงานที่เน้นการคำนวณ

Arduinos เวอร์ชันที่ทนทานมีวางจำหน่ายแล้วที่ Rugged-Circuits

ขั้นตอนที่ 1: รับฮาร์ดแวร์ Arduino & RPi

ชุดเริ่มต้น Arduino พร้อมใช้งานและให้คุณทดลองกับเซ็นเซอร์และอุปกรณ์ประเภทต่างๆ การจัดซื้อชุดสตาร์ทนั้นถูกกว่าแทนที่จะสั่งซื้อชิ้นส่วนต่างๆ แยกกัน ฉันได้ให้ลิงค์พันธมิตรด้านล่างซึ่งชี้ไปที่ Banggood และ Amazon US

Arduino Starter Kit (บางกู๊ด)

ชุดเริ่มต้น Arduino (Amazon US)

เมนบอร์ด Element14 RPi 3 B+ (Amazon US)

เคส Raspberry Pi 3 B+ (Amazon US)

การ์ด Micro SD ขนาด 32GB (Amazon US)

ขั้นตอนที่ 2: เชื่อมต่อ DHT11 & LCD กับ Arduino

เชื่อมต่อ DHT11 & LCD เข้ากับ Arduino
เชื่อมต่อ DHT11 & LCD เข้ากับ Arduino

ขั้นตอนที่ 3: ตั้งโปรแกรม Arduino

#arduino-dht11-lcd2004

#ผู้แต่ง: วสุ วีระเพ็ญ

#https://www.instructables.com/member/VasooV/ #อ่านข้อมูลจาก DHT11 ที่เชื่อมต่อกับ Arduino แสดงบน LCD2004 และส่งข้อมูลผ่านซีเรียลไปยัง Raspberry Pi

#รวม

#รวม

//จอ LCD ถูกกำหนดให้เป็นหมายเลขอุปกรณ์ 0x27 บนบัส I2C

LiquidCrystal_I2C จอแอลซีดี (0x27, 20, 4);

//DHT11 เชื่อมต่อกับพิน 8

ดีเอชที ดีเอชที; #define เซ็นเซอร์พิน 8

// Raspberry Pi เชื่อมต่อกับ Serial 0

#define serialPi Serial

การตั้งค่าเป็นโมฆะ () {

lcd.begin(20, 4); // เริ่มต้นอินเทอร์เฟซไปยังหน้าจอ LCD และระบุขนาด (ความกว้างและความสูง) ของจอแสดงผล lcd.init(); LCD.backlight(); serialPi.begin(9600); // Arduino ไปยังมอนิเตอร์แบบอนุกรม }

วงเป็นโมฆะ () {

//อ่านข้อมูลเซ็นเซอร์

int sensorData = DHT.read11 (sensorPin); อุณหภูมิลอย = DHT อุณหภูมิ; ความชื้นลอย = DHT.ความชื้น;

//อุณหภูมิการพิมพ์

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 Setup ที่ใช้งานได้
Arduino, LCD & DHT11 Setup ที่ใช้งานได้

ขั้นตอนที่ 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() cookserial = rawserial.decode('utf-8').strip('\r\n') datasplit = cookserial.split(', ') temperature = datasplit[0].strip('') พิมพ์ (อุณหภูมิ) พิมพ์ (ความชื้น)

แนะนำ: