Sadržaj:

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

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

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

Š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

Karakteristike
Karakteristike
Karakteristike
Karakteristike
Karakteristike
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

Korak 1: Saznajte o IoT (A) ploči
Korak 1: Saznajte o IoT (A) ploči
Korak 1: Saznajte o IoT (A) ploči
Korak 1: Saznajte o IoT (A) ploči
Korak 1: Saznajte o IoT (A) ploči
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

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 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)

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

Instrukcije
Instrukcije

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 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)

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

Compile It
Compile It

Kompilacija!

gcc gps.c -lm -lgps -o gps

Exec It!

./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 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)

Kako se koristi GSM modul sa PPPd (Raspberry Pi)
Kako se koristi GSM modul sa PPPd (Raspberry Pi)
Kako se koristi GSM modul sa PPPd (Raspberry Pi)
Kako se koristi GSM modul sa PPPd (Raspberry Pi)
Kako se koristi GSM modul sa PPPd (Raspberry Pi)
Kako se koristi GSM modul sa 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)

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