Mundarija:

[Docker Pi Series] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak: 18 qadam
[Docker Pi Series] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak: 18 qadam

Video: [Docker Pi Series] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak: 18 qadam

Video: [Docker Pi Series] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak: 18 qadam
Video: Learn Docker in 7 Easy Steps - Full Beginner's Tutorial 2024, Iyul
Anonim
[Docker Pi seriyasi] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak
[Docker Pi seriyasi] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak

IoT Node (A) moduli nima?

IoT Node (A) - Docker Pi seriyali modullaridan biri.

IOT tuguni (A) = GPS/BDS + GSM + Lora.

I2C Lorani to'g'ridan -to'g'ri boshqaradi, ma'lumotlarni yuboradi va qabul qiladi, SC16IS752 orqali GSM/GPS/BDS modulini boshqaradi, anakart faqat I2C qo'llab -quvvatlashiga muhtoj.

Raspberry Pi va shunga o'xshash boshqa mahsulotlarni qo'llab -quvvatlash.

Ta'minotlar

1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero Vt

1x Docker Pi seriyali mahsulot: IoT Node (A) moduli

1x 16 Gb sinf 10 TF kartasi

1x 5V/2,5A quvvat manbai (Pi 4B uchun 5V@3A)

1 -qadam: Xususiyatlar

Xususiyatlari
Xususiyatlari
Xususiyatlari
Xususiyatlari
Xususiyatlari
Xususiyatlari
  • Docker Pi seriyasi
  • Dasturlash mumkin
  • To'g'ridan -to'g'ri boshqarish (dasturlashsiz)
  • GPIO pinlarini kengaytiring
  • GPS/BDS -ni qo'llab -quvvatlash
  • GSM -ni qo'llab -quvvatlash
  • Lora qo'llab -quvvatlash
  • Boshqa Stack taxtasi bilan biriktirish mumkin
  • Anakart apparatidan mustaqil (I2C qo'llab -quvvatlashini talab qiladi)

2 -qadam: 1 -qadam: IoT (A) platasi haqida biling

1 -qadam: IoT (A) kengashi haqida biling
1 -qadam: IoT (A) kengashi haqida biling
1 -qadam: IoT (A) kengashi haqida bilish
1 -qadam: IoT (A) kengashi haqida bilish
1 -qadam: IoT (A) kengashi haqida bilish
1 -qadam: IoT (A) kengashi haqida bilish

IoT Node (A) - Docker Pi seriyali modullaridan biri.

IOT tuguni (A) = GPS/BDS + GSM + Lora.

I2C Lorani to'g'ridan -to'g'ri boshqaradi, ma'lumotlarni yuboradi va qabul qiladi, SC16IS752 orqali GSM/GPS/BDS modulini boshqaradi, anakart faqat I2C qo'llab -quvvatlashiga muhtoj. Raspberry Pi va boshqa shunga o'xshash mahsulotlarni qo'llab -quvvatlang.

Shunday qilib, siz ulardan ikkitasini ishlatib, o'rta masofali aloqa moslamasini yasashingiz mumkin.

Shuningdek, bortdagi GPS moduli yordamida qurilmangiz joylashuvini aniqlashingiz mumkin.

SIM -kartani joylashtiring, u SMS -xabar orqali uzatuvchi stansiyaga aylanadi.

3 -qadam: 2 -qadam: uni qanday yig'ish kerak

2 -qadam: uni qanday yig'ish kerak
2 -qadam: uni qanday yig'ish kerak
2 -qadam: uni qanday yig'ish kerak
2 -qadam: uni qanday yig'ish kerak

"HAT" dizayni tufayli uni yig'ish juda oson, siz uni malina pi ga qo'yib GPIO pinlari orqali ulashingiz mumkin, xuddi malina pi ustidagi "shapka" ga o'xshaydi, shunda siz massa qo'shishingiz shart emas. sim

4 -qadam: 3 -qadam: Antennani ulash

3 -qadam: antennani ulang
3 -qadam: antennani ulang
3 -qadam: antennani ulang
3 -qadam: antennani ulang
3 -qadam: antennani ulang
3 -qadam: antennani ulang

Bu IoT (A) moduli uchun 3 dona antenna mavjud, ulardan biri loar moduli uchun, bu SMA tipli antenna, va ulardan biri GPS uchun yaxshi, bu IPX portli to'rtburchaklar antenna. va oxirgi SIM -modul (A9G) uchun, bu IPX portiga ega kichik antenna. antennani ulang va shlyapani malina pi ga o'rnating.

Iot Node (A) kartasini Raspberry Pi -ga qanday yig'ish kerak

Hookup GPS antana va Lora antana IPX portiga.

  • E1: GPS-ANTANA-IPX
  • E3: LoRa-ANTANA-IPX

SMA portidagi GPRS antanasini burab qo'yadi.

5 -qadam: 4 -qadam: OS muhiti va dasturiy ta'minot konfiguratsiyasi

Ushbu bosqichda siz quyidagilarni qilishingiz kerak:

1. Oxirgi rasm faylini quyidagi manzildan yuklab oling: www.raspberrypi.org/downloads

2. Uni oching.

3. TF kartangizni etcher vositasi yordamida eng yangi tasvir bilan o'chiring

4. /boot/config.txt faylini o'zgartiring va ushbu xatboshini qo'shing.

dtoverlay = sc16is752-i2c

5. /boot/overlay/sc16is752-i2c.dtbo faylini ushbu fayl bilan almashtiradi:

wiki.52pi.com/index.php/File:Sc16is752-i2c…

PS: esda tutingki, uni/boot/overlay/papkaga qo'ying va eskisini almashtiring.

6. Raspberry Pi -ni qayta yoqing.

6 -qadam: 5 -qadam: I2C (Raspberry Pi) ni sozlash

5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)
5 -qadam: I2C -ni sozlash (Raspberry Pi)

Sudo raspi-config-ni ishga tushiring va ARM yadrosi va linux yadrosi uchun i2c-ni o'rnatish bo'yicha ko'rsatmalarga amal qiling. Interfacing Options-ga o'ting.

7 -qadam: 6 -qadam: Ro'yxatdan o'tish ma'lumotlari haqida bilib oling

GPRS bo'limi

Kam quvvat sarfi, kutish holati <1mA2.

GSM/GPRS to'rt chastota diapazonini qo'llab -quvvatlaydi, shu jumladan 850, 900, 1800, 1900 MGts

GPRS 10 -sinf

GPRS ma'lumotlar xizmatini qo'llab -quvvatlash, maksimal ma'lumot uzatish tezligi, 85,6 Kbit / s yuklash, 42,8 Kbit / s yuklash

GSM07.07, 07.05 AT standart buyruqlarini qo'llab -quvvatlang va I2C interfeysi konvertatsiyasi orqali ketma -ket portga kiring

AT buyruqlari standart AT va TCP/IP buyruq portlarini qo'llab -quvvatlaydi

GPS bo'limi BDS/GPS qo'shma joylashuvini qo'llab -quvvatlash

A-GPS, A-BDS-ni qo'llab-quvvatlash

Standart SIM -kartani qo'llab -quvvatlash

LORA bo'limi Uzatish masofasi: 500 metr (RF parametrlari: 0x50 @ China City)

FSK, GFSK, MSK, GMSK, LoRa TM va OOK modulyatsiya usullarini qo'llab -quvvatlash.

Qabul qiluvchilarning o'ta yuqori sezuvchanligi -141 dBm gacha

Preambulani aniqlashni qo'llab -quvvatlash

CRC bilan paketli dvigatel, 256 baytgacha

LORA qabul qilgich ko'rsatkichi

Docker Pi tomonidan oson TX/RX

8 -qadam:

A9G moduli

A9G moduli ikkita ketma -ket portni taklif qiladi.

Aloqa uchun I2C UART ko'prigidan foydalaning.

Seriya port modulining nomi

  • /dev/ttySC0 GSM
  • /dev/ttySC1 GPS/BDS

Ro'yxatdan o'tish xaritasi

  • Ro'yxatdan o'tish manzili funktsiyasi qiymati
  • 0x01 LORA_TX1 Lora TX bufer 1 - Foydalanuvchi ma'lumotlari
  • 0x02 LORA_TX2 Lora TX Bufer 2 - Foydalanuvchi ma'lumotlari
  • 0x03 LORA_TX3 Lora TX bufer 3 - Foydalanuvchi ma'lumotlari
  • 0x04 LORA_TX4 Lora TX bufer 4 - Foydalanuvchi ma'lumotlari
  • 0x05 LORA_TX5 Lora TX bufer 5 - Foydalanuvchi ma'lumotlari
  • 0x06 LORA_TX6 Lora TX bufer 6 - foydalanuvchi ma'lumotlari
  • 0x07 LORA_TX7 Lora TX Bufer 7 - Foydalanuvchi ma'lumotlari
  • 0x08 LORA_TX8 Lora TX Bufer 8 - Foydalanuvchi ma'lumotlari
  • 0x09 LORA_TX9 Lora TX Bufer 9 - Foydalanuvchi ma'lumotlari
  • 0x0a LORA_TX10 Lora TX buferi 10 - Foydalanuvchi ma'lumotlari
  • 0x0b LORA_TX11 Lora TX bufer 11 - Foydalanuvchi ma'lumotlari
  • 0x0c LORA_TX12 Lora TX bufer 12 - Foydalanuvchi ma'lumotlari
  • 0x0d LORA_TX13 Lora TX Bufer 13 - Foydalanuvchi ma'lumotlari
  • 0x0e LORA_TX14 Lora TX Bufer 14 - Foydalanuvchi ma'lumotlari
  • 0x0f LORA_TX15 Lora TX buferi 15 - Foydalanuvchi ma'lumotlari
  • 0x10 LORA_TX16 Lora TX Bufer 16 - Foydalanuvchi ma'lumotlari
  • 0x11 LORA_RX1 Lora RX bufer 1 - Foydalanuvchi ma'lumotlari
  • 0x12 LORA_RX2 Lora RX Bufer 2 - Foydalanuvchi ma'lumotlari
  • 0x13 LORA_RX3 Lora RX bufer 3 - Foydalanuvchi ma'lumotlari
  • 0x14 LORA_RX4 Lora RX bufer 4 - Foydalanuvchi ma'lumotlari
  • 0x15 LORA_RX5 Lora RX bufer 5 - Foydalanuvchi ma'lumotlari
  • 0x16 LORA_RX6 Lora RX bufer 6 - Foydalanuvchi ma'lumotlari
  • 0x17 LORA_RX7 Lora RX bufer 7 - Foydalanuvchi ma'lumotlari
  • 0x18 LORA_RX8 Lora RX Bufer 8 - Foydalanuvchi ma'lumotlari
  • 0x19 LORA_RX9 Lora RX Bufer 9 - Foydalanuvchi ma'lumotlari
  • 0x1a LORA_RX10 Lora RX bufer 10 - Foydalanuvchi ma'lumotlari
  • 0x1b LORA_RX11 Lora RX bufer 11 - Foydalanuvchi ma'lumotlari
  • 0x1c LORA_RX12 Lora RX bufer 12 - Foydalanuvchi ma'lumotlari
  • 0x1d LORA_RX13 Lora RX Bufer 13 - Foydalanuvchi ma'lumotlari
  • 0x1e LORA_RX14 Lora RX bufer 14 - Foydalanuvchi ma'lumotlari
  • 0x1f LORA_RX15 Lora RX bufer 15 - Foydalanuvchi ma'lumotlari
  • 0x20 LORA_RX16 Lora RX bufer 16 - Foydalanuvchi ma'lumotlari
  • 0x01 - 0x10 Faqat yozish.
  • 0x11 - 0x20 Faqat o'qish uchun.

9 -qadam: Ko'rsatmalar:

Ko'rsatmalar
Ko'rsatmalar

L_SET (faqat yozish uchun)

  • 0x22 dan LORA moduliga parametrlarni o'rnatish uchun 1 yozing.
  • 0 yozing, ta'sir qilmaydi

G_RESET (faqat yozish uchun)

  • A9G modulini tiklash uchun 1 yozing
  • 0 yozing, ta'sir qilmaydi

L_RXNE (o'qish va yozish)

  • 1 ta xato sababini yozing
  • Tozalash uchun 0 yozing
  • 1 -ni o'qing, bu ma'lumot olinganligini bildiradi, ma'lumotlarni 0x11 - 0x20 registridan oling.
  • 0 o'qing, hozirda ma'lumotlar yo'q.

L_SET (faqat yozish uchun)

  • Ma'lumot yuborish uchun 1 yozing, yuborishdan oldin 0x01 - 0x10 registridagi ma'lumotlarni to'ldiring.
  • 0 yozing, ta'sir qilmaydi

10 -qadam: GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak

GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak
GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak
GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak
GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak
GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak
GPS modulini Gpsd (Raspberry Pi) bilan qanday ishlatish kerak

GPS modulini gpsd (Raspberry Pi) bilan qanday ishlatish kerak

Birinchidan, /boot/overlays/sc16is752-i2c.dtbo-ni almashtiring va I2C to'g'ri ishlayotganiga ishonch hosil qiling.

  • Sc16is752-i2c.dtbo-ni almashtiring
  • I2C ni sozlash
  • Gpsd vositalarini o'rnating.

Terminalni oching va buyruqni kiriting:

sudo apt gpsd gpsd-mijozlarini o'rnatadi

/Etc/default/gpsd faylini o'zgartiring va quyidagi parametrlarni qo'shing:

  • QURILMALAR = "/dev/ttySC1"
  • GPSD_OPTIONS = "-F /var/run/gpsd.sock"

GPRS modulini tiklash uchun i2cset -y 1 0x16 0x23 0x40 buyrug'ini kiriting.

Ochiq GPS uchun Python skript:

import serialimport os import vaqti # gpsd xizmatini qayta ishga tushiring. os.system ("sudo systemctl restart gpsd.socket") # Ser = serial. Serial ('/dev/ttySC0', 115200) ketma -ket portini oching, agar ser.isOpen == False: ser.open () harakat qilib ko'ring: chop etish ("GPS -ni yoqish …") rost bo'lsa: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () agar hajmi! = 0 bo'lsa: shomil = vaqt. vaqt () javob = ser.read (hajmi) gps = str (javob, kodlash = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 chop etish ("GPS yoqilishini kutish, agar vaqt juda uzoq bo'lsa, ochiq havoda sinab ko'ring:" + str (i)) ser.flushInput () time.sleep (1) tashqari KeyboardInterrupt: ser.flushInput () ser.close ()

Uni saqlang va bajaring:

python3 GPS.py

11 -qadam: GPS modulini C bilan qanday ishlatish (Raspberry Pi)

Gpsd vositalarini o'rnating

sudo apt-get libgps-dev ni o'rnating

Manba kodini yarating va unga "gps.c" deb nom bering.

#qo'shish #qo'shish #qo'shish

#qo'shing

#qo'shing

int main ()

{int rc; vaqtli televizor tuzilishi; tuzilish gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("kod: %d, sabab: %s / n", rc, gps_errstr (rc)); qaytish EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);

vaqt (1)

{ / * ma'lumotlarni qabul qilish uchun 2 soniya kuting * / if (gps_waiting (& gps_data, 2000000)) { / * ma'lumotlarni o'qish * / if ((rc = gps_read (& gps_data)) == -1) {printf ("o'qishda xatolik yuz berdi) gps ma'lumoti. kod: %d, sabab: %s / n ", rc, gps_errstr (rc)); } else { /* GPS qabul qilgichidan ma'lumotlarni ko'rsatish. */ 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).uzoqlik)) { /* gettimeofday (& tv, NULL); EDIT: tv.tv_sec aslida vaqt tamg'asi emas! */

printf ("kenglik: %f, uzunlik: %f, tezlik: %f, vaqt tamg'asi: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: tv.tv_sec gps_data.fix.time} bilan almashtirildi} else {printf ("GPS ma'lumotlari yo'q / n"); }}} uxlash (3); } / * Ishingiz tugagach… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); EXIT_SUCCESS -ni qaytarish; }

12 -qadam: kompilyatsiya qiling

Uni kompilyatsiya qiling
Uni kompilyatsiya qiling

Kompilyatsiya qiling!

gcc gps.c -lm -lgps -o gps

Uni bajaring!

./GPS

13 -qadam: GPS modulini Python (Raspberry Pi) bilan qanday ishlatish kerak

Python (Raspberry Pi) bilan GPS modulini qanday ishlatish kerak
Python (Raspberry Pi) bilan GPS modulini qanday ishlatish kerak

Quyidagi kodni Python 3 yordamida bajarish va gpsd-py3 kutubxonasini va GPS 2D/3D Fix-ni o'rnatish tavsiya etiladi:

gpsd -ni import qilish

# Mahalliy gpsd -ga ulaning

gpsd.connect ()

# GPS pozitsiyasini oling

paket = gpsd.get_current ()

# Mavjud ma'lumotlar uchun GpsResponse uchun ichki hujjatlarga qarang

chop etish (packet.position ())

14 -qadam: GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak

GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak
GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak
GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak
GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak
GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak
GSM modulini PPPd (Raspberry Pi) bilan qanday ishlatish kerak

A) Birinchidan, /boot/overlays/sc16is752-i2c.dtbo-ni almashtiring va I2C to'g'ri ishlayotganiga ishonch hosil qiling.

  • Sc16is752-i2c.dtbo-ni almashtiring
  • I2C ni sozlash

B) GPRS modulini tiklash uchun i2cset -y 1 0x16 0x23 0x40 buyrug'ini kiriting.

Buyruqni ishga tushirgandan so'ng, siz biroz kutishingiz kerak, taxminan 10 soniya

Qayta tiklash uchun siz quyidagi usuldan ham foydalanishingiz mumkin.

C) Buyruqni kiriting

sudo apt install ppp

ppp vositalarini o'rnatish uchun.

D)/etc/ppp/peers/provayderni/etc/ppp/peers/gprs -ga nusxalash

E)/etc/ppp/peers/gprs ni o'zgartiring

  • 10 -qator: Iltimos, foydalanuvchi uchun xizmat ko'rsatuvchi provayderingizga murojaat qiling (Misol: cmnet).
  • 15 -qator: Iltimos, xizmat ko'rsatuvchi provayderingiz bilan apn uchun bog'laning (Misol: cmnet).
  • 18 -qator - 24 -qator: Tavsiya etilgan sozlash

F)/etc/chatscripts/gprs -ni o'zgartiring (34 -qatorni 35 -qatorga o'zgartiring, aloqa raqami *99#bo'lmasligi mumkin)

G) terish uchun sudo pppd gprs buyrug'ini kiriting.

H) Internet -provayderingizdan ppp konfiguratsiyasini tekshiring.

I) ping buyrug'ini kiriting -I ppp0 8.8.8.8 tarmog'ingizni sinab ko'ring (Internet mavjud bo'lsa va marshrutlar jadvali to'g'ri bo'lsa)

J) Iltimos, GSM signalini yaxshi saqlang, aks holda quyidagilar ro'y beradi.

15 -qadam: GSM modulimni qanday aniqlash mumkin (Raspberry Pi)

Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)
Mening GSM modulimni qanday aniqlash mumkin (Raspberry Pi)

Quyidagi kodni Python 3 yordamida bajarish va smbus kutubxonasini o'rnatish tavsiya etiladi:

import serialimport vaqt import smbus import operatori import os

chop etish ("Boshlanish kutilmoqda …")

avtobus = smbus. SMBus (1)

bus.write_byte_data (0x16, 0x23, 0x40)

ser = serial. Serial ('/dev/ttySC0', 115200)

agar ser.isOpen == noto'g'ri bo'lsa:

ser.open () try: print ('-'*60) print ("A9G GPRS modulini ishga tushirish.") chop etish ("GSM ulanishi …") time.sleep (3) i = 0, True: ser.write (str.encode ("AT+CCID / r")) size = ser.inWaiting () if size! = 0: tickks = time.time () answer = ser.read (size) ccid = str (javob, kodlash = "utf) -8 ") chop etish (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) KeyboardInterruptdan tashqari: ser.close ()

Sinov skriptini bajaring, natijada biz GSM modulini tashxislashimiz mumkin, masalan, CME ERROR 53 xatosi bizga qaytarish yaxshi emasligini ko'rsatadi. CME kodi = GSM uskunalari bilan bog'liq xatolar

Albatta, skriptda asl holatini tiklash funktsiyasi ham mavjud. Agar siz CCID -ni to'g'ri ko'rsata olsangiz, asl holatini tiklash tugallandi.

16 -qadam: Lora TX & RX -ni C bilan qanday ishlatish (Raspberry Pi)

Quyidagi kodni Python 3 yordamida bajarish va smbus kutubxonasini o'rnatish tavsiya etiladi.

U ikkita IOT tugun (A) o'rtasida o'tkazilishi kerak. O'z -o'zidan yuborilgan tarkibni o'z -o'zidan qabul qilib bo'lmaydi. Iltimos, uni bajarish uchun py skript sifatida saqlang.

Qanday yuborish kerak: Ma'lumotni 0x01 - 0x10 registriga to'ldirgandan so'ng, ma'lumotlarni yuborishni boshlash uchun L_TX bitini o'rnating.

import timeimport smbus import os import tizimi

avtobus = smbus. SMBus (1)

harakat qilib ko'ring:

data_list = [170, 85, 165, 90] # ro'yxatdan o'tish uchun ma'lumotlarni yozing va keyin ma'lumotlar yuboriladi. indeks diapazoni uchun (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) chop etish ("LORA %d registrga %d ma'lumotlarni yuborish" %(indeks, ma'lumotlar ro'yxati [indeks - 1])) bus.write_byte_data (0x16, 0x23, 0x01) KeyboardInterruptdan tashqari: sys.exit ()

Qabulni qanday yuborish kerak: L_RXNE bitini tekshiring, agar o'rnatilgan bo'lsa, yangi ma'lumotlar kelgan bo'lsa, bu bayroq qo'lda tozalanishi kerak

import timeimport smbus import os import tizimi

avtobus = smbus. SMBus (1)

recv_data =

harakat qilib ko'ring:

agar bus.read_byte_data (0x16, 0x23) va 0x02: # qo'lda tozalash L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # diapazonidagi indeks uchun ma'lumotlarni o'qish (0x11, len (Register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))

chop etish ("Qabul qilingan ma'lumotlar:")

print (recv_data) else: print ("Hech qanday ma'lumot olinmagan ~") KeyboardInterruptdan tashqari: sys.exit ()

17 -qadam: I2C tarmoqli kengligining maxsus tavsifi

I2C protokoli tufayli I2C tezligi chegarasi 400 kHz, shuning uchun bitta qurilmaning samarali o'tkazish qobiliyati 320 kbit / s dan past, ko'p qurilmali tarmoqli kengligi 160 kbit / s dan past. I2C UART ko'prigi tezligining chegarasi - 115200 sek. I2C tarmoqli kengligi etarli emas, chunki 115,2 kbit * 2 = 230,4 kbit / s, shuning uchun ba'zi ma'lumotlar oshib ketadi. GPS va GSM aloqasining uzatish tezligini kamaytirish aloqa o'tkazuvchanligi etishmasligini yaxshilashi mumkin. qo'shimcha I2C tarmoqli kengligi. Odatda tarmoq ma'lumotlarining tezligi past, shuning uchun GSM tarmoqli kengligi to'la emas, shuning uchun toshib ketish muammosi yo'q.

18 -qadam: tugadi

Umid qilamanki, bolalar sizga yoqadi va buni uddalaysiz.

uni bu erda topishingiz mumkin:

Amazon

Tungi yorug'lik: https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4 kanalli o'rni taxtasi: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Https: //www.amazon.co.uk/dp/B07TD595VS? Ref = myi_title_dp IoT tugunlari: https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB: https:// www. amazon.co.uk/dp/B07TZD8B61 muz minorasi:

Tavsiya: