สารบัญ:

การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi: 6 ขั้นตอน (พร้อมรูปภาพ)
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DHT22 Raspberry pi ตรวจวัดอุณหภูมิ และ ความชื้น 2024, กรกฎาคม
Anonim
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi

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

ฉันใช้บอร์ด Raspberry Pi 1 และเซ็นเซอร์ DHT22 คุณสามารถทำเช่นเดียวกันนี้บนคอมพิวเตอร์เครื่องใดก็ได้ที่มีอินเทอร์เน็ต GPIO และ Python เซ็นเซอร์ DHT11 ที่ถูกกว่าก็ทำงานได้ดีเช่นกัน

ขั้นตอนที่ 1: การเตรียมฮาร์ดแวร์

กำลังเตรียมฮาร์ดแวร์
กำลังเตรียมฮาร์ดแวร์
กำลังเตรียมฮาร์ดแวร์
กำลังเตรียมฮาร์ดแวร์

มาเริ่มกันตั้งแต่ต้นเพราะฉันไม่ได้ใช้ Raspberry Pi มาเป็นเวลานาน

เราจะต้อง:

  • บอร์ด Raspberry Pi (หรือแพลตฟอร์ม IoT อื่นๆ)
  • การ์ด SD หรือ microSD (ขึ้นอยู่กับแพลตฟอร์ม)
  • 5V/1A ผ่านไมโคร USB
  • สาย LAN ซึ่งให้การเชื่อมต่ออินเทอร์เน็ต
  • จอแสดงผล HDMI, จอภาพ RCA หรือพอร์ต UART (เพื่อเปิดใช้งาน SSH)

ขั้นตอนแรกสุดคือการดาวน์โหลด Raspbian ฉันเลือกเวอร์ชัน Lite เนื่องจากฉันจะใช้ SSH แทนการแสดงผล สิ่งต่างๆ เปลี่ยนไปจากครั้งสุดท้ายที่ฉันทำ ตอนนี้มีซอฟต์แวร์เบิร์นที่ยอดเยี่ยมที่เรียกว่า Etcher ซึ่งทำงานได้อย่างสมบูรณ์และมีการออกแบบที่น่าทึ่ง.

หลังจากเบิร์นรูปภาพเสร็จแล้ว ฉันเสียบการ์ด SD ลงใน Pi เสียบ LAN และสายไฟ จากนั้นเราเตอร์ของฉันก็ลงทะเบียนอุปกรณ์ใหม่

ขั้นตอนที่ 2: เปิดใช้งาน SSH

เปิดใช้งาน SSH
เปิดใช้งาน SSH
เปิดใช้งาน SSH
เปิดใช้งาน SSH
เปิดใช้งาน SSH
เปิดใช้งาน SSH

SSH ถูกปิดใช้งานโดยค่าเริ่มต้น ฉันสามารถใช้ตัวแปลง UART-USB หรือเพียงแค่เชื่อมต่อจอแสดงผลเพื่อเข้าถึงเชลล์และเปิดใช้งาน SSH

หลังจากรีบูตเครื่องฉันก็เข้าแล้ว ก่อนอื่นมาอัปเดตกัน:

sudo apt update && sudo apt upgrade -y

ตอนนี้มาเชื่อมต่ออุปกรณ์ใหม่นี้กับคลาวด์

ขั้นตอนที่ 3: การติดตั้ง Cloud4RPi

การติดตั้ง Cloud4RPi
การติดตั้ง Cloud4RPi

ฉันตัดสินใจลองใช้แพลตฟอร์มคลาวด์ที่เรียกว่า Cloud4RPi ซึ่งออกแบบมาสำหรับ IoT

ตามเอกสาร เราจำเป็นต้องมีแพ็คเกจต่อไปนี้เพื่อให้มันทำงาน:

sudo apt ติดตั้ง git python python-pip -y

ไลบรารีไคลเอ็นต์สามารถติดตั้งได้ในคำสั่งเดียว:

sudo pip ติดตั้ง cloud4rpi

ตอนนี้เราต้องการโค้ดตัวอย่างเพื่อให้แน่ใจว่าใช้งานได้

โคลน git https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python โคลน git https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re

ฉันตัดสินใจเรียกใช้ minimal.py แต่ฉันไม่ชอบข้อมูลปลอม โชคดีที่ฉันสังเกตเห็นวิธีง่ายๆ ในการทำให้ข้อมูลการวินิจฉัยเป็นจริงในตัวอย่างนี้ เพิ่มการนำเข้าอีกรายการหนึ่งไปยังส่วนการนำเข้า:

จากการนำเข้า rpi *

จากนั้นลบฟังก์ชันเหล่านี้ที่ให้ข้อมูลปลอม (rpi.py กำหนดไว้ตอนนี้):

def cpu_temp():

คืนค่า 70 def ip_address (): ส่งคืน '8.8.8.8' def host_name (): ส่งคืน 'ชื่อโฮสต์' def os_name (): ส่งคืน 'osx'

ตอนนี้เราต้องการโทเค็น ซึ่งช่วยให้ Cloud4RPi เชื่อมโยงอุปกรณ์กับบัญชีได้ หากต้องการรับบัญชี ให้สร้างบัญชีบน cloud4rpi.io แล้วกดปุ่มอุปกรณ์ใหม่ในหน้านี้ แทนที่สตริง _YOUR_DEVICE_TOKEN_ ในไฟล์ minimal.py ด้วยโทเค็นของอุปกรณ์แล้วบันทึกไฟล์ ตอนนี้เราพร้อมแล้วสำหรับการเปิดตัวครั้งแรก

หลาม minimal.py

เปิดหน้าอุปกรณ์และตรวจสอบว่ามีข้อมูลอยู่หรือไม่

ตอนนี้เรามาดูข้อมูลในโลกแห่งความเป็นจริงกัน

ขั้นตอนที่ 4: การเชื่อมต่อเซ็นเซอร์

การเชื่อมต่อเซ็นเซอร์
การเชื่อมต่อเซ็นเซอร์

เราจะต้อง:

  • เซ็นเซอร์ความชื้น DHT22 หรือ DHT11
  • ตัวต้านทานแบบดึงขึ้น (5-10 KΩ)
  • สายไฟ

เซ็นเซอร์ DHT22 วัดอุณหภูมิและความชื้นพร้อมกัน โปรโตคอลการสื่อสารไม่ได้มาตรฐาน ดังนั้นเราจึงไม่จำเป็นต้องเปิดใช้งานใน raspi-config - พิน GPIO แบบธรรมดาก็มากเกินพอ

ในการรับข้อมูล ฉันจะใช้ห้องสมุดที่ยอดเยี่ยมของ Adafruit สำหรับเซ็นเซอร์ DHT แต่อาจไม่ทำงานเหมือนเดิม ครั้งหนึ่งฉันเคยพบการหน่วงเวลาอย่างผิดปกติในโค้ด ซึ่งใช้ไม่ได้กับฮาร์ดแวร์ของฉัน และหลังจากนั้นสองปี คำขอดึงของฉันยังคงค้างอยู่ ฉันยังเปลี่ยนค่าคงที่การตรวจจับบอร์ดเพราะ Raspberry Pi 1 ของฉันที่มี BCM2835 ถูกตรวจพบอย่างน่าประหลาดใจว่าเป็น Raspberry Pi 3 ฉันหวังว่ามันจะเป็นจริง… ดังนั้น ฉันขอแนะนำให้ใช้ส้อมของฉัน หากคุณประสบปัญหาใดๆ กับมัน โปรดลองใช้ที่เก็บดั้งเดิม บางทีมันอาจจะใช้ได้กับใครบางคน แต่ฉันไม่ใช่หนึ่งในนั้น

โคลน git https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

เนื่องจากไลบรารี่เขียนด้วยภาษา C จึงจำเป็นต้องมีการรวบรวม ดังนั้นคุณต้องมีแพ็คเกจ build-essential และ python-dev

sudo apt ติดตั้ง build-essential python-dev -ysudo python setup.py ติดตั้ง

ขณะติดตั้งแพ็คเกจ ให้เชื่อมต่อ DHT22 ตามที่แสดงในรูปภาพ

และทดสอบ:

cd ~python -c "นำเข้า Adafruit_DHT เป็น d; พิมพ์ d.read_retry (d. DHT22, 4)"

หากคุณเห็นบางอย่างเช่น (39.2000076293945, 22.600000381469727) คุณควรรู้ว่านี่คือความชื้นเป็นเปอร์เซ็นต์และอุณหภูมิในเซลเซียส

ตอนนี้มาประกอบทุกอย่างเข้าด้วยกัน!

ขั้นตอนที่ 5: การส่งการอ่านเซ็นเซอร์ไปยัง Cloud

การส่งการอ่านเซ็นเซอร์ไปยัง Cloud
การส่งการอ่านเซ็นเซอร์ไปยัง Cloud

ฉันจะใช้ minimal.py เป็นฐานและเพิ่มการโต้ตอบ DHT22 เข้าไป

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

เนื่องจาก DHT22 ส่งคืนทั้งอุณหภูมิและความชื้นในการโทรครั้งเดียว ฉันจัดเก็บไว้ทั่วโลกและอัปเดตเพียงครั้งเดียวในคำขอ สมมติว่าการหน่วงเวลาระหว่างทั้งสองรายการจะมากกว่า 10 วินาที พิจารณารหัสต่อไปนี้ ซึ่งรับข้อมูล DHT22:

นำเข้า Adafruit_DHT

temp, hum = none, none last_update = time.time() - 20 def update_data(): global last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22,) 4) last_update = time.time() def get_t(): update_data() return round(temp, 2) if temp is not none else none def get_h(): update_data() return round(hum, 2) if hum ไม่ใช่ ไม่มีอีกแล้วไม่มี

ใส่รหัสนี้หลังจากการนำเข้าที่มีอยู่และแก้ไขส่วนตัวแปรเพื่อใช้ฟังก์ชันใหม่:

ตัวแปร = {

'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'ตัวเลข', 'ผูก': cpu_temp } }

กดปุ่มสีแดงเพื่อเริ่มการถ่ายโอนข้อมูล:

หลาม cloud_dht22.py

จากนั้นคุณสามารถตรวจสอบหน้าอุปกรณ์

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

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

เริ่มบริการ:

บริการ sudo cloud4rpi เริ่ม

และตรวจสอบ:

pi@raspberrypi:~ $ sudo service cloud4rpi status -l

● cloud4rpi.service - Cloud4RPi daemon โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/cloud4rpi.service; เปิดใช้งาน) ใช้งานอยู่: ใช้งานอยู่ (ทำงาน) ตั้งแต่วันพุธ 2017-05-17 20:22:48 UTC; 1 นาทีที่แล้ว PID หลัก: 560 (python) กลุ่ม C: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py17 พฤษภาคม 20:22:51 น. raspberrypi python[560]: การเผยแพร่ iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]} 17 พฤษภาคม 20:22:53 น. raspberrypi python[560]: เผยแพร่ iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20:2…40'}} 17 พฤษภาคม 20:22:53 น. raspberrypi python [560]: กำลังเผยแพร่ iot-hub/messages: {'type': 'ระบบ', 'ts': '2017-05-17T20….4'}}

หากทุกอย่างเป็นไปตามที่คาดไว้ เราก็สามารถใช้ความสามารถของแพลตฟอร์ม Cloud4RPi เพื่อจัดการกับข้อมูลได้

ขั้นตอนที่ 6: แผนภูมิและการเตือน

แผนภูมิและการเตือน
แผนภูมิและการเตือน
แผนภูมิและการเตือน
แผนภูมิและการเตือน
แผนภูมิและการเตือน
แผนภูมิและการเตือน

ก่อนอื่น เรามาพลอตตัวแปรเพื่อดูว่ามีการเปลี่ยนแปลงอย่างไร ซึ่งสามารถทำได้โดยการเพิ่ม Control Panel ใหม่และใส่แผนภูมิที่จำเป็นลงไป

อีกอย่างที่เราสามารถทำได้ที่นี่คือการตั้งค่าการแจ้งเตือน คุณลักษณะนี้ช่วยให้คุณสามารถกำหนดค่าช่วงปลอดภัยสำหรับตัวแปรได้ ทันทีที่เกินช่วง ระบบจะส่งการแจ้งเตือนทางอีเมล ในหน้าการแก้ไขของแผงควบคุม คุณสามารถสลับไปที่การเตือนและตั้งค่าได้

หลังจากนั้น ความชื้นในห้องของฉันก็เริ่มลดลงอย่างรวดเร็วโดยไม่ทราบสาเหตุ และไม่นานก็มีสัญญาณเตือนตามมา

คุณสามารถใช้ Cloud4RPi ได้ฟรีกับฮาร์ดแวร์ใดๆ ที่สามารถรัน Python ได้ สำหรับฉัน ตอนนี้ฉันรู้เสมอว่าเมื่อใดควรเปิดเครื่องเพิ่มความชื้นในอากาศ และยังสามารถเชื่อมต่อกับรีเลย์สำหรับการควบคุมระยะไกลผ่าน Cloud4RPi ฉันพร้อมสำหรับความร้อน! ยินดีต้อนรับฤดูร้อน!

แนะนำ: