Բովանդակություն:

[Docker Pi Series] Ինչպես օգտագործել IoT հանգույց (A) մոդուլը Raspberry Pi- ի վրա. 18 քայլ
[Docker Pi Series] Ինչպես օգտագործել IoT հանգույց (A) մոդուլը Raspberry Pi- ի վրա. 18 քայլ

Video: [Docker Pi Series] Ինչպես օգտագործել IoT հանգույց (A) մոդուլը Raspberry Pi- ի վրա. 18 քայլ

Video: [Docker Pi Series] Ինչպես օգտագործել IoT հանգույց (A) մոդուլը Raspberry Pi- ի վրա. 18 քայլ
Video: Docker 101 2024, Նոյեմբեր
Anonim
[Docker Pi Series] Ինչպես օգտագործել IoT հանգույց (A) մոդուլը Raspberry Pi- ի վրա
[Docker Pi Series] Ինչպես օգտագործել IoT հանգույց (A) մոդուլը Raspberry Pi- ի վրա

Ի՞նչ է IoT հանգույց (A) մոդուլը:

IoT հանգույցը (A) Docker Pi շարքի մոդուլներից է:

IOT հանգույց (A) = GPS/BDS + GSM + Lora:

I2C- ն ուղղակիորեն վերահսկում է Lora- ն, ուղարկում և ստանում է տվյալներ, վերահսկում է GSM/GPS/BDS մոդուլը SC16IS752- ի միջոցով, մայր տախտակին անհրաժեշտ է միայն I2C աջակցություն:

Աջակցեք Raspberry Pi- ին և նման այլ արտադրանքներին:

Պարագաներ

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

1x Docker Pi սերիայի արտադրանք. IoT հանգույց (A) մոդուլ

1x 16 ԳԲ դասի 10 TF քարտ

1x 5V/2.5A սնուցման աղբյուր (5V@3A Pi 4B- ի համար)

Քայլ 1: Առանձնահատկություններ

Առանձնահատկություններ
Առանձնահատկություններ
Առանձնահատկություններ
Առանձնահատկություններ
Առանձնահատկություններ
Առանձնահատկություններ
  • Docker Pi սերիա
  • Ծրագրավորվող
  • Ուղղակի վերահսկում (առանց ծրագրավորման)
  • Ընդլայնել GPIO կապում
  • GPS/BDS աջակցություն
  • GSM աջակցություն
  • Lora աջակցություն
  • Կարող է դասավորվել Stack- ի այլ տախտակի հետ
  • Անկախ մայր տախտակի սարքավորումներից (պահանջում է I2C աջակցություն)

Քայլ 2: Քայլ 1. Իմացեք IoT (A) խորհրդի մասին

Քայլ 1. Իմացեք IoT (A) խորհրդի մասին
Քայլ 1. Իմացեք IoT (A) խորհրդի մասին
Քայլ 1. Իմացեք IoT (A) խորհրդի մասին
Քայլ 1. Իմացեք IoT (A) խորհրդի մասին
Քայլ 1. Իմացեք IoT (A) խորհրդի մասին
Քայլ 1. Իմացեք IoT (A) խորհրդի մասին

IoT հանգույցը (A) Docker Pi շարքի մոդուլներից է:

IOT հանգույց (A) = GPS/BDS + GSM + Lora:

I2C- ն ուղղակիորեն վերահսկում է Lora- ն, ուղարկում և ստանում է տվյալներ, վերահսկում է GSM/GPS/BDS մոդուլը SC16IS752- ի միջոցով, մայր տախտակին անհրաժեշտ է միայն I2C աջակցություն: Աջակցություն Raspberry Pi և այլ նմանատիպ ապրանքների:

Այսպիսով, դուք կարող եք միջին հեռահարության հաղորդակցման սարք պատրաստել ՝ օգտագործելով դրանցից երկուսը:

ինչպես նաև կարող եք տեղորոշել ձեր սարքի գտնվելու վայրը ՝ օգտագործելով GPS մոդուլը:

Տեղադրեք SIM քարտ, այն կդառնա հաղորդիչ կայան SMS հաղորդագրության միջոցով:

Քայլ 3: Քայլ 2: Ինչպես հավաքել այն

Քայլ 2: Ինչպես հավաքել այն
Քայլ 2: Ինչպես հավաքել այն
Քայլ 2: Ինչպես հավաքել այն
Քայլ 2: Ինչպես հավաքել այն

Շատ հեշտ է հավաքել այն «ՀԱAT» դիզայնի շնորհիվ, պարզապես այն դնում եք ձեր ազնվամորու պի վրա և այն կապում GPIO կապում, այն նման է «գլխարկի» ազնվամորի պիի վրա, որպեսզի ստիպված չլինեք զանգված ավելացնել: մետաղալար.

Քայլ 4: Քայլ 3. Միացրեք ալեհավաքը

Քայլ 3: Միացրեք ալեհավաքը
Քայլ 3: Միացրեք ալեհավաքը
Քայլ 3: Միացրեք ալեհավաքը
Քայլ 3: Միացրեք ալեհավաքը
Քայլ 3: Միացրեք ալեհավաքը
Քայլ 3: Միացրեք ալեհավաքը

Այս IoT (A) մոդուլի համար կա 3 կտոր ալեհավաք, դրանցից մեկը `loar մոդուլի համար, դա SMA տիպի ալեհավաք է, և դրանցից մեկը լավ է GPS- ի համար, դա քառակուսի տուփի ալեհավաք է, որն ունի IPX պորտ: և վերջինը SIM մոդուլի համար է (A9G): Դա մի փոքրիկ ալեհավաք է, որն ունի IPX պորտ: միացրեք ալեհավաքը և տեղադրեք գլխարկը ձեր ազնվամորու պիին:

Ինչպես հավաքել Տեղադրեք Iot Node (A) խորհուրդը Raspberry Pi- ին

Միացման GPS անտանա և Lora antana դեպի IPX պորտ:

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

Պտուտակում է GPRS անտանան SMA նավահանգստում:

Քայլ 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 միջուկի և Linux միջուկի i2c աջակցություն տեղադրելու հրահանգներին: Գնացեք միջերեսման ընտրանքներ

Քայլ 7: Քայլ 6. Իմացեք գրանցամատյանի տեղեկատվության մասին

GPRS բաժին

Powerածր էներգիայի սպառումը, սպասման ընթացիկ ռեժիմը <1mA2:

Աջակցեք GSM/GPRS չորս հաճախականությունների տիրույթներին, ներառյալ 850, 900, 1800, 1900MHZ

GPRS դաս 10

Աջակցեք GPRS տվյալների ծառայությանը, տվյալների առավելագույն արագությունը, ներբեռնեք 85.6 Կբիթ / վրկ, վերբեռնեք 42.8 Կբիթ / վրկ

Աջակցեք ստանդարտ GSM07.07, 07.05 AT հրամաններին և մուտք գործեք սերիական նավահանգիստ I2C ինտերֆեյսի փոխակերպման միջոցով

AT հրամանները աջակցում են ստանդարտ AT և TCP/IP հրամանների նավահանգիստներին

GPS բաժին Աջակցություն BDS/GPS համատեղ դիրքավորմանը

Աջակցություն A-GPS, A-BDS

Աջակցեք ստանդարտ SIM քարտին

LORA բաժին Փոխադրման հեռավորությունը ՝ 500 մետր (ՌԴ պարամետրեր ՝ 0x50 @ China City)

Աջակցեք FSK, GFSK, MSK, GMSK, LoRaTM և OOK մոդուլյացիայի մեթոդներին

Ընդունիչի չափազանց բարձր զգայունությունը ցածր է մինչև -141 դԲմ

Աջակցեք նախաբանի հայտնաբերմանը

Փաթեթային շարժիչ ՝ CRC- ով, մինչև 256 բայթ

LORA ստացողի ցուցիչ

Հեշտ TX/RX ՝ Docker Pi- ի կողմից

Քայլ 8:

A9G մոդուլ

A9G մոդուլն առաջարկում է երկու սերիական պորտ:

Հաղորդակցության համար օգտագործեք I2C UART կամուրջը:

Սերիական նավահանգստի մոդուլի անվանումը

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

Գրանցել Քարտեզը

  • Գրանցել հասցեի գործառույթի արժեքը
  • 0x01 LORA_TX1 Lora TX բուֆեր 1 - Օգտվողի տվյալներ
  • 0x02 LORA_TX2 Lora TX բուֆեր 2 - Օգտվողի տվյալներ
  • 0x03 LORA_TX3 Lora TX բուֆեր 3 - Օգտվողի տվյալներ
  • 0x04 LORA_TX4 Lora TX բուֆեր 4 - Օգտվողի տվյալներ
  • 0x05 LORA_TX5 Lora TX բուֆեր 5 - Օգտվողի տվյալներ
  • 0x06 LORA_TX6 Lora TX բուֆեր 6 - Օգտվողի տվյալներ
  • 0x07 LORA_TX7 Lora TX բուֆեր 7 - Օգտվողի տվյալներ
  • 0x08 LORA_TX8 Lora TX բուֆեր 8 - Օգտվողի տվյալներ
  • 0x09 LORA_TX9 Lora TX բուֆեր 9 - Օգտվողի տվյալներ
  • 0x0a LORA_TX10 Lora TX բուֆեր 10 - Օգտվողի տվյալներ
  • 0x0b LORA_TX11 Lora TX բուֆեր 11 - Օգտվողի տվյալներ
  • 0x0c LORA_TX12 Lora TX բուֆեր 12 - Օգտվողի տվյալներ
  • 0x0d LORA_TX13 Lora TX բուֆեր 13 - Օգտվողի տվյալներ
  • 0x0e LORA_TX14 Lora TX բուֆեր 14 - Օգտվողի տվյալներ
  • 0x0f LORA_TX15 Lora TX բուֆեր 15 - Օգտվողի տվյալներ
  • 0x10 LORA_TX16 Lora TX բուֆեր 16 - Օգտվողի տվյալներ
  • 0x11 LORA_RX1 Lora RX բուֆեր 1 - Օգտվողի տվյալներ
  • 0x12 LORA_RX2 Lora RX բուֆեր 2 - Օգտվողի տվյալներ
  • 0x13 LORA_RX3 Lora RX բուֆեր 3 - Օգտվողի տվյալներ
  • 0x14 LORA_RX4 Lora RX բուֆեր 4 - Օգտվողի տվյալներ
  • 0x15 LORA_RX5 Lora RX բուֆեր 5 - Օգտվողի տվյալներ
  • 0x16 LORA_RX6 Lora RX բուֆեր 6 - Օգտվողի տվյալներ
  • 0x17 LORA_RX7 Lora RX բուֆեր 7 - Օգտվողի տվյալներ
  • 0x18 LORA_RX8 Lora RX բուֆեր 8 - Օգտվողի տվյալներ
  • 0x19 LORA_RX9 Lora RX բուֆեր 9 - Օգտվողի տվյալներ
  • 0x1a LORA_RX10 Lora RX բուֆեր 10 - Օգտվողի տվյալներ
  • 0x1b LORA_RX11 Lora RX բուֆեր 11 - Օգտվողի տվյալներ
  • 0x1c LORA_RX12 Lora RX բուֆեր 12 - Օգտվողի տվյալներ
  • 0x1d LORA_RX13 Lora RX բուֆեր 13 - Օգտվողի տվյալներ
  • 0x1e LORA_RX14 Lora RX բուֆեր 14 - Օգտվողի տվյալներ
  • 0x1f LORA_RX15 Lora RX բուֆեր 15 - Օգտվողի տվյալներ
  • 0x20 LORA_RX16 Lora RX բուֆեր 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 Script:

ներմուծել serialimport os ներմուծման ժամանակը # Վերագործարկեք gpsd ծառայությունը: os.system ("sudo systemctl restart gpsd.socket") # Բացեք սերիական նավահանգիստ ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 if ser.isOpen == Կեղծ: ser.open () try: տպել («Միացնել GPS…») մինչդեռ True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () եթե չափը! = 0: ticks = time.time () պատասխան = ser.read (չափ) gps = str (պատասխան, կոդավորում = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") ելք () այլ ՝ i = i + 1 տպում («Սպասում է GPS- ի միացում, եթե ժամանակը չափազանց երկար է, խնդրում ենք բացօթյա փորձարկել.» + str (i)) ser.flushInput () time.sleep (1) բացառությամբ KeyboardIntrupt: ser.flushInput () ser.close ()

Պահպանեք և գործարկեք.

python3 GPS.py

Քայլ 11: Ինչպես օգտագործել GPS մոդուլը C- ով (Raspberry Pi)

Տեղադրեք gpsd գործիքներ:

sudo apt-get տեղադրել libgps-dev

Ստեղծեք սկզբնական կոդ և անվանեք այն «gps.c»

#ներառել #ներառել #ներառել

#ներառում

#ներառում

int հիմնական ()

{int rc; struct timeval հեռուստատեսություն; struct 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 վայրկյան ՝ տվյալներ ստանալու համար * / եթե (gps_waiting (& gps_data, 2000000)) { / * կարդալ տվյալները * / if ((rc = gps_read (& gps_data)) == -1) {printf ("սխալ ընթերցման ժամանակ gps տվյալներ. ծածկագիր ՝ %d, պատճառ ՝ %s / n ", rc, gps_errstr (rc)); } else { /* Displayուցադրել տվյալները 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} else {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)

Ինչպես օգտագործել GPS մոդուլը Python- ով (Raspberry Pi)
Ինչպես օգտագործել GPS մոդուլը Python- ով (Raspberry Pi)

Հետևյալ կոդը խորհուրդ է տրվում կատարել 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)

Ա) Նախ, փոխարինեք/boot/overlays/sc16is752-i2c.dtbo- ն և համոզվեք, որ I2C- ը ճիշտ է աշխատում:

  • Փոխարինեք sc16is752-i2c.dtbo
  • I2C- ի կարգավորում

Բ) GPRS մոդուլը վերակայելու համար մուտքագրեք i2cset -y 1 0x16 0x23 0x40 հրամանը:

Հրամանը գործարկելուց հետո պետք է մի փոքր սպասել ՝ մոտ 10 վայրկյան

Կարող եք նաև օգտագործել հետևյալ մեթոդը `վերականգնելու համար:

Գ) Մուտքագրեք հրամանը

sudo apt տեղադրել ppp

տեղադրել ppp գործիքներ:

D) Պատճենել/etc/ppp/peers/մատակարարը/etc/ppp/peers/gprs հասցեով

Ե) Փոփոխել/etc/ppp/peers/gprs

  • Տող 10. Խնդրում ենք օգտվողի համար խորհրդակցել ձեր ծառայության մատակարարի հետ (Օրինակ ՝ cmnet):
  • Տող 15. Խնդրում ենք apn- ի համար խորհրդակցել ձեր ծառայության մատակարարի հետ (Օրինակ ՝ cmnet):
  • Տող 18 - Տող 24. Առաջարկվող կարգավորում

)) Փոփոխել/etc/chatscripts/gprs (Փոխել 34 -րդ տողը 35 -րդ տողի վրա, Հեռախոսահամարը կարող է լինել ՉԻ *99#)

Է) Մուտքագրեք հրաման sudo pppd զանգահարեք gprs ՝ զանգահարելու համար:

H) Ստուգեք ձեր ppp կարգավորումը ձեր մատակարարից:

I) Մուտքագրեք հրամանը ping -I ppp0 8.8.8.8 ստուգեք ձեր ցանցը (եթե ինտերնետը հասանելի է և երթուղու աղյուսակը ճիշտ է))) Խնդրում ենք 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 ներմուծման օպերատոր ներմուծման համակարգ

տպել («Սպասում ենք նախաստորագրմանը …»)

ավտոբուս = smbus. SMBus (1)

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

ser = սերիա: Սերիալ ('/dev/ttySC0', 115200)

եթե ser.isOpen == Կեղծ:

ser.open () try: print ('-'*60) print ("Initializing A9G GPRS module.") print ("GSM Connecting") time.sleep (3) i = 0 while True: ser.write (str.encode ("AT+CCID / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () respond = ser.read (size) ccid = str (պատասխան, կոդավորում = "utf -8 ") տպել (ccid) այլ: i = i + 1 ser.flushInput () time.sleep (1) բացառությամբ KeyboardIntruptrupt: ser.close ()

Գործարկեք Test Script- ը, իրականացման արդյունքների հիման վրա, մենք կարող ենք ախտորոշել GSM մոդուլը: Օրինակ ՝ հետևյալ վերադարձը, CME ERROR 53 սխալը մեզ ասում է, որ Power- ը լավ չէ: CME կոդ = GSM սարքավորումների հետ կապված սխալներ

Իհարկե, սցենարը ունի նաև վերականգնման գործառույթ: Եթե կարողանաք ճիշտ ցուցադրել CCID- ը, ապա վերականգնումն ավարտված է:

Քայլ 16. Ինչպես օգտագործել Lora TX & RX C- ով (Raspberry Pi)

Հետևյալ կոդը խորհուրդ է տրվում կատարել Python 3 -ի միջոցով և տեղադրել smbus գրադարանը:

Այն պետք է փոխանցվի երկու IOT հանգույցի (A) միջև: Ինքնուրույն ուղարկված բովանդակությունը չի կարող ինքնուրույն ստանալ: Խնդրում ենք պահել որպես py սցենար `կատարման համար:

Ինչպես ուղարկել. Տվյալները 0x01 - 0x10 գրանցամատյանում լրացնելուց հետո սահմանեք L_TX բիթը `տվյալների ուղարկումը սկսելու համար:

ներմուծման ժամանակ ներմուծում smbus ներմուծում os ներմուծման համակարգ

ավտոբուս = smbus. SMBus (1)

փորձել:

data_list = [170, 85, 165, 90] # գրանցման համար գրեք տվյալները, այնուհետև տվյալները կուղարկվեն: միջակայքի ինդեքսի համար (1, լեն (տվյալների_ցուցակ) + 1). bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA data send % %d register %d data" %(index, data_list [ցուցիչ - 1])) bus.write_byte_data (0x16, 0x23, 0x01) բացառությամբ KeyboardIntruptrupt: sys.exit ()

Ինչպես ուղարկել ստացում. Ստուգեք L_RXNE բիթը, եթե դրված է, նոր տվյալներ են հասել, այս դրոշը պետք է ձեռքով պարզ լինի:

ներմուծման ժամանակ ներմուծում smbus ներմուծում os ներմուծման համակարգ

ավտոբուս = 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, լեն (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 արագության սահմանը 400kHz է ՝ I2C արձանագրության շնորհիվ, ուստի մեկ սարքի արդյունավետ թողունակությունը ցածր է 320kbps- ից, բազմ սարքերի արդյունավետ թողունակությունը ՝ 160kbps- ից ցածր: I2C UART Bridge արագության սահմանը 115200 բիթ / վ է: Երբ GPS և GSM աշխատել միևնույն ժամանակ, I2C թողունակությունը անբավարար է, որովհետև 115.2 կբիթ / վրկ * 2 = 230.4 կբիթ / վրկ, այնպես որ որոշ տվյալներ կհորդեն: GPS- ի և GSM հաղորդակցության արագության նվազեցումը կարող է բարելավել հաղորդակցության թողունակության պակասը: լրացուցիչ I2C թողունակություն: Սովորաբար, ցանցի տվյալների արագությունը դանդաղ է, ուստի GSM թողունակությունը լիարժեք չէ, ուստի հոսքի խնդիր չկա:

Քայլ 18: Ավարտվեց

Հուսով եմ, որ ձեզ դուր կգա և կստացվի:

կարող եք գտնել այստեղ ՝

Amazon

Գիշերային լույս : Https: //www.amazon.co.uk/dp/B07TD595VS? Ref = myi_title_dp IoT հանգույց (A) : https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 սառցե աշտարակ :

Խորհուրդ ենք տալիս: