สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การเตรียมฮาร์ดแวร์
- ขั้นตอนที่ 2: การติดตั้ง Cloud4RPi
- ขั้นตอนที่ 3: การเชื่อมต่อเซ็นเซอร์
- ขั้นตอนที่ 4: การส่งการอ่านเซ็นเซอร์ไปยัง Cloud
- ขั้นตอนที่ 5: แผนภูมิและการเตือน
วีดีโอ: ความชื้นในเมฆ: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
หน้าร้อนกำลังจะมา คนไม่มีแอร์ก็ควรเตรียมควบคุมบรรยากาศภายในอาคารด้วยตนเอง ในบทความนี้ ฉันกำลังอธิบายวิธีที่ทันสมัยในการวัดค่าพารามิเตอร์ที่สำคัญที่สุดสำหรับความสะดวกสบายของมนุษย์: อุณหภูมิและความชื้น ข้อมูลที่รวบรวมนี้จะถูกส่งไปยังระบบคลาวด์และประมวลผลที่นั่น
เสบียง
ฉันใช้บอร์ด Raspberry Pi และเซ็นเซอร์ DHT22 คุณสามารถทำเช่นเดียวกันนี้บนคอมพิวเตอร์เครื่องใดก็ได้ที่มีอินเทอร์เน็ต GPIO และ Python เซ็นเซอร์ DHT11 ที่ถูกกว่าก็ทำงานได้ดีเช่นกัน
ขั้นตอนที่ 1: การเตรียมฮาร์ดแวร์
มาเริ่มกันตั้งแต่ต้นเพราะฉันไม่ได้ใช้ Raspberry Pi มาเป็นเวลานาน
เราจะต้อง:
- บอร์ด Raspberry Pi (หรือแพลตฟอร์ม IoT อื่นๆ)
- การ์ด SD หรือ microSD (ขึ้นอยู่กับแพลตฟอร์ม)
- 5V/1A ผ่านสาย micro-USB. LAN ซึ่งให้การเชื่อมต่ออินเทอร์เน็ต
- จอแสดงผล HDMI, จอภาพ RCA หรือพอร์ต UART (เพื่อเปิดใช้งาน SSH)
ขั้นตอนแรกสุดคือการดาวน์โหลด Raspbian ฉันเลือกเวอร์ชัน Lite เนื่องจากฉันจะใช้ SSH แทนการแสดงผล
สิ่งต่าง ๆ เปลี่ยนไปตั้งแต่ครั้งสุดท้ายที่ฉันทำ ตอนนี้มีซอฟต์แวร์เบิร์นที่ยอดเยี่ยมชื่อ Etcher ซึ่งทำงานได้อย่างสมบูรณ์และมีการออกแบบที่น่าทึ่ง
หลังจากเบิร์นรูปภาพเสร็จแล้ว ฉันเสียบการ์ด SD ลงใน Pi เสียบ LAN และสายไฟ จากนั้นเราเตอร์ของฉันก็ลงทะเบียนอุปกรณ์ใหม่
ยอดเยี่ยม! ไปต่อและ SSH เข้าไป
ความปลอดภัยก็โอเค ฉันชอบ แต่สิ่งนี้ทำให้ยากขึ้นเล็กน้อย ฉันจะใช้อะแดปเตอร์ UART-USB เพื่อเข้าถึงเชลล์และเปิดใช้งาน SSH…
การใช้จอแสดงผลแทน UART ทำให้ง่ายขึ้นมาก
หลังจากรีบูตในที่สุดฉันก็เข้ามา
ก่อนอื่นมาอัปเดตกันก่อน:
sudo apt update && sudo apt upgrade -y
ตอนนี้มาเชื่อมต่ออุปกรณ์ใหม่นี้กับคลาวด์
ขั้นตอนที่ 2: การติดตั้ง Cloud4RPi
ฉันตัดสินใจลองใช้แพลตฟอร์มคลาวด์ที่เรียกว่า Cloud4RPi ซึ่งออกแบบมาสำหรับ IoT
ตามเอกสาร เราจำเป็นต้องมีแพ็คเกจต่อไปนี้เพื่อให้มันทำงาน:
sudo apt ติดตั้ง git python3 python3-pip -y
ไลบรารีไคลเอ็นต์สามารถติดตั้งได้ในคำสั่งเดียว:
sudo pip3 ติดตั้ง cloud4rpi
ตอนนี้เราต้องการโค้ดตัวอย่าง
โคลน git https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
สคริปต์ปฏิบัติการคือ control.py
เราต้องการโทเค็น ซึ่งช่วยให้ Cloud4RPi เชื่อมโยงอุปกรณ์กับบัญชีได้ หากต้องการรับบัญชี ให้สร้างบัญชีบน cloud4rpi.io แล้วกดปุ่มอุปกรณ์ใหม่ในหน้านี้ แทนที่สตริง _YOUR_DEVICE_TOKEN_ ในไฟล์ control.py ด้วยโทเค็นของอุปกรณ์แล้วบันทึกไฟล์ ตอนนี้เราพร้อมแล้วสำหรับการเปิดตัวครั้งแรก
sudo python3 control.py
เปิดหน้าอุปกรณ์และตรวจสอบว่ามีข้อมูลอยู่หรือไม่
ตอนนี้เรามาดูข้อมูลในโลกแห่งความเป็นจริงกัน
ขั้นตอนที่ 3: การเชื่อมต่อเซ็นเซอร์
เราจะต้อง:
- เซ็นเซอร์ความชื้น DHT22 หรือ DHT11
- ตัวต้านทานแบบดึงขึ้น (5-10 KΩ)
- สายไฟThe
เซ็นเซอร์ DHT22 วัดอุณหภูมิและความชื้นพร้อมกัน โปรโตคอลการสื่อสารไม่ได้มาตรฐาน ดังนั้นเราจึงไม่จำเป็นต้องเปิดใช้งานใน raspi-config - พิน GPIO แบบธรรมดาก็มากเกินพอ
ในการรับข้อมูล ฉันจะใช้ห้องสมุดที่ยอดเยี่ยมของ Adafruit สำหรับเซ็นเซอร์ DHT แต่อาจไม่ทำงานเหมือนเดิม ครั้งหนึ่งฉันเคยพบการหน่วงเวลาอย่างผิดปกติในโค้ด ซึ่งใช้ไม่ได้กับฮาร์ดแวร์ของฉัน และหลังจากนั้นสองปี คำขอดึงของฉันยังคงค้างอยู่ ฉันยังเปลี่ยนค่าคงที่การตรวจจับบอร์ดเพราะ Raspberry Pi 1 ของฉันที่มี BCM2835 ถูกตรวจพบอย่างน่าประหลาดใจว่าเป็น Raspberry Pi 3 ฉันหวังว่ามันจะเป็นจริง… ดังนั้น ฉันขอแนะนำให้ใช้ส้อมของฉัน หากคุณประสบปัญหาใดๆ กับมัน โปรดลองใช้ที่เก็บดั้งเดิม บางทีมันอาจจะใช้ได้กับใครบางคน แต่ฉันไม่ใช่หนึ่งในนั้น
โคลน git https://github.com/Himura2la/Adafruit_Python_DHT.gitcd 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) คุณควรรู้ว่านี่คือความชื้นเป็นเปอร์เซ็นต์และอุณหภูมิในเซลเซียส
ตอนนี้มาประกอบทุกอย่างเข้าด้วยกัน!
ขั้นตอนที่ 4: การส่งการอ่านเซ็นเซอร์ไปยัง Cloud
ฉันจะใช้ control.py เป็นฐานและเพิ่มการโต้ตอบ DHT22 เข้าไป
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
ลบโค้ดตัวอย่างตามภาพด้านบน
เนื่องจาก DHT22 ส่งคืนทั้งอุณหภูมิและความชื้นในการโทรครั้งเดียว ฉันจะจัดเก็บไว้ทั่วโลกและอัปเดตเพียงครั้งเดียวในคำขอ สมมติว่ามีความล่าช้ามากกว่า 10 วินาที พิจารณารหัสต่อไปนี้ ซึ่งรับข้อมูล DHT22:
นำเข้า Adafruit_DHT
temp, hum = ไม่มี, ไม่มี
last_update = time.time() - 20
def update_data():
globallast_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() ส่งคืนรอบ (ชั่วคราว 2) หากอุณหภูมิไม่ใช่ ไม่มีอื่น ไม่มี def get_h(): update_data() ส่งคืนรอบ (ครวญเพลง 2) ถ้า hum ไม่ใช่ ไม่มีอื่น ไม่มี
ใส่รหัสนี้หลังจากการนำเข้าที่มีอยู่และแก้ไขส่วนตัวแปรเพื่อใช้ฟังก์ชันใหม่:
ตัวแปร = { 'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'ประเภท': 'ตัวเลข', 'ผูก': cpu_temp } }
หากคุณพบว่าการยักย้ายถ่ายเททำให้เกิดความสับสน ให้คว้าเวอร์ชันสุดท้ายของไฟล์นี้ กดปุ่มสีแดงเพื่อเริ่มการถ่ายโอนข้อมูล:
จากนั้นคุณสามารถตรวจสอบหน้าอุปกรณ์
python3 cloud_dht22.py
จากนั้นคุณสามารถตรวจสอบหน้าอุปกรณ์
คุณสามารถปล่อยให้มันเป็น แต่ฉันชอบที่จะให้บริการทุกอย่าง เพื่อให้แน่ใจว่าสคริปต์ทำงานอยู่เสมอ การสร้างบริการด้วยสคริปต์อัตโนมัติทั้งหมดที่คุณมีอยู่แล้วในไดเร็กทอรี cloud4rpi-raspberrypi-python:
service_install.sh 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.py
17 พฤษภาคม 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': 'system', 'ts': '2017-05-17T20….4'}}
หากทุกอย่างเป็นไปตามที่คาดไว้ เราก็สามารถใช้ความสามารถของแพลตฟอร์ม Cloud4RPi เพื่อจัดการกับข้อมูลได้
ขั้นตอนที่ 5: แผนภูมิและการเตือน
ก่อนอื่น เรามาพลอตตัวแปรเพื่อดูว่ามีการเปลี่ยนแปลงอย่างไร ซึ่งสามารถทำได้โดยการเพิ่ม Control Panel ใหม่และใส่แผนภูมิที่จำเป็นลงไป
อีกอย่างที่เราสามารถทำได้ที่นี่คือการตั้งค่าการแจ้งเตือน คุณลักษณะนี้ช่วยให้คุณสามารถกำหนดค่าช่วงปลอดภัยสำหรับตัวแปรได้ ทันทีที่เกินช่วง ระบบจะส่งการแจ้งเตือนทางอีเมล ในหน้าการแก้ไขของแผงควบคุม คุณสามารถสลับไปที่การเตือนและตั้งค่าได้
หลังจากนั้น ความชื้นในห้องของฉันก็เริ่มลดลงอย่างรวดเร็วโดยไม่ทราบสาเหตุ และไม่นานก็มีสัญญาณเตือนตามมา
คุณสามารถใช้ Cloud4RPi ได้ฟรีกับฮาร์ดแวร์ใดๆ ที่สามารถรัน Python ได้ สำหรับฉัน ตอนนี้ฉันรู้เสมอว่าเมื่อใดควรเปิดเครื่องเพิ่มความชื้นในอากาศ และยังสามารถเชื่อมต่อกับรีเลย์สำหรับการควบคุมระยะไกลผ่าน Cloud4RPi ฉันพร้อมสำหรับความร้อน! ยินดีต้อนรับฤดูร้อน!
ด้วย Cloud4RPi คุณสามารถควบคุม Raspberry Pi และอุปกรณ์ IoT อื่นๆ จากระยะไกลได้แบบเรียลไทม์ เยี่ยมชมเว็บไซต์ของเราและเชื่อมต่ออุปกรณ์ได้ไม่จำกัดฟรี
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง