สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: วิธีการติดตั้ง DockerPi Series ของ SensorHub ด้วย RaspberryPi
- ขั้นตอนที่ 2: เปิด I2C ของ RaspberryPi (1)
- ขั้นตอนที่ 3: เปิด I2C (2) ของ RaspberryPi
- ขั้นตอนที่ 4: เปิด I2C ของ RaspberryPi (3)
- ขั้นตอนที่ 5: สภาพแวดล้อมซอฟต์แวร์(1)
- ขั้นตอนที่ 6: สภาพแวดล้อมซอฟต์แวร์(2)
- ขั้นตอนที่ 7: สภาพแวดล้อมซอฟต์แวร์(3)
- ขั้นตอนที่ 8: รหัส(1)
- ขั้นตอนที่ 9: รหัส (2)
- ขั้นตอนที่ 10: รหัส(3)
- ขั้นตอนที่ 11: รหัส (4)
- ขั้นตอนที่ 12: รหัส(5)
- ขั้นตอนที่ 13: รหัส(6)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สวัสดีทุกคน ทุกวันนี้เกือบทุกอย่างเกี่ยวข้องกับ IOT ไม่ต้องสงสัยเลย บอร์ดซีรีย์ DockerPi ของเรายังรองรับ IOT อีกด้วย วันนี้ฉันอยากจะแนะนำชุด DockerPi ของ SensorHub วิธีนำไปใช้กับ IOT กับคุณ
ฉันเรียกใช้รายการนี้ซึ่งอิงตาม Azure IOT HUB สามารถใช้ Azure IOT HUB เพื่อสร้างโซลูชัน IOT ด้วยการสื่อสารที่เชื่อถือได้และปลอดภัยระหว่างอุปกรณ์ IOT หลายล้านเครื่องและแบ็กเอนด์โซลูชันที่โฮสต์บนคลาวด์
ตัวอย่างเช่น คุณสามารถทราบอุณหภูมิห้องของคุณและรู้ว่ามีคนมาที่บ้านของคุณทางอินเทอร์เน็ตหรือไม่โดยใช้ SensorHub ของเรา
เสบียง
- 1 x เซนเซอร์ Hub Board
- 1 x RaspberryPi 3B/3B+/4B
- การ์ด TF 1 x 8GB/16GB
- แหล่งจ่ายไฟ 1 x 5V/2.5A หรือแหล่งจ่ายไฟ 5v/3A สำหรับ RPi 4B
ขั้นตอนที่ 1: วิธีการติดตั้ง DockerPi Series ของ SensorHub ด้วย RaspberryPi
มาดูวิธีการติดตั้ง DockerPi series ของ SensorHub กับ Raspberry Pi. กันก่อน
คุณเพียงแค่ต้องใส่พิน 40 พินเข้าไป
โปรดใช้ความระมัดระวัง กรุณาปิดเครื่องเมื่อคุณกำลังติดตั้ง
ขั้นตอนที่ 2: เปิด I2C ของ RaspberryPi (1)
ดำเนินการคำสั่งบนรูปภาพ:sudo raspi-config
ขั้นตอนที่ 3: เปิด I2C (2) ของ RaspberryPi
ขั้นตอนที่ 4: เปิด I2C ของ RaspberryPi (3)
ขั้นตอนที่ 5: สภาพแวดล้อมซอฟต์แวร์(1)
ก่อนอื่นคุณต้องตรวจสอบเวอร์ชันของ python3 ของคุณ
ขั้นตอนที่ 6: สภาพแวดล้อมซอฟต์แวร์(2)
จากนั้นคุณต้องติดตั้งส่วนประกอบที่เกี่ยวข้องกับ Azure ระวัง คุณต้องใช้คำสั่งที่มี "python3":
ขั้นตอนที่ 7: สภาพแวดล้อมซอฟต์แวร์(3)
ถัดไป คุณต้องตรวจสอบว่าคุณได้ติดตั้งเครื่องมือของ git แล้วหรือไม่ หากคุณได้ติดตั้ง git แล้ว โปรดรันคำสั่งต่อไปนี้:
ขั้นตอนที่ 8: รหัส(1)
- ไปที่ไดเร็กทอรีต่อไปนี้: azure-iot-sdk-python/tree/master/azure-iot-device/samples/advanced-hub-scenarios
- เปิดไฟล์ต่อไปนี้:update_twin_reported_properties.py
- คุณจะเห็นรหัสไฟล์ต้นฉบับดังต่อไปนี้บนรูปภาพ:
- เปลี่ยนเป็นรหัสต่อไปนี้บนรูปภาพ: ชื่อโฮสต์…ซึ่งคุณจะได้รับจากเว็บไซด์ Azure
- เปิดไฟล์:get_twin.py และทำเช่นเดียวกัน:
ขั้นตอนที่ 9: รหัส (2)
คุณต้องนำเข้าไลบรารี python3 บางตัวในไฟล์ update_twin_reported_properties.py:
ขั้นตอนที่ 10: รหัส(3)
จากนั้นรวมรหัสต่อไปนี้บนรูปภาพ คุณยังสามารถคัดลอกและวางในไฟล์ของคุณ:
bus = smbus. SMBus(1) await device_client.connect() aReceiveBuf = aReceiveBuf.append(0x00) # 占位符 for i in range(0x01, 0x0D + 1): aReceiveBuf.append(bus.read_byte_data(0X17, i)) ถ้า aReceiveBuf[0X01] & 0x01: state0 = "เซ็นเซอร์อุณหภูมิ Off-chip เกินพิกัด!" elif aReceiveBuf[0X01] & 0x02: state0 = "ไม่มีเซ็นเซอร์อุณหภูมิภายนอก!" อื่น: state0 = "อุณหภูมิเซ็นเซอร์ออฟชิปปัจจุบัน = %d เซลเซียส" % aReceiveBuf[0x01]
light = (bus.read_byte_data(0x17, 0x03) << 8) | (bus.read_byte_data(0x17, 0x02)) temp = bus.read_byte_data(0x17, 0x05) ความชื้น = bus.read_byte_data(0x17, 0x06) temp1 = bus.read_byte_data(0x17, 0x08) ความดัน = (bus.read_byte_data(0x17, 0x0B)) << 16) | ((bus.read_byte_data(0x17, 0x0A) << 8)) | ((bus.read_byte_data(0x17, 0x09))) state = bus.read_byte_data(0x17, 0x0C) if (state == 0): state = "เซ็นเซอร์ของ BMP280 ใช้ได้" อื่น ๆ: state = "เซ็นเซอร์ของ BMP280 คือ แย่"
มนุษย์ = bus.read_byte_data(0x17, 0x0D)
ถ้า (มนุษย์ == 1): มนุษย์ = "ตรวจพบร่างกายที่มีชีวิต" อื่น: มนุษย์ = "ไม่มีร่างกาย"
ขั้นตอนที่ 11: รหัส (4)
จากนั้นเรียกใช้ไฟล์ update_twin_reported_properties.py และคุณจะเห็นผลลัพธ์:
ขั้นตอนที่ 12: รหัส(5)
จากนั้นเปิด file:get_twin.py และป้อนรหัสต่อไปนี้ คุณสามารถคัดลอกรหัสและวางในไฟล์ของคุณ:
print("{}".format(twin["reported"]["state0"])) print("ไฟที่รายงานคือ: {}".format(twin["reported"]["light"]), "Lux ") print("อุณหภูมิที่รายงานของบอร์ดคือ: {}".format(twin["reported"]["temperature"]), "degC") print("รายงานความชื้นคือ: {}".format(twin[" รายงาน"]["ความชื้น"]), "%") print("อุณหภูมิที่รายงานของเซ็นเซอร์คือ: {}".format(twin["reported"]["temperature1"]), "degC") print("รายงาน ความกดอากาศคือ: {}".format(twin["reported"]["pressure"]), "Pa") print("Reported {}".format(twin["reported"]["state"])) print("รายงานว่ามีการตรวจพบเนื้อหาจริงหรือไม่: {}".format(twin["reported"]["human"]))
ขั้นตอนที่ 13: รหัส(6)
จากนั้นเรียกใช้ไฟล์ get_twin.py และคุณจะเห็นผลลัพธ์ที่อัปเดตจากไฟล์ update_twin_reported_properties.py: