Агуулгын хүснэгт:

[Docker Pi цуврал] Raspberry Pi дээр IoT Node (A) модулийг хэрхэн ашиглах вэ: 18 алхам
[Docker Pi цуврал] Raspberry Pi дээр IoT Node (A) модулийг хэрхэн ашиглах вэ: 18 алхам

Видео: [Docker Pi цуврал] Raspberry Pi дээр IoT Node (A) модулийг хэрхэн ашиглах вэ: 18 алхам

Видео: [Docker Pi цуврал] Raspberry Pi дээр IoT Node (A) модулийг хэрхэн ашиглах вэ: 18 алхам
Видео: Desktop OS in Docker on Raspberry PI 2024, Арваннэгдүгээр
Anonim
[Docker Pi цуврал] Raspberry Pi дээр IoT Node (A) модулийг хэрхэн ашиглах талаар
[Docker Pi цуврал] Raspberry Pi дээр IoT Node (A) модулийг хэрхэн ашиглах талаар

IoT Node (A) модуль гэж юу вэ?

IoT Node (A) нь Docker Pi цувралын модулийн нэг юм.

IOT зангилаа (A) = GPS/BDS + GSM + Lora.

I2C нь Лораг шууд хянадаг, өгөгдөл илгээдэг, хүлээн авдаг, GSM/GPS/BDS модулийг SC16IS752 -ээр хянадаг, эх хавтан нь зөвхөн I2C дэмжлэг хэрэгтэй.

Raspberry Pi болон бусад ижил төстэй бүтээгдэхүүнийг дэмжих.

Хангамж

1х Raspberry Pi 2B/3B/3B+/4B/3A+/Тэг/Тэг W

1x Docker Pi цувралын бүтээгдэхүүн: IoT Node (A) модуль

1x 16GB ангийн 10 TF карт

1х 5V/2.5A цахилгаан хангамж (Pi 4B -ийн 5V@3A)

Алхам 1: Онцлог шинж чанарууд

Онцлог шинж чанарууд
Онцлог шинж чанарууд
Онцлог шинж чанарууд
Онцлог шинж чанарууд
Онцлог шинж чанарууд
Онцлог шинж чанарууд
  • Docker Pi цуврал
  • Програмчлагдах боломжтой
  • Шууд хянах (програмчлалгүйгээр)
  • GPIO Pins -ийг сунгана уу
  • GPS/BDS дэмжлэг
  • GSM дэмжлэг
  • Лора дэмжлэг
  • Бусад стек самбартай хамт стек хийх боломжтой
  • Үндсэн хавтангийн тоног төхөөрөмжөөс хамааралгүй (I2C дэмжлэг шаардлагатай)

Алхам 2: Алхам1: IoT (A) самбарын талаар мэдэх

Алхам 1: IoT (A) самбарын талаар мэдэх
Алхам 1: IoT (A) самбарын талаар мэдэх
Алхам 1: IoT (A) самбарын талаар мэдэх
Алхам 1: IoT (A) самбарын талаар мэдэх
Алхам 1: IoT (A) самбарын талаар мэдэх
Алхам 1: IoT (A) самбарын талаар мэдэх

IoT Node (A) нь Docker Pi цувралын модулийн нэг юм.

IOT зангилаа (A) = GPS/BDS + GSM + Lora.

I2C нь Лораг шууд хянадаг, өгөгдөл илгээдэг, хүлээн авдаг, GSM/GPS/BDS модулийг SC16IS752 -ээр хянадаг, эх хавтан нь зөвхөн I2C -ийн дэмжлэгийг шаарддаг. Raspberry Pi болон бусад ижил төстэй бүтээгдэхүүнийг дэмждэг.

Тиймээс та тэдгээрийн хоёрыг ашиглан дунд түвшний харилцаа холбооны төхөөрөмж хийх боломжтой болно.

мөн та онгоцны тавцан дээрх GPS модулийг ашиглан төхөөрөмжийнхөө байршлыг олох боломжтой.

SIM картаа оруулаарай, энэ нь SMS мессежээр дамжуулагч станц болно.

Алхам 3: Алхам2: Үүнийг хэрхэн яаж угсрах вэ

Алхам 2: Үүнийг хэрхэн яаж угсрах вэ
Алхам 2: Үүнийг хэрхэн яаж угсрах вэ
Алхам 2: Үүнийг хэрхэн яаж угсрах вэ
Алхам 2: Үүнийг хэрхэн яаж угсрах вэ

"HAT" хийцтэй тул угсрахад маш хялбар байдаг, та зүгээр л бөөрөлзгөнө pi дээрээ тавиад GPIO тээглүүрээр холбоно, энэ нь бөөрөлзгөнө pi дээр "малгай" шиг байдаг тул массыг нэмэх шаардлагагүй болно. утас

Алхам 4: Алхам 3: Антеныг залга

Алхам 3: Антеныг холбоно уу
Алхам 3: Антеныг холбоно уу
Алхам 3: Антеныг холбоно уу
Алхам 3: Антеныг холбоно уу
Алхам 3: Антеныг холбоно уу
Алхам 3: Антеныг холбоно уу

Энэхүү IoT (A) модульд 3 ширхэг антен байдаг бөгөөд тэдгээрийн нэг нь loar модульд зориулагдсан, энэ нь SMA төрлийн антенн бөгөөд тэдгээрийн нэг нь танд GPS -ээр тохиромжтой, энэ нь дөрвөлжин хайрцагтай антен бөгөөд IPX порттой. Сүүлийнх нь SIM модульд зориулагдсан (A9G), энэ бол IPX порт бүхий жижиг антен юм. антенаа холбоод малгайгаа бөөрөлзгөнө pi -тэй холбоно уу.

Iot Node (A) самбарыг Raspberry Pi дээр хэрхэн угсрах вэ

Hookup GPS antana болон Lora antana -г IPX порт руу холбоно уу.

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

SMA порт дээр GPRS антанаг шургуулна.

Алхам 5: Алхам4: OS -ийн орчин ба програм хангамжийн тохиргоо

Энэ алхамд та дараахь зүйлийг хийх ёстой.

1. Хамгийн сүүлийн үеийн зургийн файлыг татаж авах: www.raspberrypi.org/downloads

2. Үүнийг задлах.

3. TF картаа etcher хэрэгслээр дамжуулан хамгийн сүүлийн үеийн дүрсээр гэрэлтүүлээрэй

4. /boot/config.txt файлыг өөрчилж, энэ догол мөрийг нэмнэ үү.

dtoverlay = sc16is752-i2c

5. /boot/overlay/sc16is752-i2c.dtbo файлыг энэ файлаар солино:

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

Жич: үүнийг задалж өөрийн/boot/overlay/хавтсанд хийж, хуучин фолдерыг орлуулахаа бүү мартаарай.

6. Raspberry Pi -г дахин ачаална уу.

Алхам 6: Алхам 5: I2C (Raspberry Pi) -ийг тохируулах

Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)
Алхам 5: I2C -ийг тохируулах (Raspberry Pi)

Sudo raspi-config програмыг ажиллуулаад ARM цөм болон линукс цөмд i2c дэмжлэгийг суулгах зааврыг дагана уу.

Алхам 7: Алхам 6: Бүртгэлийн мэдээллийн талаар мэдэх

GPRS хэсэг

Цахилгаан бага зарцуулдаг, унтлагын гүйдэл <1мА2.

GSM/GPRS -ийн 850, 900, 1800, 1900МГц давтамжтай дөрвөн давтамжийн зурвасыг дэмжинэ

GPRS анги 10

GPRS мэдээллийн үйлчилгээ, өгөгдлийн дээд хурд, 85.6Kbps татаж авах, 42.8Kbps байршуулах

GSM07.07, 07.05 AT стандарт командуудыг дэмжиж, I2C интерфэйс хөрвүүлэх замаар цуваа порт руу нэвтрэх

AT командууд нь стандарт AT ба TCP/IP команд портуудыг дэмждэг

GPS хэсэг BDS/GPS хамтарсан байрлалыг дэмжих

A-GPS, A-BDS-ийг дэмжих

Стандарт SIM картыг дэмждэг

LORA хэсэг Дамжуулах зай: 500 метр (RF параметрүүд: 0x50 @ China City)

FSK, GFSK, MSK, GMSK, LoRa TM болон OOK модуляцийн аргуудыг дэмжинэ.

Хүлээн авагчийн хэт өндөр мэдрэмж нь -141 дБм хүртэл бага байдаг

Оршил танилцуулгыг дэмжих

CRC -тэй пакет хөдөлгүүр, 256 байт хүртэл

LORA дамжуулагчийн үзүүлэлт

Docker Pi -ийн Easy TX/RX

Алхам 8:

A9G модуль

A9G модуль нь хоёр цуваа портыг санал болгодог.

Харилцааны хувьд I2C UART гүүрийг ашиглана уу.

Цуваа порт модулийн нэр

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

Бүртгүүлэх газрын зураг

  • Бүртгүүлэх Хаягийн функцын утга
  • 0x01 LORA_TX1 Lora TX Буфер 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 Буфер 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 (Зөвхөн бичих)

  • 0x22 -аас LORA модуль хүртэлх параметрүүдийг тохируулахын тулд 1 гэж бичнэ үү.
  • Үр нөлөөгүй 0 гэж бичнэ үү

G_RESET (Зөвхөн бичих)

  • A9G модулийг дахин тохируулахын тулд 1 гэж бичнэ үү
  • Үр нөлөөгүй 0 гэж бичнэ үү

L_RXNE (Унших ба бичих)

  • Алдааны 1 шалтгааныг бичнэ үү
  • Цэвэрлэхийн тулд 0 гэж бичнэ үү
  • 1 -ийг унших нь өгөгдөл хүлээн авсан гэсэн үг бөгөөд өгөгдлийг 0x11 - 0x20 регистрээс авна уу.
  • 0 унших гэдэг нь одоогоор мэдээлэл байхгүй байна гэсэн үг юм.

L_SET (Зөвхөн бичих)

  • Өгөгдөл илгээх бол 1 гэж бичээрэй, илгээхээсээ өмнө 0x01 - 0x10 регистрийн өгөгдлийг бөглөнө үү.
  • Үр нөлөөгүй 0 гэж бичнэ үү

Алхам 10: GPS модулийг Gpsd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар

GPS модулийг Gpsd (Raspberry Pi) дээр хэрхэн ашиглах талаар
GPS модулийг Gpsd (Raspberry Pi) дээр хэрхэн ашиглах талаар
GPS модулийг Gpsd (Raspberry Pi) дээр хэрхэн ашиглах талаар
GPS модулийг Gpsd (Raspberry Pi) дээр хэрхэн ашиглах талаар
GPS модулийг Gpsd (Raspberry Pi) дээр хэрхэн ашиглах талаар
GPS модулийг Gpsd (Raspberry Pi) дээр хэрхэн ашиглах талаар

GPS модулийг gpsd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар

Нэгдүгээрт, /boot/overlays/sc16is752-i2c.dtbo-г сольж, I2C зөв ажиллаж байгаа эсэхийг шалгаарай.

  • Sc16is752-i2c.dtbo-г солих
  • I2C -ийг тохируулж байна
  • Gpsd хэрэгслүүдийг суулгана уу.

Терминал нээгээд энэ тушаалыг бичнэ үү

sudo apt суулгах gpsd gpsd-клиентүүд

/Etc/default/gpsd файлыг өөрчилж дараах параметрүүдийг нэмнэ үү.

  • ТӨХӨӨРӨМЖ = "/dev/ttySC1"
  • GPSD_OPTIONS = "-F /var/run/gpsd.sock"

GPRS модулийг дахин тохируулахын тулд i2cset -y 1 0x16 0x23 0x40 тушаалыг оруулна уу.

Нээлттэй GPS -ийн Python скрипт:

serialimport os импортлох цаг # gpsd үйлчилгээг дахин эхлүүлнэ үү. os.system ("sudo systemctl restart gpsd.socket") # ser = serial. Serial ('/dev/ttySC0', 115200) цуваа портыг нээнэ үү, хэрэв ser.isOpen == False: ser.open () оролдвол: хэвлэх ("GPS -ийг асаах …") True байхад: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () хэрэв size! = 0: ticks = time.time () хариу = ser.read (хэмжээ) gps = str (хариулт, кодчилол = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 хэвлэх ("GPS идэвхжиж байна, хэрэв цаг хэтэрхий урт байвал гадаа туршина уу:" + str (i)) ser.flushInput () time.sleep (1) KeyboardInterrupt -ээс бусад.flushInput () ser.close ()

Үүнийг хадгалаад ажиллуулна уу:

python3 GPS.py

Алхам 11: GPS модулийг C (Raspberry Pi) ашиглан хэрхэн ашиглах вэ

Gpsd хэрэгслүүдийг суулгана уу

sudo apt-get libgps-dev суулгана уу

Эх кодыг үүсгээд "gps.c" гэж нэрлэнэ үү.

#оруулах #оруулах #оруулах

#оруулах

#оруулах

int main ()

{int rc; цаг хугацааны телевизийн бүтэц; бүтэц gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("код: %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)) { / * өгөгдлийг унших * / 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); EDIT: 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);

// EDIT: 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

Үүнийг хэрэгжүүлээрэй!

./gps

Алхам 13: GPS модулийг Python (Raspberry Pi) ашиглан хэрхэн ашиглах талаар

Python (Raspberry Pi) дээр GPS модулийг хэрхэн ашиглах талаар
Python (Raspberry Pi) дээр GPS модулийг хэрхэн ашиглах талаар

Дараах кодыг Python 3 ашиглан гүйцэтгэж, gpsd-py3 номын сан болон GPS 2D/3D Fix-ийг суулгахыг зөвлөж байна.

gpsd импортлох

# Орон нутгийн gpsd -тэй холбогдоно уу

gpsd.connect ()

# GPS байрлалыг аваарай

пакет = gpsd.get_current ()

# Боломжтой өгөгдлийг GpsResponse -ийн доторх баримт бичгээс үзнэ үү

хэвлэх (packet.position ())

Алхам 14: GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах вэ

GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар
GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар
GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар
GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар
GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар
GSM модулийг PPPd (Raspberry Pi) ашиглан хэрхэн ашиглах талаар

A) Эхлээд /boot/overlays/sc16is752-i2c.dtbo-г сольж, I2C зөв ажиллаж байгаа эсэхийг шалгаарай.

  • Sc16is752-i2c.dtbo-г солих
  • I2C -ийг тохируулж байна

B) GPRS модулийг дахин тохируулахын тулд i2cset -y 1 0x16 0x23 0x40 командыг оруулна уу.

Командыг ажиллуулсны дараа та бага зэрэг 10 секунд хүлээх хэрэгтэй

Та мөн дахин тохируулахын тулд дараах аргыг ашиглаж болно.

C) Командыг оруулна уу

sudo apt install ppp

ppp хэрэгслийг суулгах.

D)/etc/ppp/peers/provider/etc/ppp/peers/gprs руу хуулах

E)/etc/ppp/peers/gprs -ийг өөрчлөх

  • 10 -р мөр: Хэрэглэгчийн талаар үйлчилгээ үзүүлэгчтэйгээ холбоо барина уу (Жишээ нь: cmnet).
  • 15 -р мөр: Үйлчилгээ үзүүлэгчтэйгээ холбоо барина уу (жишээ нь: cmnet).
  • 18 -р мөр - 24 -р мөр: Зөвлөмж болгож буй тохиргоо

F) Өөрчлөх

G) sudo pppd командыг оруулаад gprs руу залгаарай.

H) ISP -ээс ppp тохиргоогоо шалгана уу.

I) ping командыг оруулна уу -ppp0 8.8.8.8 сүлжээгээ шалгана уу (Интернет байгаа бөгөөд чиглүүлэлтийн хүснэгт зөв бол)

J) GSM дохиог сайн байлгаарай, эс тэгвээс дараахь зүйл тохиолдох болно.

Алхам 15: Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)

Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)
Миний GSM модулийг хэрхэн оношлох вэ (Raspberry Pi)

Дараах кодыг Python 3 ашиглан гүйцэтгэж, smbus номын санг суулгахыг зөвлөж байна.

импорт сериалимпорт цаг импорт smbus импорт оператор импорт os

хэвлэх ("Эхлүүлэхийг хүлээж байна …")

автобус = smbus. SMBus (1)

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

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

хэрэв ser.isOpen == Худал:

ser.open () оролдох: хэвлэх ('-'*60) хэвлэх ("A9G GPRS модулийг эхлүүлж байна.") хэвлэх ("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 (хариу, кодчилол = "utf) -8 ") хэвлэх (ccid) өөр: i = i + 1 ser.flushInput () time.sleep (1) KeyboardInterrupt -ээс бусад: ser.close ()

Туршилтын скриптийг хэрэгжүүлсний үр дүнд үндэслэн бид GSM модулийг оношлох боломжтой. CME код = GSM тоног төхөөрөмжтэй холбоотой алдаа

Мэдээжийн хэрэг, скрипт нь дахин тохируулах функцтэй байдаг. Хэрэв та CCID -ийг зөв харуулах боломжтой бол дахин тохируулах ажил дууссан болно.

Алхам 16: C (Raspberry Pi) ашиглан Lora TX & RX -ийг хэрхэн ашиглах талаар

Дараах кодыг Python 3 ашиглан гүйцэтгэж, smbus номын санг суулгахыг зөвлөж байна.

Үүнийг IOT хоёр зангилаа (A) хооронд шилжүүлэх ёстой. Өөрөө илгээсэн контентыг өөрөө хүлээн авах боломжгүй. Үүнийг гүйцэтгэхийн тулд py скрипт болгон хадгална уу.

Хэрхэн илгээх вэ: Өгөгдлийг 0x01 - 0x10 регистрт бөглөсний дараа L_TX битийг өгөгдөл илгээж эхлэхээр тохируулна уу.

импортлох цаг импорт smbus импорт os импорт 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]) хэвлэх ("LORA %d бүртгэл рүү %d өгөгдөл илгээх" %(индекс, өгөгдлийн жагсаалт [индекс - 1])) bus.write_byte_data (0x16, 0x23, 0x01) KeyboardInterrupt -ээс бусад: sys.exit ()

Хүлээн авалтыг хэрхэн илгээх вэ: L_RXNE битийг шалгана уу, хэрэв тохируулсан бол шинэ өгөгдөл ирсэн бол энэ тугийг гараар цэвэрлэх ёстой

импортлох цаг импорт smbus импорт os импорт sys

автобус = smbus. SMBus (1)

recv_data =

оролдоно уу:

if 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 [index - 0x11]))

хэвлэх ("Хүлээн авсан өгөгдөл:")

print (recv_data) else: print ("Одоогоор ямар ч мэдээлэл хүлээн аваагүй байна ~") KeyboardInterrupt -ээс бусад: sys.exit ()

Алхам 17: I2C зурвасын тусгай тайлбар

I2C протоколын ачаар I2C хурдны хязгаар нь 400 кГц тул нэг төхөөрөмжийн үр дүнтэй зурвасын өргөн нь 320 кбит / с -ээс бага, олон төхөөрөмжийн үр ашигтай зурвасын өргөн нь 160 кб / сек -ээс бага байна. I2C UART гүүрний хурдны хязгаар нь 115200bps юм. I2C зурвасын өргөн хангалтгүй, учир нь 115.2kbps * 2 = 230.4kbps тул зарим өгөгдөл хэтрэх болно. GPS болон GSM холбооны дамжуулах хурдны хурдыг багасгах нь холбооны зурвасын өргөний дутагдлыг сайжруулдаг. нэмэлт I2C зурвасын өргөн. Голдуу сүлжээний өгөгдөл дамжуулах хурд удаан байдаг тул GSM зурвасын өргөн бүрэн биш тул халихад асуудал гардаггүй.

Алхам 18: Дууссан

Залуус танд таалагдаж, амжилтанд хүрнэ гэж найдаж байна.

та эндээс олж болно:

Амазон

Шөнийн гэрэл: https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4 сувгийн буухиа самбар: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp : 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 мөсөн цамхаг:

Зөвлөмж болгож буй: