Kazalo:

[Serija Docker Pi] Kako uporabljati modul vozlišča IoT (A) na Raspberry Pi: 18 korakov
[Serija Docker Pi] Kako uporabljati modul vozlišča IoT (A) na Raspberry Pi: 18 korakov

Video: [Serija Docker Pi] Kako uporabljati modul vozlišča IoT (A) na Raspberry Pi: 18 korakov

Video: [Serija Docker Pi] Kako uporabljati modul vozlišča IoT (A) na Raspberry Pi: 18 korakov
Video: Три кота | Сборник № 10 | Серия 91 - 100 2024, Julij
Anonim
[Serija Docker Pi] Kako uporabljati modul vozlišča IoT (A) na Raspberry Pi
[Serija Docker Pi] Kako uporabljati modul vozlišča IoT (A) na Raspberry Pi

Kaj je modul IoT Node (A)?

IoT Node (A) je eden od modulov serije Docker Pi.

Vozlišče IOT (A) = GPS/BDS + GSM + Lora.

I2C neposredno nadzoruje Loro, pošilja in sprejema podatke, nadzoruje modul GSM/GPS/BDS prek SC16IS752, matična plošča potrebuje samo podporo I2C.

Podprite Raspberry Pi in druge podobne izdelke.

Zaloge

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

1x izdelek serije Docker Pi: modul vozlišča IoT (A)

1x 16 GB kartica razreda 10 TF

1x napajalnik 5V/2.5A (5V@3A za Pi 4B)

1. korak: Lastnosti

Lastnosti
Lastnosti
Lastnosti
Lastnosti
Lastnosti
Lastnosti
  • Docker Pi serija
  • Programabilno
  • Upravljajte neposredno (brez programiranja)
  • Razširite zatiče GPIO
  • Podpora GPS/BDS
  • Podpora za GSM
  • Podpora Lora
  • Lahko zložite z drugo ploščo sklada
  • Neodvisno od strojne opreme matične plošče (zahteva podporo I2C)

2. korak: 1. korak: Spoznajte ploščo IoT (A)

1. korak: Spoznajte tablo IoT (A)
1. korak: Spoznajte tablo IoT (A)
1. korak: Spoznajte tablo IoT (A)
1. korak: Spoznajte tablo IoT (A)
1. korak: Spoznajte tablo IoT (A)
1. korak: Spoznajte tablo IoT (A)

IoT Node (A) je eden od modulov serije Docker Pi.

Vozlišče IOT (A) = GPS/BDS + GSM + Lora.

I2C neposredno nadzoruje Loro, pošilja in sprejema podatke, nadzoruje modul GSM/GPS/BDS prek SC16IS752, matična plošča potrebuje samo podporo I2C. Podpira Raspberry Pi in druge podobne izdelke.

Tako lahko naredite komunikacijsko napravo srednjega razreda z dvema od njih.

lokacijo vaše naprave pa lahko poiščete tudi z vgrajenim modulom GPS.

Vstavite kartico SIM, postala bo oddajna postaja prek sporočila SMS.

3. korak: 2. korak: Kako ga sestaviti

2. korak: Kako ga sestaviti
2. korak: Kako ga sestaviti
2. korak: Kako ga sestaviti
2. korak: Kako ga sestaviti

Sestaviti ga je zelo enostavno, saj ima obliko "HAT". Samo postavite ga na malinovo pi in ga povežete prek zatičev GPIO, kot "klobuk" na malini pi, tako da vam ni treba dodajati mase žica.

4. korak: 3. korak: Priključite anteno

Korak: Priključite anteno
Korak: Priključite anteno
Korak: Priključite anteno
Korak: Priključite anteno
Korak: Priključite anteno
Korak: Priključite anteno

Za ta modul IoT (A) so 3 -delne antene, ena od njih je za modul loar, to je antena tipa SMA, ena od njih pa je dobra za vas GPS, to je kvadratna antena z vrati IPX. in zadnji je za modul SIM (A9G). To je majhna antena z vrati IPX. priključite anteno in pritrdite klobuk na vaš malinov pi.

Montaža plošče Iot Node (A) na Raspberry Pi

Priključite antano GPS in Lora antana na vrata IPX.

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

Privije antano GPRS na vrata SMA.

5. korak: 4. korak: Okolje OS in konfiguracije programske opreme

V tem koraku morate narediti naslednje:

1. Prenesite najnovejšo slikovno datoteko s spletnega mesta: www.raspberrypi.org/downloads

2. Razpakirajte.

3. Z orodjem za jedkanje utripajte svojo kartico TF z najnovejšo sliko

4. Spremenite datoteko /boot/config.txt in dodajte ta odstavek.

dtoverlay = sc16is752-i2c

5. Zamenja datoteko /boot/overlay/sc16is752-i2c.dtbo s to datoteko:

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

PS: ne pozabite ga razpakirati in postaviti v mapo/boot/overlay/in zamenjati staro.

6. Znova zaženite Raspberry Pi.

6. korak: 5. korak: Konfiguriranje I2C (Raspberry Pi)

5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)
5. korak: Konfiguriranje I2C (Raspberry Pi)

Zaženite sudo raspi-config in sledite pozivom za namestitev podpore i2c za jedro ARM in jedro linux Pojdite na Možnosti vmesnika

Korak 7: Korak 6: Spoznajte informacije o registru

Razdelek GPRS

Nizka poraba energije, tok mirovanja v stanju pripravljenosti <1mA2.

Podpira štiri frekvenčne pasove GSM/GPRS, vključno z 850, 900, 1800, 1900MHZ

GPRS razred 10

Podpirajte podatkovno storitev GPRS, največja hitrost prenosa, prenesite 85,6Kbps, naložite 42,8Kbps

Podpirajte standardne ukaze GSM07.07, 07.05 AT in dostopajte do serijskih vrat s pretvorbo vmesnika I2C

Ukazi AT podpirajo standardna ukazna vrata AT in TCP/IP

Oddelek GPS Podpora skupnemu pozicioniranju BDS/GPS

Podpirajte A-GPS, A-BDS

Podpira standardno kartico SIM

Odsek LORA Oddaljena razdalja: 500 metrov (RF parametri: 0x50 @ China City)

Podpirajte modulacijske metode FSK, GFSK, MSK, GMSK, LoRaTM in OOK

Izjemno visoka občutljivost sprejemnika do -141 dBm

Podpira zaznavanje preambule

Paketni motor s CRC, do 256 bajtov

Indikator oddajnika LORA

Enostavno TX/RX podjetja Docker Pi

8. korak:

Modul A9G

Modul A9G ponuja dva serijska vrata.

Za komunikacijo uporabite I2C UART bridge.

Ime modula zaporednih vrat

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

Registrirajte zemljevid

  • Register Address Funkcija Vrednost
  • 0x01 LORA_TX1 Lora TX vmesnik 1 - uporabniški podatki
  • 0x02 LORA_TX2 Lora TX vmesnik 2 - uporabniški podatki
  • 0x03 LORA_TX3 Lora TX vmesnik 3 - uporabniški podatki
  • 0x04 LORA_TX4 Lora TX vmesnik 4 - uporabniški podatki
  • 0x05 LORA_TX5 Lora TX vmesnik 5 - uporabniški podatki
  • 0x06 LORA_TX6 Lora TX vmesnik 6 - uporabniški podatki
  • 0x07 LORA_TX7 Lora TX vmesnik 7 - uporabniški podatki
  • 0x08 LORA_TX8 Lora TX vmesnik 8 - uporabniški podatki
  • 0x09 LORA_TX9 Lora TX vmesnik 9 - uporabniški podatki
  • 0x0a LORA_TX10 Lora TX vmesnik 10 - uporabniški podatki
  • 0x0b LORA_TX11 Lora TX vmesnik 11 - uporabniški podatki
  • 0x0c LORA_TX12 Lora TX vmesnik 12 - uporabniški podatki
  • 0x0d LORA_TX13 Lora TX vmesnik 13 - uporabniški podatki
  • 0x0e LORA_TX14 Lora TX vmesnik 14 - uporabniški podatki
  • 0x0f LORA_TX15 Lora TX vmesnik 15 - uporabniški podatki
  • 0x10 LORA_TX16 Lora TX vmesnik 16 - uporabniški podatki
  • 0x11 LORA_RX1 Lora RX vmesnik 1 - uporabniški podatki
  • 0x12 LORA_RX2 Lora RX vmesnik 2 - uporabniški podatki
  • 0x13 LORA_RX3 Lora RX vmesnik 3 - uporabniški podatki
  • 0x14 LORA_RX4 Lora RX vmesnik 4 - uporabniški podatki
  • 0x15 LORA_RX5 Lora RX vmesnik 5 - uporabniški podatki
  • 0x16 LORA_RX6 Lora RX vmesnik 6 - uporabniški podatki
  • 0x17 LORA_RX7 Lora RX vmesnik 7 - uporabniški podatki
  • 0x18 LORA_RX8 Lora RX vmesnik 8 - uporabniški podatki
  • 0x19 LORA_RX9 Lora RX vmesnik 9 - uporabniški podatki
  • 0x1a LORA_RX10 Lora RX vmesnik 10 - uporabniški podatki
  • 0x1b LORA_RX11 Lora RX vmesnik 11 - uporabniški podatki
  • 0x1c LORA_RX12 Lora RX vmesnik 12 - uporabniški podatki
  • 0x1d LORA_RX13 Lora RX vmesnik 13 - uporabniški podatki
  • 0x1e LORA_RX14 Lora RX vmesnik 14 - uporabniški podatki
  • 0x1f LORA_RX15 Lora RX vmesnik 15 - uporabniški podatki
  • 0x20 LORA_RX16 Lora RX vmesnik 16 - uporabniški podatki
  • 0x01 - 0x10 Samo za pisanje.
  • 0x11 - 0x20 Samo za branje.

9. korak: Navodila:

Navodila
Navodila

L_SET (samo za pisanje)

  • Zapišite parametre od 0x22 do modula LORA.
  • Zapiši 0 ni učinek

G_RESET (samo za pisanje)

  • Za ponastavitev modula A9G napišite 1
  • Napiši 0 ni učinek

L_RXNE (branje in pisanje)

  • Napišite 1 vzrok napake
  • Za brisanje napišite 0
  • Preberite 1 pomeni, da so bili podatki prejeti, podatke dobite iz registra 0x11 - 0x20.
  • Preberite 0 pomeni, da zdaj ni podatkov.

L_SET (samo za pisanje)

  • Za pošiljanje podatkov napišite 1, pred pošiljanjem vnesite podatke v register 0x01 - 0x10.
  • Zapiši 0 ni učinek

10. korak: Kako uporabljati modul GPS z GPS (Raspberry Pi)

Kako uporabljati GPS modul z GPS (Raspberry Pi)
Kako uporabljati GPS modul z GPS (Raspberry Pi)
Kako uporabljati GPS modul z GPS (Raspberry Pi)
Kako uporabljati GPS modul z GPS (Raspberry Pi)
Kako uporabljati GPS modul z GPS (Raspberry Pi)
Kako uporabljati GPS modul z GPS (Raspberry Pi)

Kako uporabljati modul GPS z gpsd (Raspberry Pi)

Najprej zamenjajte /boot/overlays/sc16is752-i2c.dtbo in se prepričajte, da I2C deluje pravilno.

  • Zamenjajte sc16is752-i2c.dtbo
  • Konfiguriranje I2C
  • Namestite orodja gpsd.

Odprite terminal in vnesite ta ukaz:

sudo apt namestite odjemalce gpsd gpsd

Spremenite datoteko/etc/default/gpsd in dodajte naslednje parametre:

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

Vnesite ukaz i2cset -y 1 0x16 0x23 0x40 za ponastavitev modula GPRS.

Python Script za odprti GPS:

import serialimport os import time # Znova zaženite storitev gpsd. os.system ("sudo systemctl restart gpsd.socket") # Odpri serijska vrata ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 če je ser.isOpen == False: ser.open () poskusite: print ("Vklopi GPS …"), medtem ko je True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () če je velikost! = 0: ticks = time.time () response = ser.read (size) gps = str (response, encoding = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Čakanje GPS omogočeno, če je čas predolg, preizkusite na prostem:" + str (i)) ser.flushInput () time.sleep (1) razen KeyboardInterrupt: ser.flushInput () ser.close ()

Shranite in izvedite:

python3 GPS.py

11. korak: Kako uporabljati modul GPS s C (Raspberry Pi)

Namestite orodja gpsd

sudo apt-get install libgps-dev

Ustvarite izvorno kodo in jo poimenujte "gps.c"

#include #include #include

#vključi

#vključi

int main ()

{int rc; struct timeval tv; struct gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("koda: %d, razlog: %s / n", rc, gps_errstr (rc)); vrniti EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);

medtem ko (1)

{ / * počakajte 2 sekundi, da prejmete podatke * / if (gps_waiting (& gps_data, 2000000)) { / * preberite podatke * / if ((rc = gps_read (& gps_data)) == -1) {printf ("pri branju je prišlo do napake podatki GPS. Koda: %d, razlog: %s / n ", rc, gps_errstr (rc)); } else { /* Prikaz podatkov iz sprejemnika 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. Longitude)) { /* gettimeofday (& tv, NULL); EDIT: tv.tv_sec pravzaprav ni časovni žig! */

printf ("zemljepisna širina: %f, dolžina: %f, hitrost: %f, časovni žig: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: Zamenjano tv.tv_sec z gps_data.fix.time} else {printf ("podatki GPS niso na voljo / n"); }}} spanje (3); } / * Ko končate … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); vrniti EXIT_SUCCESS; }

12. korak: sestavite ga

Sestavi
Sestavi

Sestavi!

gcc gps.c -lm -lgps -o gps

Odlično!

./gps

Korak: Kako uporabljati modul GPS s Pythonom (Raspberry Pi)

Kako uporabljati modul GPS s Pythonom (Raspberry Pi)
Kako uporabljati modul GPS s Pythonom (Raspberry Pi)

Naslednjo kodo je priporočljivo izvesti s programom Python 3 in namestiti knjižnico gpsd-py3 ter GPS 2D/3D Fix:

uvoz gpsd

# Povežite se z lokalnim gpsd -jem

gpsd.connect ()

# Pridobite položaj GPS

paket = gpsd.get_current ()

# Za razpoložljive podatke glejte vgrajene dokumente za GpsResponse

tiskanje (packet.position ())

14. korak: Kako uporabljati GSM modul s PPPd (Raspberry Pi)

Kako uporabljati GSM modul s PPPd (Raspberry Pi)
Kako uporabljati GSM modul s PPPd (Raspberry Pi)
Kako uporabljati GSM modul s PPPd (Raspberry Pi)
Kako uporabljati GSM modul s PPPd (Raspberry Pi)
Kako uporabljati GSM modul s PPPd (Raspberry Pi)
Kako uporabljati GSM modul s PPPd (Raspberry Pi)

A) Najprej zamenjajte /boot/overlays/sc16is752-i2c.dtbo in se prepričajte, da I2C deluje pravilno.

  • Zamenjajte sc16is752-i2c.dtbo
  • Konfiguriranje I2C

B) Vnesite ukaz i2cset -y 1 0x16 0x23 0x40 za ponastavitev modula GPRS.

Po zagonu ukaza morate počakati malo, približno 10 sekund

Za ponastavitev lahko uporabite tudi naslednjo metodo.

C) Vnesite ukaz

sudo apt install ppp

za namestitev orodij ppp.

D) Kopirajte/etc/ppp/peers/provider v/etc/ppp/peers/gprs

E) Spremenite/etc/ppp/peers/gprs

  • Vrstica 10: Za uporabnika se obrnite na ponudnika storitev (primer: cmnet).
  • Vrstica 15: Za APN se obrnite na svojega ponudnika storitev (primer: cmnet).
  • Vrstica 18 - Vrstica 24: Priporočena nastavitev

F) Spremenite/etc/chatscripts/gprs (spremenite vrstico 34 v vrstico 35, številka za pogovor morda ni *99#)

G) Vnesite ukaz sudo pppd call gprs za klic.

H) Preverite konfiguracijo ppp pri svojem ponudniku internetnih storitev.

I) Vnesite ukaz ping -I ppp0 8.8.8.8 preizkusite svoje omrežje (če je na voljo internet in je tabela poti pravilna)

J) Naj bo signal GSM dober, sicer bo prišlo do naslednjega.

Korak 15: Kako diagnosticirati svoj modul GSM (Raspberry Pi)

Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)
Kako diagnosticirati svoj modul GSM (Raspberry Pi)

Naslednjo kodo je priporočljivo izvesti s programom Python 3 in namestiti knjižnico smbus:

uvoz serijski čas uvoza uvoz smbus uvozni operater uvoz os

print ("Čakanje na inicializacijo …")

vodilo = smbus. SMBus (1)

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

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

če je ser.isOpen == False:

ser.open () try: print ('-'*60) print ("Inicializacija A9G GPRS modula.") print ("GSM povezovanje …") time.sleep (3) i = 0 medtem ko True: ser.write (str.encode ("AT+CCID / r")) size = ser.inWaiting () če je velikost! = 0: kljukice = time.time () odgovor = ser.read (velikost) ccid = str (odziv, kodiranje = "utf -8 ") print (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) razen KeyboardInterrupt: ser.close ()

Izvlecimo testni skript, na podlagi rezultatov izvedbe lahko diagnosticiramo modul GSM. Na primer, naslednja vrnitev, napaka CME ERROR 53 nam pove, da moč ni dobra. Koda CME = Napake, povezane z opremo GSM

Seveda ima skript tudi funkcijo ponastavitve. Če lahko pravilno prikažete CCID, je ponastavitev končana.

Korak 16: Kako uporabljati Lora TX & RX s C (Raspberry Pi)

Naslednjo kodo je priporočljivo izvesti s programom Python 3 in namestiti knjižnico smbus.

Prenesti ga je treba med dvema vozliščema IOT (A). Vsebine, poslane same od sebe, ni mogoče sprejeti same. Prosimo, da ga shranite kot py skript za izvedbo.

Kako poslati: Ko vnesete podatke v register 0x01 - 0x10, nastavite bit L_TX za začetek pošiljanja podatkov.

import timeimport smbus import os import sys

vodilo = smbus. SMBus (1)

poskusi:

data_list = [170, 85, 165, 90] # zapisati podatke v register, nato pa bodo podatki poslani. za indeks v razponu (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA pošlji podatke v %d register %d podatkov" %(index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) razen KeyboardInterrupt: sys.exit ()

Kako poslati prejem: Preverite bit L_RXNE. Če je nastavljeno, so prispeli novi podatki, je treba to zastavico ročno počistiti

import timeimport smbus import os import sys

vodilo = smbus. SMBus (1)

recv_data =

poskusi:

if bus.read_byte_data (0x16, 0x23) & 0x02: # ročno počistite vodilo L_RXNE.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # odčitajte podatke za indeks v območju (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [indeks - 0x11]))

print ("Prejeti podatki:")

print (recv_data) else: print ("Podatki še niso prejeti ~") razen KeyboardInterrupt: sys.exit ()

Korak 17: Poseben opis pasovne širine I2C

Omejitev hitrosti I2C je 400 kHz zaradi protokola I2C, zato je efektivna pasovna širina ene naprave nižja od 320 kb / s, učinkovita pasovna širina več naprav pa je manjša od 160 kb / s. Omejitev hitrosti mostu I2C UART je 115200 b / s. Ko sta GPS in GSM delujejo hkrati, pasovna širina I2C je nezadostna, ker je 115,2 kb / s * 2 = 230,4 kb / s, zato bodo nekateri podatki prenapolnjeni. Zmanjšanje hitrosti prenosa komunikacije GPS in GSM lahko izboljša pomanjkanje komunikacijske pasovne širine. Zlaganje drugih modulov DockerPi lahko traja dodatna pasovna širina I2C. Običajno je hitrost prenosa podatkov v omrežju počasna, zato pasovna širina GSM ni polna, zato ni težav s prelivom.

18. korak: Končano

Upam, da vam bo všeč in da vam bo uspelo.

najdete ga tukaj:

Amazon

Nočna svetloba: https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4-kanalna relejna plošča: 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 vozlišče (A): https://www.amazon.co.uk/dp/B07TY15M1C HUB senzorja: https:// www. amazon.co.uk/dp/B07TZD8B61 ledeni stolp:

Priporočena: