Taula de continguts:

[Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi: 18 passos
[Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi: 18 passos

Vídeo: [Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi: 18 passos

Vídeo: [Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi: 18 passos
Vídeo: Experience PACMAN-RTX like never before: Mind-blowing graphics and gameplay! ☺🎮📱 2024, Juliol
Anonim
[Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi
[Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi

Què és el mòdul IoT Node (A)?

IoT Node (A) és un dels mòduls de la sèrie Docker Pi.

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

I2C controla directament Lora, envia i rep dades, controla el mòdul GSM / GPS / BDS mitjançant SC16IS752, la placa base només necessita suport I2C.

Admet Raspberry Pi i altres productes similars.

Subministraments

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

1 producte de la sèrie Docker Pi: mòdul IoT Node (A)

1x targeta TF de 16 GB classe 10

Alimentació 1x 5V / 2.5A (5V @ 3A per Pi 4B)

Pas 1: funcions

Característiques
Característiques
Característiques
Característiques
Característiques
Característiques
  • Sèrie Docker Pi
  • Programable
  • Control directament (sense programació)
  • Amplieu els pins GPIO
  • Suport GPS / BDS
  • Suport GSM
  • Suport de Lora
  • Es pot apilar amb un altre tauler de pila
  • Independent del maquinari de la placa base (requereix suport I2C)

Pas 2: pas 1: coneixeu el tauler IoT (A)

Pas 1: coneixeu el tauler IoT (A)
Pas 1: coneixeu el tauler IoT (A)
Pas 1: coneixeu el tauler IoT (A)
Pas 1: coneixeu el tauler IoT (A)
Pas 1: coneixeu el tauler IoT (A)
Pas 1: coneixeu el tauler IoT (A)

IoT Node (A) és un dels mòduls de la sèrie Docker Pi.

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

I2C controla directament Lora, envia i rep dades, controla el mòdul GSM / GPS / BDS mitjançant SC16IS752, la placa base només necessita suport I2C. Suporta Raspberry Pi i altres productes similars.

Per tant, podeu crear un dispositiu de comunicació de rang mitjà utilitzant-ne dos.

i també podeu localitzar la ubicació del dispositiu mitjançant el mòdul GPS integrat.

Inseriu una targeta SIM, es convertirà en una emissora mitjançant missatge SMS.

Pas 3: Pas 2: Com muntar-lo

Pas 2: Com muntar-lo
Pas 2: Com muntar-lo
Pas 2: Com muntar-lo
Pas 2: Com muntar-lo

És molt fàcil muntar-lo a causa del seu disseny "HAT", simplement el poseu al raspberry pi i el connecteu mitjançant pins GPIO, com si fos un "barret" al raspberry pi, de manera que no hagueu d'afegir la massa filferro.

Pas 4: Pas 3: Connecteu l'antena

Pas 3: connecteu l'antena
Pas 3: connecteu l'antena
Pas 3: connecteu l'antena
Pas 3: connecteu l'antena
Pas 3: connecteu l'antena
Pas 3: connecteu l'antena

Hi ha 3 peces d'antena per a aquest mòdul IoT (A), una d'elles per al mòdul loar, és una antena tipus SMA i una d'elles és bona per al vostre GPS, és una antena de caixa quadrada que té port IPX. i l'últim és per al mòdul SIM (A9G), és una antena petita que té un port IPX. connecteu l'antena i munteu el barret al vostre raspberry pi.

Muntatge de la placa Iot Node (A) a Raspberry Pi

Connexió antana GPS i antora Lora al port IPX.

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

Cargola l'antana GPRS al port SMA.

Pas 5: Pas 4: Configuració de l'entorn i del programari del SO

En aquest pas, heu de fer aquestes coses:

1. Baixeu el fitxer d’imatges més recent a: www.raspberrypi.org/downloads

2. Descomprimiu-lo.

3. Feu flaixar la vostra targeta TF amb la imatge més recent a través de l'eina de gravador

4. Modifiqueu el fitxer /boot/config.txt i afegiu aquest paràgraf.

dtoverlay = sc16is752-i2c

5. Substitueix el fitxer /boot/overlay/sc16is752-i2c.dtbo per aquest fitxer:

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

PD: recordeu que la descomprimiu i la poseu a la carpeta / boot / overlay / i substitueix l’antiga.

6. Reinicieu el Raspberry Pi.

Pas 6: Pas 5: Configuració de l'I2C (Raspberry Pi)

Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)
Pas 5: Configuració de l'I2C (Raspberry Pi)

Executeu sudo raspi-config i seguiu les instruccions per instal·lar el suport i2c per al nucli ARM i el nucli Linux Aneu a Opcions d'interfície

Pas 7: pas 6: coneixeu la informació del registre

Secció GPRS

Baix consum d’energia, corrent d’espera en espera <1mA2.

Suporta quatre bandes de freqüència GSM / GPRS, incloses les 850, 900, 1800, 1900 MHz

GPRS Classe 10

Suport al servei de dades GPRS, velocitat màxima de dades, descàrrega de 85,6 kbps, càrrega de 42,8 kbps

Admet les ordres GSM07.07, 07.05 AT estàndard i accedeix al port sèrie mitjançant la conversió de la interfície I2C

Les ordres AT admeten ports d’ordres estàndard AT i TCP / IP

Secció GPS Suport de posicionament de conjunts BDS / GPS

Suport A-GPS, A-BDS

Suporta targeta SIM estàndard

Secció LORA Distància de transmissió: 500 metres (paràmetres RF: 0x50 @ China City)

Admet mètodes de modulació FSK, GFSK, MSK, GMSK, LoRaTM i OOK

Sensibilitat del receptor ultra alta fins a -141 dBm

Suporta la detecció de preàmbuls

Motor de paquets amb CRC, fins a 256 bytes

Indicador transceptor LORA

Easy TX / RX de Docker Pi

Pas 8:

Mòdul A9G

El mòdul A9G ofereix dos ports sèrie.

Utilitzeu el pont UART I2C per a la comunicació.

Nom del mòdul del port sèrie

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

Mapa de registre

  • Valor de la funció d’adreça de registre
  • 0x01 LORA_TX1 Lora TX Buffer 1 - Dades d'usuari
  • 0x02 LORA_TX2 Lora TX Buffer 2: dades d'usuari
  • 0x03 LORA_TX3 Lora TX Buffer 3 - Dades d'usuari
  • 0x04 LORA_TX4 Lora TX Buffer 4 - Dades d'usuari
  • 0x05 LORA_TX5 Lora TX Buffer 5: dades d'usuari
  • 0x06 LORA_TX6 Lora TX Buffer 6: dades d'usuari
  • 0x07 LORA_TX7 Lora TX Buffer 7 - Dades d'usuari
  • 0x08 LORA_TX8 Lora TX Buffer 8 - Dades d'usuari
  • 0x09 LORA_TX9 Lora TX Buffer 9: dades d'usuari
  • 0x0a LORA_TX10 Lora TX Buffer 10 - Dades d'usuari
  • 0x0b LORA_TX11 Lora TX Buffer 11 - Dades d'usuari
  • 0x0c LORA_TX12 Lora TX Buffer 12 - Dades d'usuari
  • 0x0d LORA_TX13 Lora TX Buffer 13 - Dades d'usuari
  • 0x0e LORA_TX14 Lora TX Buffer 14 - Dades d'usuari
  • 0x0f LORA_TX15 Lora TX Buffer 15 - Dades d'usuari
  • 0x10 LORA_TX16 Lora TX Buffer 16 - Dades d'usuari
  • 0x11 LORA_RX1 Lora RX Buffer 1 - Dades d'usuari
  • 0x12 LORA_RX2 Lora RX Buffer 2: dades d'usuari
  • 0x13 LORA_RX3 Lora RX Buffer 3 - Dades d'usuari
  • 0x14 LORA_RX4 Lora RX Buffer 4 - Dades d'usuari
  • 0x15 LORA_RX5 Lora RX Buffer 5: dades d'usuari
  • 0x16 LORA_RX6 Lora RX Buffer 6: dades d'usuari
  • 0x17 LORA_RX7 Lora RX Buffer 7: dades d'usuari
  • 0x18 LORA_RX8 Lora RX Buffer 8: dades d'usuari
  • 0x19 LORA_RX9 Lora RX Buffer 9: dades d'usuari
  • 0x1a LORA_RX10 Lora RX Buffer 10: dades d'usuari
  • 0x1b LORA_RX11 Lora RX Buffer 11 - Dades d'usuari
  • 0x1c LORA_RX12 Lora RX Buffer 12 - Dades d'usuari
  • 0x1d LORA_RX13 Lora RX Buffer 13 - Dades d'usuari
  • 0x1e LORA_RX14 Lora RX Buffer 14: dades d'usuari
  • 0x1f LORA_RX15 Lora RX Buffer 15 - Dades d'usuari
  • 0x20 LORA_RX16 Lora RX Buffer 16: dades d'usuari
  • 0x01 - 0x10 només d'escriptura.
  • 0x11 - 0x20 només de lectura.

Pas 9: instruccions:

Instruccions
Instruccions

L_SET (només d'escriptura)

  • Escriviu 1 per establir paràmetres de 0x22 al mòdul LORA.
  • Escriu 0 sense efecte

G_RESET (només d'escriptura)

  • Escriviu 1 per restablir el mòdul A9G
  • Escriu 0 sense efecte

L_RXNE (llegir i escriure)

  • Escriviu 1 error de causa
  • Escriu 0 per esborrar
  • Llegir 1 significa que s'han rebut dades. Obteniu les dades del registre 0x11 - 0x20.
  • Llegir 0 significa que ara no hi ha dades disponibles.

L_SET (només d'escriptura)

  • Escriviu 1 per enviar dades, empleneu les dades del registre 0x01 - 0x10 abans d'enviar-les.
  • Escriu 0 sense efecte

Pas 10: Com utilitzar el mòdul GPS amb GPS (Raspberry Pi)

Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)
Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)
Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)
Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)
Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)
Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)

Com s'utilitza el mòdul GPS amb GPS (Raspberry Pi)

Primer, substituïu el fitxer /boot/overlays/sc16is752-i2c.dtbo i assegureu-vos que I2C funciona correctament.

  • Substitueix sc16is752-i2c.dtbo
  • Configurant I2C
  • Instal·leu eines gpsd.

Obriu un terminal i escriviu aquesta ordre:

sudo apt install gpsd gpsd-clients

Modifiqueu el fitxer / etc / default / gpsd i afegiu els paràmetres següents:

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

Introduïu l'ordre i2cset -y 1 0x16 0x23 0x40 per restablir el mòdul GPRS.

Script Python per a GPS obert:

import serialimport os import time # Reinicieu el servei gpsd. os.system ("sudo systemctl reinicia gpsd.socket") # Obre el port sèrie ser = serial. Serial ('/ dev / ttySC0', 115200) i = 0 si ser.isOpen == False: ser.open () prova: print ("Activa el GPS …") mentre és 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, coding = "utf-8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Waiting GPS Enable, If the time is too long, Please test outdoor:" + str (i)) ser.flushInput () time.sleep (1) except KeyboardInterrupt: ser.flushInput () ser.close ()

Deseu-lo i executeu-lo:

python3 GPS.py

Pas 11: Com utilitzar el mòdul GPS amb C (Raspberry Pi)

Instal·leu eines gpsd

sudo apt-get install libgps-dev

Creeu el codi font i anomeneu-lo "gps.c"

#include #include #include

#incloure

#incloure

int main ()

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

mentre que (1)

{/ * espereu 2 segons per rebre dades * / if (gps_waiting (& gps_data, 2000000)) {/ * llegir dades * / if ((rc = gps_read (& gps_data)) == -1) {printf ("s'ha produït un error en llegir dades gps. codi:% d, motiu:% s / n ", rc, gps_errstr (rc)); } else {/ * Mostra les dades del receptor 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); EDITAR: tv.tv_sec no és en realitat la marca de temps. * /

printf ("latitud:% f, longitud:% f, velocitat:% f, marca de temps:% lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: S'ha substituït tv.tv_sec per gps_data.fix.time} else {printf ("no hi ha dades GPS disponibles / n"); }}} dormir (3); } / * Quan hàgiu acabat … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); torna EXIT_SUCCESS; }

Pas 12: Compileu-lo

Compila-ho
Compila-ho

Compila!

gcc gps.c -lm -lgps -o gps

Exec It!

./gps

Pas 13: Com utilitzar el mòdul GPS amb Python (Raspberry Pi)

Com s'utilitza el mòdul GPS amb Python (Raspberry Pi)
Com s'utilitza el mòdul GPS amb Python (Raspberry Pi)

Es recomana executar el codi següent mitjançant Python 3 i instal·lar la biblioteca gpsd-py3 i el GPS 2D / 3D Fix:

importar gpsd

# Connecteu-vos al GPS local

gpsd.connect ()

# Obteniu la posició GPS

paquet = gpsd.get_current ()

# Vegeu els documents en línia de GpsResponse per obtenir les dades disponibles

print (packet.position ())

Pas 14: Com utilitzar el mòdul GSM amb PPPd (Raspberry Pi)

Com s'utilitza el mòdul GSM amb PPPd (Raspberry Pi)
Com s'utilitza el mòdul GSM amb PPPd (Raspberry Pi)
Com s'utilitza el mòdul GSM amb PPPd (Raspberry Pi)
Com s'utilitza el mòdul GSM amb PPPd (Raspberry Pi)
Com s'utilitza el mòdul GSM amb PPPd (Raspberry Pi)
Com s'utilitza el mòdul GSM amb PPPd (Raspberry Pi)

A) En primer lloc, substituïu el fitxer /boot/overlays/sc16is752-i2c.dtbo i assegureu-vos que I2C funciona correctament.

  • Substitueix sc16is752-i2c.dtbo
  • Configurant I2C

B) Introduïu l'ordre i2cset -y 1 0x16 0x23 0x40 per restablir el mòdul GPRS.

Després d’executar l’ordre, cal esperar una mica, uns 10 segons

També podeu utilitzar el mètode següent per restablir.

C) Introduïu l'ordre

sudo apt install ppp

per instal·lar eines ppp.

D) Copieu / etc / ppp / peers / provider a / etc / ppp / peers / gprs

E) Modifiqueu / etc / ppp / peers / gprs

  • Línia 10: consulteu l'usuari amb el vostre proveïdor de serveis (exemple: cmnet).
  • Línia 15: consulteu el vostre proveïdor de serveis per obtenir l’APN (Exemple: cmnet).
  • Línia 18 - Línia 24: configuració recomanada

F) Modifiqueu / etc / chatscripts / gprs (canvieu la línia 34 a la línia 35, el número de marcatge NO pot ser * 99 #)

G) Introduïu l'ordre sudo pppd per cridar a gprs.

H) Comproveu la configuració de ppp des del vostre ISP.

I) Introduïu l'ordre ping -I ppp0 8.8.8.8 proveu la vostra xarxa (si hi ha Internet disponible i la taula de rutes és correcta)

J) Mantingueu bé el senyal GSM, en cas contrari es produirà el següent.

Pas 15: Com diagnosticar el meu mòdul GSM (Raspberry Pi)

Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)
Com es diagnostica el meu mòdul GSM (Raspberry Pi)

Es recomana executar el codi següent mitjançant Python 3 i instal·lar la biblioteca smbus:

importació importació de temps importació de smbus operador d'importació

print ("S'està esperant la inicialització …")

bus = smbus. SMBus (1)

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

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

si ser.isOpen == Fals:

ser.open () try: print ('-' * 60) print ("Inicialització del mòdul A9G GPRS.") print ("Connexió GSM …") time.sleep (3) i = 0 mentre True: ser.write (str.encode ("AT + CCID / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () response = ser.read (size) ccid = str (response, coding = "utf -8 ") print (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) excepte KeyboardInterrupt: ser.close ()

Executeu l’escriptura de prova, en funció dels resultats de la implementació, podem diagnosticar el mòdul GSM. Per exemple, el següent retorn, l’error CME ERROR 53 ens indica que la potència no és bona. Codi CME = Errors relacionats amb l'equip GSM

Per descomptat, l’script també té una funció de restabliment. Si podeu mostrar el CCID correctament, el restabliment s'ha completat.

Pas 16: Com utilitzar Lora TX i RX amb C (Raspberry Pi)

Es recomana executar el codi següent mitjançant Python 3 i instal·lar la biblioteca smbus.

S’ha de transferir entre els dos nodes IOT (A). El contingut enviat per si mateix no es pot rebre per si mateix. Si us plau, deseu-lo com a script py per a l'execució.

Com enviar: després d'omplir les dades al registre 0x01 - 0x10, configureu el bit L_TX per començar a enviar dades.

importar importar smbus importar importar sistemes

bus = smbus. SMBus (1)

provar:

llista_dades = [170, 85, 165, 90] # escriure dades per registrar-se i després s'enviaran les dades. per a índex a l'interval (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA envia dades a% d registre% d dades"% (índex, data_list [índex - 1])) bus.write_byte_data (0x16, 0x23, 0x01) excepte KeyboardInterrupt: sys.exit ()

Com s'envia la recepció: comproveu el bit L_RXNE. Si s'ha definit, han arribat dades noves, aquest indicador s'ha d'esborrar manualment

importar importar smbus importar importar sistemes

bus = smbus. SMBus (1)

recv_data =

provar:

si bus.read_byte_data (0x16, 0x23) i 0x02: # esborra manualment L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # dades de lectura per a índex en l'interval (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))

print ("Dades rebudes:")

print (recv_data) else: print ("Encara no s'han rebut dades ~") excepte KeyboardInterrupt: sys.exit ()

Pas 17: descripció especial de l'amplada de banda I2C

El límit de la velocitat I2C és de 400 kHz, a causa del protocol I2C, de manera que l’amplada de banda efectiva d’un dispositiu és inferior a 320 kbps, l’amplada de banda efectiva de diversos dispositius és inferior a 160 kbps. funcionen al mateix temps, l’amplada de banda I2C és insuficient, ja que 115,2 kbps * 2 = 230,4 kbps, de manera que algunes dades es desbordaran. La reducció de la velocitat en bauds de la comunicació GPS i GSM pot millorar l’escassetat d’amplada de banda de comunicació. L’apilament d’altres mòduls DockerPi pot ocupar Amplada de banda I2C addicional. Normalment, la velocitat de les dades de xarxa és lenta, de manera que l’amplada de banda GSM no està plena, de manera que no hi ha cap problema de desbordament.

Pas 18: finalitzat

Espero que us agradi i ho feu.

el podeu trobar aquí:

Amazon

Nightlight : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S Tauler de retransmissió de 4 canals: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Power Board : Https: //www.amazon.co.uk/dp/B07TD595VS? Ref = myi_title_dp Node IoT (A) : https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 torre de gel :

Recomanat: