Sadržaj:

[Serija Docker Pi] Kako koristiti modul IoT čvora (A) na Raspberry Pi: 18 koraka
[Serija Docker Pi] Kako koristiti modul IoT čvora (A) na Raspberry Pi: 18 koraka

Video: [Serija Docker Pi] Kako koristiti modul IoT čvora (A) na Raspberry Pi: 18 koraka

Video: [Serija Docker Pi] Kako koristiti modul IoT čvora (A) na Raspberry Pi: 18 koraka
Video: Три кота | Сборник № 10 | Серия 91 - 100 2024, Srpanj
Anonim
[Serija Docker Pi] Kako se koristi modul IoT čvora (A) na Raspberry Pi
[Serija Docker Pi] Kako se koristi modul IoT čvora (A) na Raspberry Pi

Što je IoT čvor (A) modul?

IoT čvor (A) jedan je od modula serije Docker Pi.

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

I2C izravno kontrolira Loru, šalje i prima podatke, kontrolira GSM/GPS/BDS modul putem SC16IS752, matičnoj ploči je potrebna samo I2C podrška.

Podržite Raspberry Pi i druge slične proizvode.

Pribor

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

1x proizvod serije Docker Pi: IoT čvor (A) modul

1x 16 GB kartica razreda 10 TF

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

Korak 1: Značajke

Značajke
Značajke
Značajke
Značajke
Značajke
Značajke
  • Docker Pi serija
  • Mogućnost programiranja
  • Upravljajte izravno (bez programiranja)
  • Proširite GPIO pinove
  • GPS/BDS podrška
  • GSM podrška
  • Lora podrška
  • Mogu se slagati s drugim pločama za slaganje
  • Neovisno o hardveru matične ploče (potrebna je I2C podrška)

Korak 2: Korak 1: Saznajte o IoT (A) ploči

1. korak: Saznajte o IoT (A) ploči
1. korak: Saznajte o IoT (A) ploči
1. korak: Saznajte o IoT (A) ploči
1. korak: Saznajte o IoT (A) ploči
1. korak: Saznajte o IoT (A) ploči
1. korak: Saznajte o IoT (A) ploči

IoT čvor (A) jedan je od modula serije Docker Pi.

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

I2C izravno kontrolira Loru, šalje i prima podatke, kontrolira GSM/GPS/BDS modul putem SC16IS752, matičnoj ploči je potrebna samo I2C podrška. Podrška Raspberry Pi i drugim sličnim proizvodima.

Dakle, možete napraviti komunikacijski uređaj srednjeg dometa pomoću dva od njih.

a također možete locirati lokaciju svog uređaja pomoću ugrađenog GPS modula.

Umetnite SIM karticu, postat će odašiljačka stanica putem SMS poruke.

Korak 3: Korak 2: Kako ga sastaviti

Korak 2: Kako ga sastaviti
Korak 2: Kako ga sastaviti
Korak 2: Kako ga sastaviti
Korak 2: Kako ga sastaviti

Sastaviti ga je vrlo jednostavno zbog "HAT" dizajna, samo ga stavite na malinu pi i spojite ga putem GPIO pinova, poput "šešira" na malini pi, tako da ne morate dodavati masu žica.

Korak 4: Korak 3: Priključite antenu

Korak 3: Priključite antenu
Korak 3: Priključite antenu
Korak 3: Priključite antenu
Korak 3: Priključite antenu
Korak 3: Priključite antenu
Korak 3: Priključite antenu

Za ovaj IoT (A) modul postoje 3 komada antene, jedna od njih je za modul loar, to je antena tipa SMA, a jedna od njih je dobra za vas, to je antena kvadratne kutije koja ima IPX priključak. i posljednji je za SIM modul (A9G). To je sićušna antena koja ima IPX priključak. spojite antenu i montirajte šešir na svoj maline pi.

Kako sastaviti Montirajte ploču Iot Node (A) na Raspberry Pi

Povežite GPS antanu i Lora antanu na IPX port.

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

Privija GPRS antanu na SMA priključak.

Korak 5: Korak 4: Okruženje OS -a i konfiguracije softvera

U ovom koraku morate učiniti sljedeće:

1. Preuzmite najnoviju datoteku slike sa: www.raspberrypi.org/downloads

2. Raspakirajte ga.

3. Bljeskajte svoju TF karticu s najnovijom slikom pomoću alata za baciranje

4. Izmijenite datoteku /boot/config.txt i dodajte ovaj odlomak.

dtoverlay = sc16is752-i2c

5. Zamjenjuje /boot/overlay/sc16is752-i2c.dtbo datoteku ovom datotekom:

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

PS: Zapamtite, raspakirajte ga i stavite u mapu/boot/overlay/i zamijenite staru.

6. Ponovo pokrenite svoj Raspberry Pi.

Korak 6: Korak 5: Konfiguriranje I2C (Raspberry Pi)

Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)
Korak 5: Konfiguriranje I2C (Raspberry Pi)

Pokrenite sudo raspi-config i slijedite upute za instaliranje i2c podrške za ARM jezgru i jezgru Linux-a Idite na Opcije sučelja

Korak 7: Korak 6: Upoznajte se s podacima o registru

GPRS odjeljak

Mala potrošnja energije, struja mirovanja u stanju pripravnosti <1mA2.

Podrška za GSM/GPRS četiri frekvencijska područja, uključujući 850, 900, 1800, 1900MHZ

GPRS klase 10

Podržite GPRS podatkovnu uslugu, maksimalna brzina prijenosa, preuzmite 85,6Kbps, postavite 42,8Kbps

Podržavajte standardne naredbe GSM07.07, 07.05 AT i pristupite serijskom portu putem konverzije I2C sučelja

AT naredbe podržavaju standardne AT i TCP/IP naredbene portove

GPS odjeljak Podržava BDS/GPS pozicioniranje zglobova

Podrška A-GPS, A-BDS

Podržava standardnu SIM karticu

LORA odjeljakDaljina prijenosa: 500 metara (RF parametri: 0x50 @ China City)

Podržavajte FSK, GFSK, MSK, GMSK, LoRaTM i OOK modulacijske metode

Izuzetno visoka osjetljivost prijemnika do -141 dBm

Podrška otkrivanju preambule

Paketni motor s CRC -om, do 256 bajtova

Indikator primopredajnika LORA

Jednostavan TX/RX od Docker Pi

Korak 8:

Modul A9G

A9G modul nudi dva serijska porta.

Za komunikaciju koristite I2C UART most.

Naziv modula serijskog porta

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

Mapa registra

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

Korak 9: Upute:

Upute
Upute

L_SET (samo za pisanje)

  • Napišite 1 za postavljanje parametara od 0x22 do LORA modula.
  • Napiši 0 nije učinak

G_RESET (samo za pisanje)

  • Napišite 1 za resetiranje A9G modula
  • Napiši 0 nije učinak

L_RXNE (Čitanje i pisanje)

  • Napišite 1 uzrok pogreške
  • Za brisanje napišite 0
  • Pročitajte 1 znači da su podaci primljeni, podatke preuzmite iz registra 0x11 - 0x20.
  • Čitanje 0 znači da trenutno nema dostupnih podataka.

L_SET (samo za pisanje)

  • Napišite 1 za slanje podataka, prije slanja unesite podatke u registar 0x01 - 0x10.
  • Napiši 0 nije učinak

Korak 10: Kako koristiti GPS modul s GPS -om (Raspberry Pi)

Kako koristiti GPS modul s GPS -om (Raspberry Pi)
Kako koristiti GPS modul s GPS -om (Raspberry Pi)
Kako koristiti GPS modul s GPS -om (Raspberry Pi)
Kako koristiti GPS modul s GPS -om (Raspberry Pi)
Kako koristiti GPS modul s GPS -om (Raspberry Pi)
Kako koristiti GPS modul s GPS -om (Raspberry Pi)

Kako koristiti GPS modul s gpsd (Raspberry Pi)

Najprije zamijenite /boot/overlays/sc16is752-i2c.dtbo i provjerite radi li I2C ispravno.

  • Zamijenite sc16is752-i2c.dtbo
  • Konfiguriranje I2C
  • Instalirajte gpsd alate.

Otvorite terminal i upišite ovu naredbu:

sudo apt instalirajte gpsd gpsd-klijente

Izmijenite/etc/default/gpsd datoteku i dodajte sljedeće parametre:

  • UREĐAJI = "/dev/ttySC1"
  • GPSD_OPTIONS = "-F /var/run/gpsd.sock"

Unesite naredbu i2cset -y 1 0x16 0x23 0x40 za resetiranje GPRS modula.

Python skripta za otvoreni GPS:

import serialimport os import time # Ponovno pokrenite gpsd uslugu. os.system ("sudo systemctl restart gpsd.socket") # Otvorite serijski port ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open () try: print ("Uključi GPS …") dok je True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () if size! = 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 ("Čekanje GPS -a je omogućeno, ako je vrijeme predugo, testirajte na otvorenom:" + str (i)) ser.flushInput () time.sleep (1) osim KeyboardInterrupt: ser.flushInput () ser.close ()

Spremite ga i izvršite:

python3 GPS.py

Korak 11: Kako koristiti GPS modul s C (Raspberry Pi)

Instalirajte gpsd alate

sudo apt-get install libgps-dev

Izradite izvorni kod i dajte mu ime "gps.c"

#include #include #include

#uključi

#uključi

int main ()

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

dok (1)

{ / * pričekajte 2 sekunde da primite podatke * / if (gps_waiting (& gps_data, 2000000)) { / * čitanje podataka * / if ((rc = gps_read (& gps_data)) == -1) {printf ("došlo je do pogreške pri čitanju GPS podaci. kôd: %d, razlog: %s / n ", rc, gps_errstr (rc)); } else { /* Prikaz podataka s GPS prijemnika. */ 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 zapravo nije vremenska oznaka! */

printf ("zemljopisna širina: %f, zemljopisna dužina: %f, brzina: %f, vremenska oznaka: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: Zamijenjeno tv.tv_sec sa gps_data.fix.time} else {printf ("nema dostupnih GPS podataka / n"); }}} spavanje (3); } / * Kad završite … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); povrat EXIT_SUCCESS; }

Korak 12: Sastavite ga

Sastavi ga
Sastavi ga

Sastaviti!

gcc gps.c -lm -lgps -o gps

Izvrsno!

./gps

Korak 13: Kako koristiti GPS modul s Pythonom (Raspberry Pi)

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

Sljedeći se kôd preporučuje izvršiti pomoću Pythona 3 i instalirati biblioteku gpsd-py3 i GPS 2D/3D Fix:

uvoz gpsd

# Povežite se s lokalnim gpsd -om

gpsd.connect ()

# Dobijte GPS poziciju

paket = gpsd.get_current ()

# Za dostupne podatke pogledajte ugrađene dokumente za GpsResponse

ispis (packet.position ())

Korak 14: Kako koristiti GSM modul s PPPd (Raspberry Pi)

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

A) Prvo zamijenite /boot/overlays/sc16is752-i2c.dtbo i provjerite radi li I2C ispravno.

  • Zamijenite sc16is752-i2c.dtbo
  • Konfiguriranje I2C

B) Unesite naredbu i2cset -y 1 0x16 0x23 0x40 za resetiranje GPRS modula.

Nakon pokretanja naredbe potrebno je pričekati malo, oko 10 sekundi

Za resetiranje možete koristiti i sljedeću metodu.

C) Unesite naredbu

sudo apt install ppp

za instaliranje ppp alata.

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

E) Izmijenite/etc/ppp/peers/gprs

  • Red 10: Za korisnika se obratite svom davatelju usluga (Primjer: cmnet).
  • Red 15: Za apn se obratite svom davatelju usluga (Primjer: cmnet).
  • Redak 18 - Red 24: Preporučena postavka

F) Izmijenite/etc/chatscripts/gprs (Promijenite redak 34 u redak 35, broj za razgovor može biti NE *99#)

G) Unesite naredbu sudo pppd call gprs za biranje.

H) Provjerite svoju ppp konfiguraciju od svog ISP -a.

I) Unesite naredbu ping -I ppp0 8.8.8.8 testirajte svoju mrežu (ako je Internet dostupan i tablica ruta je točna)

J) Održavajte GSM signal dobrim, u protivnom će se dogoditi sljedeće.

Korak 15: Kako dijagnosticirati moj GSM modul (Raspberry Pi)

Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Kako dijagnosticirati moj GSM modul (Raspberry Pi)

Sljedeći se kôd preporučuje izvršiti pomoću Pythona 3 i instalirati knjižnicu smbus:

import serialimport time import smbus operator uvoza import os

print ("Čeka se inicijalizacija …")

sabirnica = smbus. SMBus (1)

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

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

ako je ser.isOpen == Netačno:

ser.open () try: print ('-'*60) print ("Inicijalizacija A9G GPRS modula.") print ("GSM povezivanje …") time.sleep (3) i = 0 dok je 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 ") print (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) osim KeyboardInterrupt: ser.close ()

Izvršite testnu skriptu, na temelju rezultata implementacije, možemo dijagnosticirati GSM modul. Na primjer, sljedeći povratak, greška CME ERROR 53 govori nam da napajanje nije dobro. CME kôd = Greške povezane s GSM opremom

Naravno, skripta ima i funkciju resetiranja. Ako možete ispravno prikazati CCID, resetiranje je dovršeno.

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

Sljedeći se kôd preporučuje izvršiti pomoću Pythona 3 i instalirati smbus knjižnicu.

Mora se prenijeti između dva IOT čvora (A). Sadržaj koji se šalje sam po sebi ne može se primiti. Molimo vas da ga spremite kao py skriptu za izvršavanje.

Kako poslati: Nakon što unesete podatke u registar 0x01 - 0x10, postavite L_TX bit za početak slanja podataka.

import timeimport smbus import os import sys

sabirnica = smbus. SMBus (1)

probati:

data_list = [170, 85, 165, 90] # upis podataka za registraciju, a zatim će se podaci poslati. za indeks u rasponu (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA šalje podatke u %d registar %d podataka" %(index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) osim KeyboardInterrupt: sys.exit ()

Kako poslati primanje: Provjerite L_RXNE bit, Ako je postavljeno, stigli su novi podaci, ovu zastavicu morate ručno očistiti

import timeimport smbus import os import sys

sabirnica = smbus. SMBus (1)

recv_data =

probati:

if bus.read_byte_data (0x16, 0x23) & 0x02: # ručno obrišite L_RXNE sabirnicu.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # očitavanje podataka za indeks u rasponu (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [indeks - 0x11]))

print ("Primljeni podaci:")

print (recv_data) else: print ("Još nema primljenih podataka ~") osim KeyboardInterrupt: sys.exit ()

Korak 17: Poseban opis I2C propusnosti

Ograničenje brzine I2C je 400kHz, zbog I2C protokola, pa je djelotvorna propusnost jednog uređaja niža od 320kbps, efektivna širina pojasa više uređaja je manja od 160kbps. Ograničenje brzine I2C UART mosta je 115200bps. Kada su GPS i GSM rade u isto vrijeme, I2C propusnost je nedovoljna, jer je 115,2kbps * 2 = 230,4kbps, pa će neki podaci biti prekomjerni. Smanjenje brzine prijenosa GPS i GSM komunikacije može poboljšati nedostatak komunikacijske propusnosti. Slaganje drugih DockerPi modula može zauzeti dodatna I2C propusnost. Obično je brzina mrežnih podataka spora, pa GSM propusnost nije puna, pa nema problema s prelijevanjem.

Korak 18: Završeno

Nadam se da će vam se svidjeti i uspjeti.

možete ga pronaći ovdje:

Amazon

Noćno svjetlo: 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 čvor (A): https://www.amazon.co.uk/dp/B07TY15M1C HUB senzora: https:// www. amazon.co.uk/dp/B07TZD8B61 ledeni toranj:

Preporučeni: