Taula de continguts:
- Subministraments
- Pas 1: funcions
- Pas 2: pas 1: coneixeu el tauler IoT (A)
- Pas 3: Pas 2: Com muntar-lo
- Pas 4: Pas 3: Connecteu l'antena
- Pas 5: Pas 4: Configuració de l'entorn i del programari del SO
- Pas 6: Pas 5: Configuració de l'I2C (Raspberry Pi)
- Pas 7: pas 6: coneixeu la informació del registre
- Pas 8:
- Pas 9: instruccions:
- Pas 10: Com utilitzar el mòdul GPS amb GPS (Raspberry Pi)
- Pas 11: Com utilitzar el mòdul GPS amb C (Raspberry Pi)
- Pas 12: Compileu-lo
- Pas 13: Com utilitzar el mòdul GPS amb Python (Raspberry Pi)
- Pas 14: Com utilitzar el mòdul GSM amb PPPd (Raspberry Pi)
- Pas 15: Com diagnosticar el meu mòdul GSM (Raspberry Pi)
- Pas 16: Com utilitzar Lora TX i RX amb C (Raspberry Pi)
- Pas 17: descripció especial de l'amplada de banda I2C
- Pas 18: finalitzat
Vídeo: [Sèrie Docker Pi] Com utilitzar el mòdul IoT Node (A) a Raspberry Pi: 18 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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
- 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)
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
É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
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)
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:
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)
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!
gcc gps.c -lm -lgps -o gps
Exec It!
./gps
Pas 13: Com utilitzar 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)
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)
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:
Com utilitzar el mòdul RFID-RC522 amb Arduino: 5 passos
Com s'utilitza el mòdul RFID-RC522 amb Arduino: en aquest manual, faré un recorregut detallat sobre el principi fonamental de funcionament del mòdul RFID juntament amb les seves etiquetes i xips. També proporcionaré un breu exemple d’un projecte que vaig fer amb aquest mòdul RFID amb un LED RGB. Com és habitual amb els meus ins
Com utilitzar un mòdul de rellotge en temps real (DS3231): 5 passos
Com utilitzar un mòdul de rellotge en temps real (DS3231): el DS3231 és un rellotge en temps real (RTC) I2C de baix cost i extremadament precís amb un oscil·lador de cristall compensat per temperatura (TCXO) i cristall. El dispositiu incorpora una entrada de bateria i manté una cronometra
Com utilitzar el sensor PIR i un mòdul de brunzidor: tutorial de Visuino: 6 passos
Com utilitzar el sensor PIR i un mòdul de brunzidor: tutorial de Visuino: en aquest tutorial aprendrem a utilitzar un sensor PIR i un mòdul de brunzidor per fer un so cada vegada que un sensor PIR detecta un moviment. Mireu un vídeo de demostració
Taula Node IoT (A) de la sèrie DockerPi per a Raspberry Pi 4B: 4 passos
Taula IoT Node (A) de la sèrie DockerPi per a Raspberry Pi 4B: Descripcions: El node IoT (A) és un dels mòduls de la sèrie DockerP. 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 principal només necessita suport I2C. Suport Raspbe
Sèrie Docker Pi de placa de concentrador de sensors Quant a IOT: 13 passos
Docker Pi Series of Sensor Hub Board Quant a IOT: Hola, tots els homes. Avui en dia, gairebé tot està relacionat amb IOT. Sens dubte, la nostra placa de la sèrie DockerPi també admet la IOT. Avui vull presentar la sèrie DockerPi de SensorHub com per aplicar-vos a IOT. Executo aquest element que es basa en