สารบัญ:
- ขั้นตอนที่ 1: การเตรียมฮาร์ดแวร์
- ขั้นตอนที่ 2: เปิดใช้งาน SSH
- ขั้นตอนที่ 3: การติดตั้ง Cloud4RPi
- ขั้นตอนที่ 4: การเชื่อมต่อเซ็นเซอร์
- ขั้นตอนที่ 5: การส่งการอ่านเซ็นเซอร์ไปยัง Cloud
- ขั้นตอนที่ 6: แผนภูมิและการเตือน
วีดีโอ: การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Raspberry Pi: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
หน้าร้อนกำลังจะมา คนไม่มีแอร์ก็ควรเตรียมควบคุมบรรยากาศภายในอาคารด้วยตนเอง ในบทความนี้ ฉันกำลังอธิบายวิธีที่ทันสมัยในการวัดค่าพารามิเตอร์ที่สำคัญที่สุดสำหรับความสะดวกสบายของมนุษย์: อุณหภูมิและความชื้น ข้อมูลที่รวบรวมนี้จะถูกส่งไปยังระบบคลาวด์และประมวลผลที่นั่น
ฉันใช้บอร์ด 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 ถูกปิดใช้งานโดยค่าเริ่มต้น ฉันสามารถใช้ตัวแปลง UART-USB หรือเพียงแค่เชื่อมต่อจอแสดงผลเพื่อเข้าถึงเชลล์และเปิดใช้งาน SSH
หลังจากรีบูตเครื่องฉันก็เข้าแล้ว ก่อนอื่นมาอัปเดตกัน:
sudo apt update && sudo apt upgrade -y
ตอนนี้มาเชื่อมต่ออุปกรณ์ใหม่นี้กับคลาวด์
ขั้นตอนที่ 3: การติดตั้ง 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
ฉันจะใช้ 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 ฉันพร้อมสำหรับความร้อน! ยินดีต้อนรับฤดูร้อน!
แนะนำ:
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ NODE MCU และ BLYNK: 5 ขั้นตอน
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ NODE MCU และ BLYNK: สวัสดีทุกคนในคำแนะนำนี้ ให้เราเรียนรู้วิธีรับอุณหภูมิและความชื้นของบรรยากาศโดยใช้เซ็นเซอร์ DHT11-Temperature และ Humidity โดยใช้แอป Node MCU และ BLYNK
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ ESP-01 & DHT และ AskSensors Cloud: 8 ขั้นตอน
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ ESP-01 & DHT และ AskSensors Cloud: ในคำแนะนำนี้ เราจะเรียนรู้วิธีตรวจสอบอุณหภูมิและการวัดความชื้นโดยใช้บอร์ด IOT-MCU/ESP-01-DHT11 และแพลตฟอร์ม AskSensors IoT ฉันกำลังเลือกโมดูล IOT-MCU ESP-01-DHT11 สำหรับแอปพลิเคชันนี้เพราะมัน
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Blynk: 6 ขั้นตอน
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ Blynk: ในบทช่วยสอนนี้เราจะไปที่การตรวจสอบอุณหภูมิและความชื้นโดยใช้ DHT11 และส่งข้อมูลไปยังคลาวด์โดยใช้ BlynkComponents ที่จำเป็นสำหรับบทช่วยสอนนี้: Arduino UnoDHT11 Temperature and Humidity SensorESP8266-01 WiFi Module
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ SHT25 และ Arduino Nano: 5 ขั้นตอน
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ SHT25 และ Arduino Nano: เมื่อเร็ว ๆ นี้เราได้ทำงานในโครงการต่างๆ ซึ่งจำเป็นต้องมีการตรวจสอบอุณหภูมิและความชื้น จากนั้นเราก็ตระหนักว่าพารามิเตอร์ทั้งสองนี้มีบทบาทสำคัญในการประมาณประสิทธิภาพการทำงานของระบบ ทั้งที่อินดัส
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ SHT25 และ Raspberry Pi: 5 ขั้นตอน
การตรวจสอบอุณหภูมิและความชื้นโดยใช้ SHT25 และ Raspberry Pi: เมื่อเร็ว ๆ นี้เราได้ทำงานในโครงการต่างๆ ที่ต้องการการตรวจสอบอุณหภูมิและความชื้น จากนั้นเราก็ตระหนักว่าพารามิเตอร์ทั้งสองนี้มีบทบาทสำคัญในการประมาณประสิทธิภาพการทำงานของระบบ ทั้งที่อินดัส