Sadržaj:
- Supplies
- Korak 1: Karakteristike
- Korak 2: Korak 1: Saznajte o IoT (A) ploči
- Korak 3: Korak 2: Kako ga sastaviti
- Korak 4: Korak 3: Priključite antenu
- Korak 5: Korak 4: Okruženje OS -a i konfiguracije softvera
- Korak 6: Korak 5: Konfiguriranje I2C (Raspberry Pi)
- Korak 7: Korak 6: Saznajte više o podacima registra
- Korak 8:
- Korak 9: Upute:
- Korak 10: Kako koristiti GPS modul s GPS -om (Raspberry Pi)
- Korak 11: Kako koristiti GPS modul sa C (Raspberry Pi)
- Korak 12: Kompajlirajte ga
- Korak 13: Kako koristiti GPS modul s Pythonom (Raspberry Pi)
- Korak 14: Kako koristiti GSM modul s PPPd (Raspberry Pi)
- Korak 15: Kako dijagnosticirati moj GSM modul (Raspberry Pi)
- Korak 16: Kako koristiti Lora TX & RX sa C (Raspberry Pi)
- Korak 17: Poseban opis I2C propusnosti
- Korak 18: Završeno
Video: [Serija Docker Pi] Kako se koristi modul IoT čvora (A) na Raspberry Pi: 18 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Šta je IoT Node (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.
Supplies
1x Raspberry Pi 2B/3B/3B+/4B/3A+/nula/nula W
1x proizvod serije Docker Pi: IoT čvor (A) modul
1x 16GB kartica klase 10 TF
1x napajanje 5V/2.5A (5V@3A za Pi 4B)
Korak 1: Karakteristike
- Docker Pi serija
- Programmable
- Upravljajte direktno (bez programiranja)
- Proširite GPIO pinove
- GPS/BDS podrška
- GSM podrška
- Lora Support
- 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
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.
Tako da možete napraviti komunikacijski uređaj srednjeg dometa pomoću dva od njih.
a možete i 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
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
Za ovaj IoT (A) modul postoje 3 komada antene, jedna od njih je za modul LAR, to je antena tipa SMA, a jedna od njih je dobra za vas, to je antena kvadratnog oblika koja ima IPX priključak. i posljednji je za SIM modul (A9G), to je mala antena koja ima IPX port. povežite antenu i pričvrstite š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 port.
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. Prebrišite svoju TF karticu sa najnovijom slikom pomoću alata za urezivanje
4. Izmijenite /boot/config.txt datoteku 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 da ga raspakirate i stavite u/boot/overlay/folder i zamijenite stari.
6. Ponovo pokrenite svoj Raspberry Pi.
Korak 6: Korak 5: Konfiguriranje I2C (Raspberry Pi)
Pokrenite sudo raspi-config i slijedite upute za instaliranje i2c podrške za ARM jezgru i linux jezgru Idite na Opcije sučelja
Korak 7: Korak 6: Saznajte više o podacima registra
GPRS odeljak
Mala potrošnja energije, struja mirovanja u stanju pripravnosti <1mA2.
Podržava četiri frekvencijska opsega GSM/GPRS, uključujući 850, 900, 1800, 1900MHZ
GPRS klase 10
Podrška za GPRS podatkovnu uslugu, maksimalna brzina prijenosa, preuzimanje 85,6Kbps, upload 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 sekcijaDaljina prijenosa: 500 metara (RF parametri: 0x50 @ China City)
Podržavajte FSK, GFSK, MSK, GMSK, LoRaTM i OOK metode modulacije
Izuzetno visoka osjetljivost prijemnika do -141 dBm
Podrška otkrivanju preambule
Paketni motor sa CRC -om, do 256 bajtova
Indikator primopredajnika LORA
Easy TX/RX by Docker Pi
Korak 8:
A9G modul
A9G modul nudi dva serijska porta.
Za komunikaciju koristite I2C UART most.
Naziv modula serijskog porta
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Registrirajte kartu
- Registrirajte adresu Funkcija Vrijednost
- 0x01 LORA_TX1 Lora TX međuspremnik 1 - korisnički podaci
- 0x02 LORA_TX2 Lora TX tampon 2 - korisnički podaci
- 0x03 LORA_TX3 Lora TX Buffer 3 - Korisnički podaci
- 0x04 LORA_TX4 Lora TX Buffer 4 - Korisnički podaci
- 0x05 LORA_TX5 Lora TX tampon 5 - korisnički podaci
- 0x06 LORA_TX6 Lora TX tampon 6 - korisnički podaci
- 0x07 LORA_TX7 Lora TX tampon 7 - korisnički podaci
- 0x08 LORA_TX8 Lora TX tampon 8 - korisnički podaci
- 0x09 LORA_TX9 Lora TX Buffer 9 - Korisnički podaci
- 0x0a LORA_TX10 Lora TX tampon 10 - korisnički podaci
- 0x0b LORA_TX11 Lora TX Buffer 11 - Korisnički podaci
- 0x0c LORA_TX12 Lora TX Buffer 12 - Korisnički podaci
- 0x0d LORA_TX13 Lora TX tampon 13 - korisnički podaci
- 0x0e LORA_TX14 Lora TX Buffer 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 tampon 2 - korisnički podaci
- 0x13 LORA_RX3 Lora RX tampon 3 - korisnički podaci
- 0x14 LORA_RX4 Lora RX međuspremnik 4 - korisnički podaci
- 0x15 LORA_RX5 Lora RX tampon 5 - korisnički podaci
- 0x16 LORA_RX6 Lora RX međuspremnik 6 - korisnički podaci
- 0x17 LORA_RX7 Lora RX tampon 7 - korisnički podaci
- 0x18 LORA_RX8 Lora RX tampon 8 - korisnički podaci
- 0x19 LORA_RX9 Lora RX tampon 9 - korisnički podaci
- 0x1a LORA_RX10 Lora RX tampon 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 tampon 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:
L_SET (samo za pisanje)
- Napišite 1 za postavljanje parametara od 0x22 do LORA modula.
- Napiši 0 nije efekat
G_RESET (samo za pisanje)
- Napišite 1 za resetiranje A9G modula
- Napiši 0 nije efekat
L_RXNE (Čitanje i pisanje)
- Napiši 1 uzrok greške
- Napišite 0 za brisanje
- 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 efekat
Korak 10: Kako koristiti GPS modul s GPS -om (Raspberry Pi)
Kako koristiti GPS modul s gpsd (Raspberry Pi)
Prvo 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 # Ponovo pokrenite gpsd uslugu. os.system ("sudo systemctl restart gpsd.socket") # Otvorite serijski port ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 ako je ser.isOpen == Netačno: ser.open () pokušajte: print ("Uključi GPS …") dok je True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () ako je veličina! = 0: tiks = vrijeme.vreme () 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 ()
Sačuvajte ga i izvršite:
python3 GPS.py
Korak 11: Kako koristiti GPS modul sa C (Raspberry Pi)
Instalirajte gpsd alate
sudo apt-get install libgps-dev
Kreirajte izvorni kod i dajte mu ime "gps.c"
#include #include #include
#include
#include
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)); return 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)) { / * pročitajte podatke * / if ((rc = gps_read (& gps_data)) == -1) {printf ("došlo je do greške pri čitanju GPS podaci. kôd: %d, razlog: %s / n ", rc, gps_errstr (rc)); } else { /* Prikažite podatke sa 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 ("geografska širina: %f, 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); return EXIT_SUCCESS; }
Korak 12: Kompajlirajte ga
Kompilacija!
gcc gps.c -lm -lgps -o gps
Exec It!
./GPS
Korak 13: Kako koristiti GPS modul s Pythonom (Raspberry Pi)
Sljedeći kôd se preporučuje za izvršavanje pomoću Pythona 3 i instaliranje biblioteke gpsd-py3 i GPS 2D/3D Fix:
import gpsd
# Povežite se na lokalni gpsd
gpsd.connect ()
# Dobijte GPS poziciju
paket = gpsd.get_current ()
# Za dostupne podatke pogledajte inline dokumente za GpsResponse
ispis (packet.position ())
Korak 14: 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, morate 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: Obratite se svom davatelju usluga za apn (Primjer: cmnet).
- Red 18 - Red 24: Preporučena postavka
F) Izmijenite/etc/chatscripts/gprs (Promijenite red 34 u red 35, broj za dijalog možda nije *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 tabela ruta je ispravna)
J) Održavajte GSM signal dobrim, u protivnom će se dogoditi sljedeće.
Korak 15: Kako dijagnosticirati moj GSM modul (Raspberry Pi)
Sljedeći kôd se preporučuje za izvršavanje pomoću Pythona 3 i instaliranje smbus biblioteke:
import serialimport time import smbus import operator 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 ("Pokretanje 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šimo testnu skriptu, na osnovu 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 sa C (Raspberry Pi)
Sljedeći kod se preporučuje za izvršavanje pomoću Pythona 3 i instaliranje smbus biblioteke.
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 sačuvate kao py skriptu za izvršavanje.
Kako poslati: Nakon popunjavanja podataka u registar 0x01 - 0x10, postavite L_TX bit za početak slanja podataka.
import timeimport smbus import os import sys
sabirnica = smbus. SMBus (1)
probaj:
data_list = [170, 85, 165, 90] # upisivanje 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 prijem: 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 =
probaj:
if bus.read_byte_data (0x16, 0x23) & 0x02: # ručno obrišite L_RXNE bus.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 efektivna 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 preplavljeni. Smanjenje brzine prijenosa GPS i GSM komunikacije može poboljšati nedostatak komunikacijske propusnosti. Slaganje drugih DockerPi modula može zauzeti dodatna propusnost I2C. Obično je brzina mrežnih podataka spora, pa GSM propusnost nije puna, tako da nema problema s prelijevanjem.
Korak 18: Završeno
Nadam se da će vam se dopasti i uspeti.
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čuje se:
Docker Pi serija senzorskih čvorišta O IOT -u: 13 koraka
Docker Pi serija senzorskih čvorišta O IOT -u: Pozdrav, momci. Danas je gotovo sve vezano za IOT. Nema sumnje u to, naša ploča serije DockerPi podržava i IOT. Danas želim predstaviti DockerPi seriju SensorHub -a kako da se primijenim na IOT na vas. Pokrećem ovu stavku koja se temelji na
Rotacijski koder: Kako funkcionira i kako se koristi s Arduinom: 7 koraka
Rotacijski koder: Kako funkcionira i kako se koristi s Arduinom: Ovaj i druge nevjerojatne vodiče možete pročitati na službenoj web stranici ElectroPeak -a Pregled U ovom vodiču ćete saznati kako se koristi rotacijski koder. Prvo ćete vidjeti neke informacije o rotacijskom koderu, a zatim ćete naučiti kako
Komunikacija između Arduina i čvora: 4 koraka
Komunikacija između Arduina i čvora: Ovo uputstvo služi samo za osnovnu demonstraciju načina slanja i primanja podataka putem UART -a (serijskog) između dvije Arduino kompatibilne ploče
Dnevni mjerač vremena pomoću čvora Crveno s trajnom memorijom: 6 koraka
Dnevni tajmer pomoću crvenog čvora s trajnom memorijom: Node-red često koristim za svoje projekte kućne automatizacije. nisam programer po progesiji, ali uz pomoć različitih saradnika pokušavam konfigurirati stvari prema svojim potrebama. Ponekad uspije, a ponekad ne:) Za jedno o
Google Vision API pomoću Raspberry Pi i čvora: 11 koraka
Google Vision API koristeći Raspberry Pi i Node: Ovo je početni vodič za korištenje Google Vision API -ja. Koristi sljedeću Raspberry Pi Zero W Arch Linux NodeJS internetsku vezu Ne znate Arch Linux? Ili kako postaviti Raspberry Pi? Bez brige, napisao sam niz članaka koji