สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: คุณสมบัติ
- ขั้นตอนที่ 2: ขั้นที่ 1: รู้เกี่ยวกับบอร์ด IoT (A)
- ขั้นตอนที่ 3: ขั้นที่ 2: วิธีการประกอบมัน
- ขั้นตอนที่ 4: ขั้นตอนที่ 3: ต่อเสาอากาศ
- ขั้นตอนที่ 5: ขั้นตอนที่ 4: สภาพแวดล้อมระบบปฏิบัติการและการกำหนดค่าซอฟต์แวร์
- ขั้นตอนที่ 6: ขั้นตอนที่ 5: การกำหนดค่า I2C (Raspberry Pi)
- ขั้นตอนที่ 7: ขั้นตอนที่ 6: รู้เกี่ยวกับข้อมูลการลงทะเบียน
- ขั้นตอนที่ 8:
- ขั้นตอนที่ 9: คำแนะนำ:
- ขั้นตอนที่ 10: วิธีใช้โมดูล GPS ด้วย Gpsd (Raspberry Pi)
- ขั้นตอนที่ 11: วิธีใช้โมดูล GPS ด้วย C (Raspberry Pi)
- ขั้นตอนที่ 12: รวบรวมมัน
- ขั้นตอนที่ 13: วิธีใช้โมดูล GPS ด้วย Python (Raspberry Pi)
- ขั้นตอนที่ 14: วิธีใช้โมดูล GSM ด้วย PPPd (Raspberry Pi)
- ขั้นตอนที่ 15: วิธีวินิจฉัยโมดูล GSM ของฉัน (Raspberry Pi)
- ขั้นตอนที่ 16: วิธีใช้ Lora TX & RX กับ C (Raspberry Pi)
- ขั้นตอนที่ 17: คำอธิบายพิเศษของ I2C Bandwidth
- ขั้นตอนที่ 18: เสร็จสิ้น
วีดีโอ: [Docker Pi Series] วิธีใช้โมดูล IoT Node (A) บน Raspberry Pi: 18 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
โมดูล IoT Node (A) คืออะไร ?
IoT Node(A) เป็นหนึ่งในโมดูล Docker Pi
IOT Node(A) = GPS/BDS + GSM + Lora
I2C ควบคุมโดยตรง Lora ส่งและรับข้อมูล ควบคุมโมดูล GSM/GPS/BDS ผ่าน SC16IS752 เมนบอร์ดต้องการการสนับสนุน I2C เท่านั้น
รองรับ Raspberry Pi และผลิตภัณฑ์อื่นที่คล้ายคลึงกัน
เสบียง
1x Raspberry Pi 2B/3B/3B+/4B/3A+/ศูนย์/ศูนย์ W
1x ผลิตภัณฑ์ Docker Pi series: โมดูล IoT Node(A)
การ์ด TF คลาส 10 x 16GB 1x
แหล่งจ่ายไฟ 1x 5V/2.5A (5V@3A สำหรับ Pi 4B)
ขั้นตอนที่ 1: คุณสมบัติ
- Docker Pi Series
- ตั้งโปรแกรมได้
- ควบคุมโดยตรง (โดยไม่ต้องตั้งโปรแกรม)
- ขยายพิน GPIO
- รองรับ GPS/BDS
- รองรับ GSM
- Lora Support
- สามารถซ้อนกับกระดานสแต็คอื่น ๆ ได้
- ไม่ขึ้นกับฮาร์ดแวร์ของเมนบอร์ด (ต้องการการสนับสนุน I2C)
ขั้นตอนที่ 2: ขั้นที่ 1: รู้เกี่ยวกับบอร์ด IoT (A)
IoT Node(A) เป็นหนึ่งในโมดูล Docker Pi
IOT Node(A) = GPS/BDS + GSM + Lora
I2C ควบคุมโดยตรง Lora ส่งและรับข้อมูล ควบคุมโมดูล GSM/GPS/BDS ผ่าน SC16IS752 เมนบอร์ดต้องการการสนับสนุน I2C เท่านั้น สนับสนุน Raspberry Pi และผลิตภัณฑ์อื่นๆ ที่คล้ายคลึงกัน
ดังนั้นคุณสามารถสร้างอุปกรณ์สื่อสารระดับกลางได้โดยใช้สองตัว
และคุณยังสามารถระบุตำแหน่งของอุปกรณ์ของคุณได้โดยใช้โมดูล GPS บนเครื่องบิน
ใส่ซิมการ์ดก็จะกลายเป็นสถานีส่งสัญญาณผ่านข้อความ SMS
ขั้นตอนที่ 3: ขั้นที่ 2: วิธีการประกอบมัน
ประกอบได้ง่ายมากเนื่องจากเป็นการออกแบบ "HAT" คุณเพียงแค่ใส่มันลงบน Raspberry Pi และเชื่อมต่อผ่านหมุด GPIO เหมือนกับ "หมวก" บน Raspberry Pi เพื่อที่คุณจะได้ไม่ต้องเพิ่มมวล ลวด.
ขั้นตอนที่ 4: ขั้นตอนที่ 3: ต่อเสาอากาศ
มีเสาอากาศ 3 ชิ้นสำหรับโมดูล IoT (A) นี้ หนึ่งในนั้นสำหรับโมดูล loar เป็นเสาอากาศประเภท SMA และหนึ่งในนั้นดีสำหรับคุณ GPS เป็นเสาอากาศแบบกล่องสี่เหลี่ยมที่มีพอร์ต IPX และอันสุดท้ายสำหรับโมดูล SIM (A9G) เป็นเสาอากาศขนาดเล็กที่มีพอร์ต IPX เชื่อมต่อเสาอากาศและติดตั้งหมวกกับราสเบอร์รี่ pi ของคุณ
วิธีการประกอบติดตั้งบอร์ด Iot Node(A) เข้ากับ Raspberry Pi
เชื่อมต่อ GPS antana และ Lora antana กับพอร์ต IPX
- E1:GPS-ANTANA-IPX
- E3:LoRa-ANTANA-IPX
ขันสกรูเสาอากาศ GPRS บนพอร์ต SMA
ขั้นตอนที่ 5: ขั้นตอนที่ 4: สภาพแวดล้อมระบบปฏิบัติการและการกำหนดค่าซอฟต์แวร์
ในขั้นตอนนี้ คุณต้องทำสิ่งเหล่านั้น:
1. ดาวน์โหลดไฟล์ภาพล่าสุดจาก: www.raspberrypi.org/downloads
2. เปิดเครื่องรูดมัน
3. แฟลชการ์ด TF ของคุณด้วยภาพล่าสุดผ่านเครื่องมือแกะสลัก
4.แก้ไขไฟล์ /boot/config.txt และเพิ่มย่อหน้านี้
dtoverlay=sc16is752-i2c
5. แทนที่ไฟล์ /boot/overlay/sc16is752-i2c.dtbo ด้วยไฟล์นี้:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: อย่าลืมแตกไฟล์แล้วนำไปใส่ในโฟลเดอร์ /boot/overlay/ ของคุณและแทนที่อันเก่า
6. รีบูต Raspberry Pi ของคุณ
ขั้นตอนที่ 6: ขั้นตอนที่ 5: การกำหนดค่า I2C (Raspberry Pi)
เรียกใช้ sudo raspi-config และปฏิบัติตามคำแนะนำเพื่อติดตั้งการสนับสนุน i2c สำหรับแกน ARM และเคอร์เนล linux ไปที่ตัวเลือกการเชื่อมต่อ
ขั้นตอนที่ 7: ขั้นตอนที่ 6: รู้เกี่ยวกับข้อมูลการลงทะเบียน
ส่วน GPRS
ใช้พลังงานต่ำ, กระแสไฟสแตนด์บาย <1mA2.
รองรับ GSM/GPRS สี่ย่านความถี่ ได้แก่ 850, 900, 1800, 1900MHZ
GPRS คลาส 10
รองรับบริการข้อมูล GPRS อัตราข้อมูลสูงสุด ดาวน์โหลด 85.6Kbps อัปโหลด 42.8Kbps
รองรับคำสั่งมาตรฐาน GSM07.07, 07.05 AT และเข้าถึงพอร์ตอนุกรมผ่านการแปลงอินเทอร์เฟซ I2C
คำสั่ง AT รองรับพอร์ตคำสั่ง AT และ TCP/IP มาตรฐาน
ส่วน GPS รองรับการวางตำแหน่งข้อต่อ BDS/GPS
รองรับ A-GPS, A-BDS
รองรับซิมการ์ดมาตรฐาน
ส่วน LORA ระยะการส่ง: 500 เมตร (พารามิเตอร์ RF: 0x50 @ เมืองจีน)
รองรับวิธีการมอดูเลต FSK, GFSK, MSK, GMSK, LoRaTM และ OOK
ความไวของตัวรับสัญญาณสูงพิเศษต่ำถึง -141 dBm
รองรับการตรวจจับคำนำ
เอ็นจิ้นแพ็คเก็ตพร้อม CRC สูงสุด 256 ไบต์
ตัวบ่งชี้ตัวรับส่งสัญญาณ LORA
Easy TX/RX โดย Docker Pi
ขั้นตอนที่ 8:
โมดูล A9G
โมดูล A9G มีพอร์ตอนุกรมสองพอร์ต
ใช้บริดจ์ I2C UART เพื่อการสื่อสาร
ชื่อโมดูลพอร์ตอนุกรม
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
ลงทะเบียนแผนที่
- ลงทะเบียนที่อยู่ฟังก์ชันค่า
- 0x01 LORA_TX1 Lora TX Buffer 1 - ข้อมูลผู้ใช้
- 0x02 LORA_TX2 Lora TX Buffer 2 - ข้อมูลผู้ใช้
- 0x03 LORA_TX3 Lora TX Buffer 3 - ข้อมูลผู้ใช้
- 0x04 LORA_TX4 Lora TX Buffer 4 - ข้อมูลผู้ใช้
- 0x05 LORA_TX5 Lora TX Buffer 5 - ข้อมูลผู้ใช้
- 0x06 LORA_TX6 Lora TX Buffer 6 - ข้อมูลผู้ใช้
- 0x07 LORA_TX7 Lora TX Buffer 7 - ข้อมูลผู้ใช้
- 0x08 LORA_TX8 Lora TX Buffer 8 - ข้อมูลผู้ใช้
- 0x09 LORA_TX9 Lora TX Buffer 9 - ข้อมูลผู้ใช้
- 0x0a LORA_TX10 Lora TX Buffer 10 - ข้อมูลผู้ใช้
- 0x0b LORA_TX11 Lora TX Buffer 11 - ข้อมูลผู้ใช้
- 0x0c LORA_TX12 Lora TX Buffer 12 - ข้อมูลผู้ใช้
- 0x0d LORA_TX13 Lora TX Buffer 13 - ข้อมูลผู้ใช้
- 0x0e LORA_TX14 Lora TX Buffer 14 - ข้อมูลผู้ใช้
- 0x0f LORA_TX15 Lora TX Buffer 15 - ข้อมูลผู้ใช้
- 0x10 LORA_TX16 Lora TX Buffer 16 - ข้อมูลผู้ใช้
- 0x11 LORA_RX1 Lora RX Buffer 1 - ข้อมูลผู้ใช้
- 0x12 LORA_RX2 Lora RX Buffer 2 - ข้อมูลผู้ใช้
- 0x13 LORA_RX3 Lora RX Buffer 3 - ข้อมูลผู้ใช้
- 0x14 LORA_RX4 Lora RX Buffer 4 - ข้อมูลผู้ใช้
- 0x15 LORA_RX5 Lora RX Buffer 5 - ข้อมูลผู้ใช้
- 0x16 LORA_RX6 Lora RX Buffer 6 - ข้อมูลผู้ใช้
- 0x17 LORA_RX7 Lora RX Buffer 7 - ข้อมูลผู้ใช้
- 0x18 LORA_RX8 Lora RX Buffer 8 - ข้อมูลผู้ใช้
- 0x19 LORA_RX9 Lora RX Buffer 9 - ข้อมูลผู้ใช้
- 0x1a LORA_RX10 Lora RX Buffer 10 - ข้อมูลผู้ใช้
- 0x1b LORA_RX11 Lora RX Buffer 11 - ข้อมูลผู้ใช้
- 0x1c LORA_RX12 Lora RX Buffer 12 - ข้อมูลผู้ใช้
- 0x1d LORA_RX13 Lora RX Buffer 13 - ข้อมูลผู้ใช้
- 0x1e LORA_RX14 Lora RX Buffer 14 - ข้อมูลผู้ใช้
- 0x1f LORA_RX15 Lora RX Buffer 15 - ข้อมูลผู้ใช้
- 0x20 LORA_RX16 Lora RX Buffer 16 - ข้อมูลผู้ใช้
- 0x01 - 0x10 เขียนเท่านั้น
- 0x11 - 0x20 อ่านอย่างเดียว
ขั้นตอนที่ 9: คำแนะนำ:
L_SET(เขียนเท่านั้น)
- เขียน 1 เพื่อตั้งค่าพารามิเตอร์จาก 0x22 เป็นโมดูล LORA
- เขียน 0 ไม่มีผล
G_RESET (เขียนเท่านั้น)
- เขียน 1 เพื่อรีเซ็ตโมดูล A9G
- เขียน 0 ไม่มีผล
L_RXNE(อ่านและเขียน)
- เขียน 1 ทำให้เกิดข้อผิดพลาด
- เขียน 0 เพื่อล้าง
- อ่าน 1 หมายถึงได้รับข้อมูลแล้ว โปรดรับข้อมูลจากเครื่องบันทึก 0x11 - 0x20
- อ่าน 0 หมายความว่าไม่มีข้อมูลในขณะนี้
L_SET(เขียนเท่านั้น)
- เขียน 1 เพื่อส่งข้อมูล กรุณากรอกข้อมูลใน register 0x01 - 0x10 ก่อนส่ง
- เขียน 0 ไม่มีผล
ขั้นตอนที่ 10: วิธีใช้โมดูล GPS ด้วย Gpsd (Raspberry Pi)
วิธีใช้โมดูล GPS กับ gpsd (Raspberry Pi)
ขั้นแรก ให้เปลี่ยน /boot/overlays/sc16is752-i2c.dtbo และตรวจดูให้แน่ใจว่า I2C ทำงานอย่างถูกต้อง
- แทนที่ sc16is752-i2c.dtbo
- การกำหนดค่า I2C
- ติดตั้งเครื่องมือ gpsd
เปิดเทอร์มินัลแล้วพิมพ์คำสั่งนี้:
sudo apt ติดตั้ง gpsd gpsd-clients
แก้ไขไฟล์ /etc/default/gpsd และเพิ่มพารามิเตอร์ต่อไปนี้:
- DEVICES="/dev/ttySC1"
- GPSD_OPTIONS="-F /var/run/gpsd.sock"
ป้อนคำสั่ง i2cset -y 1 0x16 0x23 0x40 เพื่อรีเซ็ตโมดูล GPRS
สคริปต์ Python สำหรับ Open GPS:
นำเข้าเวลานำเข้า serialimport os # เริ่มบริการ gpsd ใหม่ os.system ("sudo systemctl รีสตาร์ท gpsd.socket") # เปิดพอร์ตอนุกรม ser = serial. Serial('/dev/ttySC0', 115200) i = 0 ถ้า ser.isOpen == False: ser.open() ลอง: print("Turn on GPS…") ในขณะที่ True: ser.write(str.encode("AT+GPS=1\r")) size = ser.inWaiting() if size != 0: ticks = time.time() การตอบสนอง = ser.read(ขนาด) gps = str(response, encoding="utf-8") if(gps.find("OK") != -1): os.system("sudo cgps -s") exit() else: i = i + 1 print("กำลังรอเปิดใช้งาน GPS หากเวลานานเกินไป โปรดทดสอบกลางแจ้ง:" + str(i)) ser.flushInput() time.sleep(1) ยกเว้น KeyboardInterrupt: ser.flushInput() ser.close()
บันทึกและดำเนินการ:
python3 GPS.py
ขั้นตอนที่ 11: วิธีใช้โมดูล GPS ด้วย C (Raspberry Pi)
ติดตั้งเครื่องมือ gpsd
sudo apt-get ติดตั้ง libgps-dev
สร้างซอร์สโค้ดและตั้งชื่อเป็น "gps.c"
#รวม #รวม #รวม
#รวม
#รวม
int หลัก ()
{ int rc; โครงสร้างทีวี timeval; โครงสร้าง gps_data_t gps_data; if ((rc = gps_open("localhost", "2947", &gps_data)) == -1) { printf("code: %d, เหตุผล: %s\n", rc, gps_errstr(rc)); ส่งคืน EXIT_FAILURE; } gps_stream(&gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
ในขณะที่ (1)
{ /* รอ 2 วินาทีเพื่อรับข้อมูล */ if (gps_waiting(&gps_data, 2000000)) { /* read data */ if ((rc = gps_read(&gps_data)) == -1) { printf("เกิดข้อผิดพลาดในการอ่าน ข้อมูล gps รหัส: %d เหตุผล: %s\n", rc, gps_errstr(rc)); } อื่น { /* แสดงข้อมูลจากเครื่องรับ GPS */ if ((gps_data.status == STATUS_FIX) && (gps_data.fix.mode == MODE_2D || gps_data.fix.mode == MODE_3D) && !isnan (gps_data.fix.latitude) && !isnan (gps_data.fix.ลองจิจูด)) { /* gettimeofday(&tv, NULL); แก้ไข: tv.tv_sec ไม่ใช่การประทับเวลาจริงๆ! */
printf("ละติจูด: %f ลองจิจูด: %f ความเร็ว: %f การประทับเวลา: %lf\n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// แก้ไข: แทนที่ tv.tv_sec ด้วย gps_data.fix.time } อื่น ๆ { printf ("ไม่มีข้อมูล GPS \n"); } } } นอนหลับ(3); } /* เมื่อคุณทำเสร็จแล้ว… */ gps_stream(&gps_data, WATCH_DISABLE, NULL); gps_close(&gps_data); ส่งคืน EXIT_SUCCESS; }
ขั้นตอนที่ 12: รวบรวมมัน
รวบรวม!
gcc gps.c -lm -lgps -o gps
เอ็กเซ็ค อิท!
./จีพีเอส
ขั้นตอนที่ 13: วิธีใช้โมดูล GPS ด้วย Python (Raspberry Pi)
แนะนำให้ใช้โค้ดต่อไปนี้โดยใช้ Python 3 และติดตั้งไลบรารี gpsd-py3 และ GPS 2D/3D Fix:
นำเข้า gpsd
# เชื่อมต่อกับ gpsd. ในพื้นที่
gpsd.connect()
# รับตำแหน่ง gps
แพ็กเก็ต = gpsd.get_current()
# ดูเอกสารอินไลน์สำหรับ GpsResponse สำหรับข้อมูลที่มี
พิมพ์(แพ็คเก็ต.ตำแหน่ง())
ขั้นตอนที่ 14: วิธีใช้โมดูล GSM ด้วย PPPd (Raspberry Pi)
A) ก่อนอื่น ให้เปลี่ยน /boot/overlays/sc16is752-i2c.dtbo และตรวจสอบให้แน่ใจว่า I2C ทำงานอย่างถูกต้อง
- แทนที่ sc16is752-i2c.dtbo
- การกำหนดค่า I2C
B) ป้อนคำสั่ง i2cset -y 1 0x16 0x23 0x40 เพื่อรีเซ็ตโมดูล GPRS
หลังจากรันคำสั่งแล้ว คุณต้องรอสักครู่ ประมาณ 10 วินาที
คุณยังสามารถใช้วิธีต่อไปนี้เพื่อรีเซ็ต
ค) ป้อนคำสั่ง
sudo apt ติดตั้ง ppp
เพื่อติดตั้งเครื่องมือ ppp
D) คัดลอก /etc/ppp/peers/provider ไปยัง /etc/ppp/peers/gprs
E) แก้ไข /etc/ppp/peers/gprs
- บรรทัดที่ 10: โปรดปรึกษาผู้ให้บริการของคุณสำหรับผู้ใช้ (ตัวอย่าง:cmnet)
- บรรทัดที่ 15: โปรดปรึกษาผู้ให้บริการของคุณสำหรับ apn (ตัวอย่าง:cmnet)
- สาย 18 - สาย 24:การตั้งค่าที่แนะนำ
F) แก้ไข /etc/chatscripts/gprs (เปลี่ยนบรรทัดที่ 34 เป็นบรรทัดที่ 35 หมายเลขโทรศัพท์อาจไม่ใช่ *99#)
G) ป้อนคำสั่ง sudo pppd โทร gprs เพื่อโทรออก
H) ตรวจสอบการกำหนดค่า ppp จาก ISP ของคุณ
I) ป้อนคำสั่ง ping -I ppp0 8.8.8.8 ทดสอบเครือข่ายของคุณ (หากอินเทอร์เน็ตพร้อมใช้งานและตารางเส้นทางถูกต้อง)
J) โปรดรักษาสัญญาณ GSM ให้ดีมิฉะนั้นจะเกิดสิ่งต่อไปนี้
ขั้นตอนที่ 15: วิธีวินิจฉัยโมดูล GSM ของฉัน (Raspberry Pi)
แนะนำให้ใช้โค้ดต่อไปนี้โดยใช้ Python 3 และติดตั้งไลบรารี smbus:
นำเข้า เวลานำเข้าอนุกรม นำเข้า ตัวดำเนินการนำเข้า นำเข้า os
print("กำลังรอการเริ่มต้น…")
รถบัส = smbus. SMBus(1)
bus.write_byte_data(0x16, 0x23, 0x40)
ser = serial. Serial('/dev/ttySC0', 115200)
ถ้า ser.isOpen == เท็จ:
ser.open() ลอง: print('-'*60) print("กำลังเริ่มต้นโมดูล A9G GPRS") print("การเชื่อมต่อ GSM…") time.sleep(3) i = 0 ในขณะที่ True: ser.write(str.encode("AT+CCID\r")) size = ser.inWaiting() if size != 0: ticks = time.time() response = ser.read(size) ccid = str(response, encoding="utf) -8") พิมพ์ (ccid) อื่น: i = i + 1 ser.flushInput() time.sleep(1) ยกเว้น KeyboardInterrupt: ser.close()
เรียกใช้สคริปต์ทดสอบตามผลลัพธ์ของการใช้งาน เราสามารถวินิจฉัยโมดูล GSM ได้ ตัวอย่างเช่น การส่งคืนต่อไปนี้ ข้อผิดพลาด CME ERROR 53 บอกเราว่าพลังงานไม่ดี รหัส CME = ข้อผิดพลาดเกี่ยวกับอุปกรณ์ GSM
แน่นอน สคริปต์ยังมีฟังก์ชันรีเซ็ต หากคุณสามารถแสดง CCID ได้อย่างถูกต้อง การรีเซ็ตจะเสร็จสมบูรณ์
ขั้นตอนที่ 16: วิธีใช้ Lora TX & RX กับ C (Raspberry Pi)
แนะนำให้ใช้โค้ดต่อไปนี้โดยใช้ Python 3 และติดตั้งไลบรารี smbus
จะต้องถ่ายโอนระหว่างสองโหนด IOT (A) เนื้อหาที่ส่งด้วยตัวเองไม่สามารถรับได้ด้วยตัวเอง โปรดบันทึกเป็นสคริปต์ py เพื่อดำเนินการ
วิธีการส่ง:หลังจากกรอกข้อมูลลงในรีจิสเตอร์ 0x01 - 0x10 แล้ว ให้ตั้งค่าบิต L_TX เพื่อเริ่มส่งข้อมูล
นำเข้า timeimport smbus นำเข้าระบบปฏิบัติการ นำเข้าระบบ sys
รถบัส = smbus. SMBus(1)
ลอง:
data_list = [170, 85, 165, 90] # เขียนข้อมูลเพื่อลงทะเบียนแล้วข้อมูลจะถูกส่งออกไป สำหรับดัชนีในช่วง (1, len(data_list) + 1): bus.write_byte_data(0x16, index, data_list[index - 1]) print("LORA ส่งข้อมูลไปยัง %d register %d data" %(index, data_list[ดัชนี - 1])) bus.write_byte_data(0x16, 0x23, 0x01) ยกเว้น KeyboardInterrupt: sys.exit()
วิธีการส่งรับ:ตรวจสอบบิต L_RXNE หากตั้งค่าไว้ ข้อมูลใหม่มาถึง แฟล็กนี้ต้องล้างด้วยตนเอง
นำเข้า timeimport smbus นำเข้า os นำเข้าระบบ sys
รถบัส = smbus. SMBus(1)
recv_data =
ลอง:
ถ้า bus.read_byte_data(0x16, 0x23) & 0x02: # ด้วยตนเองล้าง L_RXNE bus.write_byte_data(0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # อ่านข้อมูลสำหรับดัชนีในช่วง (0x11, len (register_list) + 0x11): recv_data.append(bus.read_byte_data(0x16, register_list[ดัชนี - 0x11]))
print("ข้อมูลที่ได้รับ:")
print(recv_data) else: print("ยังไม่มีข้อมูลที่ได้รับ~") ยกเว้น KeyboardInterrupt: sys.exit()
ขั้นตอนที่ 17: คำอธิบายพิเศษของ I2C Bandwidth
ขีดจำกัดของความเร็ว I2C คือ 400kHz เนื่องจากโปรโตคอล I2C ดังนั้นแบนด์วิดท์ที่มีประสิทธิภาพของอุปกรณ์เครื่องเดียวจึงต่ำกว่า 320kbps แบนด์วิดท์ที่มีประสิทธิภาพของอุปกรณ์หลายเครื่องจะต่ำกว่า 160kbps ขีดจำกัดความเร็วของ I2C UART Bridge คือ 115200bps เมื่อ GPS และ GSM ทำงานพร้อมกัน แบนด์วิดท์ I2C ไม่เพียงพอ เพราะ 115.2kbps * 2 = 230.4kbps ดังนั้นข้อมูลบางส่วนจะล้น การลดอัตราบอดของการสื่อสารด้วย GPS และ GSM สามารถปรับปรุงปัญหาการขาดแคลนแบนด์วิดท์การสื่อสาร การซ้อนโมดูล DockerPi อื่นอาจใช้เวลานาน แบนด์วิดท์ I2C พิเศษ โดยปกติความเร็วของข้อมูลเครือข่ายจะช้า ดังนั้นแบนด์วิดท์ GSM จึงไม่เต็ม จึงไม่มีปัญหาเรื่องโอเวอร์โฟลว์
ขั้นตอนที่ 18: เสร็จสิ้น
หวังว่าพวกคุณจะชอบมันและทำมัน
คุณสามารถหาได้ที่นี่:
อเมซอน
Nightlight:https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S บอร์ดรีเลย์ 4 ช่อง: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Power Board :https://www.amazon.co.uk/dp/B07TD595VS?ref=myi_title_dp IoT Node(A):https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB: https://www. amazon.co.uk/dp/B07TZD8B61 หอน้ำแข็ง:
แนะนำ:
วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน
วิธีใช้โมดูล RFID-RC522 กับ Arduino: ในคำแนะนำนี้ ฉันจะอธิบายหลักการทำงานพื้นฐานของโมดูล RFID ควบคู่ไปกับแท็กและชิป ฉันจะให้ตัวอย่างสั้นๆ ของโครงการที่ฉันสร้างโดยใช้โมดูล RFID ที่มีไฟ LED RGB ตามปกติกับ Ins ของฉัน
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: หลายโครงการต้องการการสร้างเสียงเพื่อเพิ่มฟังก์ชันการทำงานบางอย่าง ในโครงการเหล่านี้ เราเน้น: การเข้าถึงสำหรับผู้พิการทางสายตา เครื่องเล่นเพลง MP3 และการใช้เสียงโดยหุ่นยนต์ เป็นต้น ในระบบทั้งหมดนี้
Docker Pi Series ของ Sensor Hub Board เกี่ยวกับ IOT: 13 ขั้นตอน
Docker Pi Series ของ Sensor Hub Board เกี่ยวกับ IOT สวัสดีทุกคน ทุกวันนี้เกือบทุกอย่างเกี่ยวข้องกับ IOT ไม่ต้องสงสัยเลย บอร์ด DockerPi series ของเรายังรองรับ IOT อีกด้วย วันนี้ฉันอยากจะแนะนำ DockerPi series ของ SensorHub ว่าอย่างไร เพื่อนำไปใช้กับ IOT กับคุณ ฉันเรียกใช้รายการนี้ซึ่งขึ้นอยู่กับ
วิธีใช้โมดูล GY511 กับ Arduino [สร้างเข็มทิศดิจิตอล]: 11 ขั้นตอน
วิธีใช้โมดูล GY511 กับ Arduino [สร้างเข็มทิศดิจิตอล]: ภาพรวมในโครงการอิเล็กทรอนิกส์บางโครงการ เราจำเป็นต้องทราบตำแหน่งทางภูมิศาสตร์เมื่อใดก็ได้ และดำเนินการเฉพาะตามนั้น ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้โมดูลเข็มทิศ LSM303DLHC GY-511 กับ Arduino เพื่อสร้างเข็มทิศดิจิตอล
วิธีใช้โมดูล RGB Led: 4 ขั้นตอน
วิธีการใช้โมดูลไฟ LED RGB: คำอธิบาย:มีตัวต้านทานในตัวเพื่อป้องกันไม่ให้ไฟ LED ไหม้ สามารถใช้กับไมโครคอนโทรลเลอร์ต่างๆ ใช้งานได้สูง แรงดันไฟฟ้าทำงาน: 3.3V / 5Vสามารถเชื่อมต่อกับ Arduino ได้โดยตรง โดยไม่ต้องใช้สายจัมเปอร์