Cuprins:
- Provizii
- Pasul 1: caracteristici
- Pasul 2: Pasul 1: Aflați mai multe despre tabloul IoT (A)
- Pasul 3: Pasul 2: Cum să-l asamblați
- Pasul 4: Pasul 3: Conectați antena
- Pasul 5: Pasul 4: Mediul sistemului de operare și configurațiile software
- Pasul 6: Pasul 5: Configurarea I2C (Raspberry Pi)
- Pasul 7: Pasul 6: Cunoașteți informațiile despre înregistrare
- Pasul 8:
- Pasul 9: Instrucțiuni:
- Pasul 10: Cum se utilizează modulul GPS cu GPS (Raspberry Pi)
- Pasul 11: Cum se utilizează modulul GPS cu C (Raspberry Pi)
- Pasul 12: Compilați-l
- Pasul 13: Cum se utilizează modulul GPS cu Python (Raspberry Pi)
- Pasul 14: Cum se utilizează modulul GSM cu PPPd (Raspberry Pi)
- Pasul 15: Cum să-mi diagnosticulez modulul GSM (Raspberry Pi)
- Pasul 16: Cum se utilizează Lora TX și RX cu C (Raspberry Pi)
- Pasul 17: Descrierea specială a lățimii de bandă I2C
- Pasul 18: Finalizat
Video: [Seria Docker Pi] Cum se utilizează modulul IoT Node (A) pe Raspberry Pi: 18 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Ce este modulul IoT Node (A)?
Nodul IoT (A) este unul dintre modulele din seria Docker Pi.
Nod IOT (A) = GPS / BDS + GSM + Lora.
I2C controlează direct Lora, trimite și primește date, controlează modulul GSM / GPS / BDS prin SC16IS752, placa principală are nevoie doar de suport I2C.
Suportă Raspberry Pi și alte produse similare.
Provizii
1x Raspberry Pi 2B / 3B / 3B + / 4B / 3A + / Zero / Zero W
1x produs din seria Docker Pi: modul IoT Node (A)
1x card 16 TF clasa 10 TF
1x sursa de alimentare 5V / 2.5A (5V @ 3A pentru Pi 4B)
Pasul 1: caracteristici
- Seria Docker Pi
- Programabil
- Control direct (fără programare)
- Extindeți pinii GPIO
- Suport GPS / BDS
- Suport GSM
- Suport Lora
- Se poate stiva cu o altă tablă Stack
- Independent de hardware-ul plăcii principale (necesită suport I2C)
Pasul 2: Pasul 1: Aflați mai multe despre tabloul IoT (A)
Nodul IoT (A) este unul dintre modulele din seria Docker Pi.
Nod IOT (A) = GPS / BDS + GSM + Lora.
I2C controlează direct Lora, trimite și primește date, controlează modulul GSM / GPS / BDS prin SC16IS752, placa principală are nevoie doar de suport I2C. Suportă Raspberry Pi și alte produse similare.
Deci, puteți crea un dispozitiv de comunicație de nivel mediu folosind două dintre ele.
și, de asemenea, puteți localiza locația dispozitivului dvs. utilizând modulul GPS de la bord.
Introduceți o cartelă SIM, va deveni o stație emițătoare prin mesaj SMS.
Pasul 3: Pasul 2: Cum să-l asamblați
Este foarte ușor să-l asamblați datorită designului „HAT”, pur și simplu îl puneți pe pi zmeură și îl conectați prin pinii GPIO, este ca o „pălărie” pe zmeura pi, astfel încât să nu trebuie să adăugați masa sârmă.
Pasul 4: Pasul 3: Conectați antena
Există 3 piese de antenă pentru acest modul IoT (A), una dintre ele este pentru modulul loar, este o antenă de tip SMA și una dintre ele este bună pentru dvs. GPS, este o antenă cu cutie pătrată care are port IPX. iar ultima este pentru modulul SIM (A9G), este o antenă mică, care are un port IPX. conectați antena și montați pălăria la zmeura dvs. pi.
Cum să asamblați Montați placa Iot Node (A) pe Raspberry Pi
Conectați GPS antana și Lora antana la portul IPX.
- E1 : GPS-ANTANA-IPX
- E3 : LoRa-ANTANA-IPX
Înșurubează antana GPRS pe portul SMA.
Pasul 5: Pasul 4: Mediul sistemului de operare și configurațiile software
În acest pas, trebuie să faceți aceste lucruri:
1. Descărcați cel mai recent fișier imagine de pe: www.raspberrypi.org/downloads
2. Dezarhivați-l.
3. Flashează-ți cardul TF cu cea mai recentă imagine prin intermediul instrumentului de gravat
4. Modificați fișierul /boot/config.txt și adăugați acest paragraf.
dtoverlay = sc16is752-i2c
5. Înlocuiește fișierul /boot/overlay/sc16is752-i2c.dtbo cu acest fișier:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: amintiți-vă dezarhivați-l și puneți-l în folderul / boot / overlay / și înlocuiți vechiul.
6. Reporniți Raspberry Pi.
Pasul 6: Pasul 5: Configurarea I2C (Raspberry Pi)
Rulați sudo raspi-config și urmați instrucțiunile pentru a instala suportul i2c pentru nucleul ARM și nucleul Linux Accesați Opțiuni de interfațare
Pasul 7: Pasul 6: Cunoașteți informațiile despre înregistrare
Secțiunea GPRS
Consum redus de energie, curent de așteptare de așteptare <1mA2.
Suportă patru benzi de frecvență GSM / GPRS, inclusiv 850, 900, 1800, 1900MHZ
GPRS Clasa 10
Suport pentru serviciul de date GPRS, rata maximă de date, descărcare 85,6 Kbps, încărcare 42,8 Kbps
Acceptați comenzile standard GSM07.07, 07.05 AT și accesați portul serial prin conversia interfeței I2C
Comenzile AT acceptă porturile standard de comandă AT și TCP / IP
Secțiunea GPS Sprijină poziționarea articulației BDS / GPS
Suport A-GPS, A-BDS
Suportă cartela SIM standard
Secțiunea LORA Distanța de transmisie: 500 metri (parametrii RF: 0x50 @ China City)
Suportă metode de modulare FSK, GFSK, MSK, GMSK, LoRaTM și OOK
Sensibilitate ultra-înaltă a receptorului de până la -141 dBm
Sprijină detectarea preambulului
Motor de pachete cu CRC, până la 256 de octeți
Indicator transmițător LORA
Easy TX / RX de Docker Pi
Pasul 8:
Modulul A9G
Modulul A9G oferă două porturi seriale.
Utilizați I2C UART bridge pentru comunicare.
Numele modulului portului serial
- / dev / ttySC0 GSM
- / dev / ttySC1 GPS / BDS
Harta de înregistrare
- Valoare funcție adresă de înregistrare
- 0x01 LORA_TX1 Lora TX Buffer 1 - Date utilizator
- 0x02 LORA_TX2 Lora TX Buffer 2 - Date utilizator
- 0x03 LORA_TX3 Lora TX Buffer 3 - Date utilizator
- 0x04 LORA_TX4 Lora TX Buffer 4 - Date utilizator
- 0x05 LORA_TX5 Lora TX Buffer 5 - Date utilizator
- 0x06 LORA_TX6 Lora TX Buffer 6 - Date utilizator
- 0x07 LORA_TX7 Lora TX Buffer 7 - Date utilizator
- 0x08 LORA_TX8 Lora TX Buffer 8 - Date utilizator
- 0x09 LORA_TX9 Lora TX Buffer 9 - Date utilizator
- 0x0a LORA_TX10 Lora TX Buffer 10 - Date utilizator
- 0x0b LORA_TX11 Lora TX Buffer 11 - Date utilizator
- 0x0c LORA_TX12 Lora TX Buffer 12 - Date utilizator
- 0x0d LORA_TX13 Lora TX Buffer 13 - Date utilizator
- 0x0e LORA_TX14 Lora TX Buffer 14 - Date utilizator
- 0x0f LORA_TX15 Lora TX Buffer 15 - Date utilizator
- 0x10 LORA_TX16 Lora TX Buffer 16 - Date utilizator
- 0x11 LORA_RX1 Lora RX Buffer 1 - Date utilizator
- 0x12 LORA_RX2 Lora RX Buffer 2 - Date utilizator
- 0x13 LORA_RX3 Lora RX Buffer 3 - Date utilizator
- 0x14 LORA_RX4 Lora RX Buffer 4 - Date utilizator
- 0x15 LORA_RX5 Lora RX Buffer 5 - Date utilizator
- 0x16 LORA_RX6 Lora RX Buffer 6 - Date utilizator
- 0x17 LORA_RX7 Lora RX Buffer 7 - Date utilizator
- 0x18 LORA_RX8 Lora RX Buffer 8 - Date utilizator
- 0x19 LORA_RX9 Lora RX Buffer 9 - Date utilizator
- 0x1a LORA_RX10 Lora RX Buffer 10 - Date utilizator
- 0x1b LORA_RX11 Lora RX Buffer 11 - Date utilizator
- 0x1c LORA_RX12 Lora RX Buffer 12 - Date utilizator
- 0x1d LORA_RX13 Lora RX Buffer 13 - Date utilizator
- 0x1e LORA_RX14 Lora RX Buffer 14 - Date utilizator
- 0x1f LORA_RX15 Lora RX Buffer 15 - Date utilizator
- 0x20 LORA_RX16 Lora RX Buffer 16 - Date utilizator
- 0x01 - 0x10 Numai scriere.
- 0x11 - 0x20 Numai citire.
Pasul 9: Instrucțiuni:
L_SET (Numai scriere)
- Scrieți 1 pentru a seta parametrii de la 0x22 la modulul LORA.
- Scrieți 0 nu are efect
G_RESET (Numai scriere)
- Scrieți 1 pentru a reseta modulul A9G
- Scrieți 0 nu are efect
L_RXNE (citire și scriere)
- Scrieți 1 eroare cauză
- Scrie 0 pentru a șterge
- Citiți 1 înseamnă că datele au fost primite, vă rugăm să obțineți datele din registrul 0x11 - 0x20.
- Citiți 0 înseamnă că nu există date disponibile acum.
L_SET (Numai scriere)
- Scrieți 1 pentru a trimite date, vă rugăm să completați datele din registrul 0x01 - 0x10 înainte de trimitere.
- Scrieți 0 nu are efect
Pasul 10: Cum se utilizează modulul GPS cu GPS (Raspberry Pi)
Cum se utilizează modulul GPS cu GPS (Raspberry Pi)
Mai întâi, înlocuiți /boot/overlays/sc16is752-i2c.dtbo și asigurați-vă că I2C funcționează corect.
- Înlocuiți sc16is752-i2c.dtbo
- Configurarea I2C
- Instalați instrumentele GPS.
Deschideți un terminal și tastați această comandă:
sudo apt instalează gpsd gpsd-clients
Modificați fișierul / etc / default / gpsd și adăugați următorii parametri:
- DISPOZITIVE = "/ dev / ttySC1"
- GPSD_OPTIONS = "- F /var/run/gpsd.sock"
Introduceți comanda i2cset -y 1 0x16 0x23 0x40 pentru a reseta modulul GPRS.
Script Python pentru GPS deschis:
import serialimport os import time # Reporniți serviciul gpsd. os.system ("sudo systemctl restart gpsd.socket") # Open serial port ser = serial. Serial ('/ dev / ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open () try: print ("Porniți GPS …") în timp ce 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 ("Waiting GPS Enable, Dacă timpul este prea lung, vă rugăm să testați în aer liber:" + str (i)) ser.flushInput () time.sleep (1) cu excepția KeyboardInterrupt: ser.flushInput () ser.close ()
Salvați-l și executați-l:
python3 GPS.py
Pasul 11: Cum se utilizează modulul GPS cu C (Raspberry Pi)
Instalați instrumentele GPS
sudo apt-get install libgps-dev
Creați codul sursă și denumiți-l „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 ("cod:% d, motiv:% s / n", rc, gps_errstr (rc)); returnează EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
în timp ce (1)
{/ * așteptați 2 secunde pentru a primi date * / if (gps_waiting (& gps_data, 2000000)) {/ * citire date * / if ((rc = gps_read (& gps_data)) == -1) {printf ("a apărut o eroare la citire) date GPS. cod:% d, motiv:% s / n ", rc, gps_errstr (rc)); } else {/ * Afișați datele de la receptorul 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); EDIT: tv.tv_sec nu este de fapt marcajul de timp! * /
printf ("latitudine:% f, longitudine:% f, viteză:% f, marcaj de timp:% lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: Înlocuit tv.tv_sec cu gps_data.fix.time} else {printf ("nu există date GPS disponibile / n"); }}} somn (3); } / * Când ați terminat … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); returnează EXIT_SUCCESS; }
Pasul 12: Compilați-l
Compila!
gcc gps.c -lm -lgps -o gps
Exec It!
./GPS
Pasul 13: Cum se utilizează modulul GPS cu Python (Raspberry Pi)
Se recomandă să se execute următorul cod folosind Python 3 și să instaleze biblioteca gpsd-py3 și GPS 2D / 3D Fix:
import gpsd
# Conectați-vă la GPS local
gpsd.connect ()
# Obțineți poziția GPS
pachet = gpsd.get_current ()
# Consultați documentele inline pentru GpsResponse pentru datele disponibile
print (packet.position ())
Pasul 14: Cum se utilizează modulul GSM cu PPPd (Raspberry Pi)
A) Mai întâi, înlocuiți /boot/overlays/sc16is752-i2c.dtbo și asigurați-vă că I2C funcționează corect.
- Înlocuiți sc16is752-i2c.dtbo
- Configurarea I2C
B) Introduceți comanda i2cset -y 1 0x16 0x23 0x40 pentru a reseta modulul GPRS.
După executarea comenzii, trebuie să așteptați puțin, aproximativ 10 secunde
De asemenea, puteți utiliza următoarea metodă pentru resetare.
C) Introduceți comanda
sudo apt instalează ppp
pentru a instala instrumente ppp.
D) Copiați / etc / ppp / peers / provider în / etc / ppp / peers / gprs
E) Modificați / etc / ppp / peers / gprs
- Linia 10: Vă rugăm să consultați furnizorul de servicii pentru utilizator (Exemplu: cmnet).
- Linia 15: Vă rugăm să consultați furnizorul de servicii pentru apn (Exemplu: cmnet).
- Linia 18 - Linia 24: Setarea recomandată
F) Modificați / etc / chatscripts / gprs (schimbați linia 34 la linia 35, numărul de apelare poate fi NU * 99 #)
G) Introduceți comanda sudo pppd apelează gprs pentru a apela.
H) Verificați configurația ppp de la ISP.
I) Introduceți comanda ping -I ppp0 8.8.8.8 testați rețeaua (Dacă Internetul este disponibil și tabelul de rute este corect)
J) Vă rugăm să păstrați semnalul GSM bun, altfel se vor întâmpla următoarele.
Pasul 15: Cum să-mi diagnosticulez modulul GSM (Raspberry Pi)
Se recomandă executarea următorului cod folosind Python 3 și instalarea bibliotecii smbus:
import serialimport time import smbus import operator import os
print („Se așteaptă inițializarea …”)
autobuz = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = serial. Serial ('/ dev / ttySC0', 115200)
dacă ser.isOpen == False:
ser.open () try: print ('-' * 60) print ("Initializarea modulului A9G GPRS.") print ("GSM connection …") time.sleep (3) i = 0 while 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) cu excepția KeyboardInterrupt: ser.close ()
Executați scriptul de testare, pe baza rezultatelor implementării, putem diagnostica modulul GSM. De exemplu, următoarea returnare, eroarea CME ERROR 53 ne spune că puterea nu este bună. Cod CME = erori legate de echipamentul GSM
Desigur, scriptul are și o funcție de resetare. Dacă puteți afișa corect CCID, resetarea este completă.
Pasul 16: Cum se utilizează Lora TX și RX cu C (Raspberry Pi)
Se recomandă executarea următorului cod folosind Python 3 și instalarea bibliotecii smbus.
Trebuie transferat între cele două noduri IOT (A). Conținutul trimis de sine nu poate fi primit de la sine. Vă rugăm să îl salvați ca un script py pentru executare.
Cum să trimiteți: După completarea datelor în registrul 0x01 - 0x10, setați bitul L_TX pentru a începe să trimiteți date.
import timp import smbus import os import sys
autobuz = smbus. SMBus (1)
încerca:
data_list = [170, 85, 165, 90] # scrie date pentru înregistrare și apoi datele vor fi trimise. pentru index în interval (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA trimite date către% d registru% d date"% (index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) cu excepția KeyboardInterrupt: sys.exit ()
Cum să trimiteți primire: verificați bitul L_RXNE, dacă este setat, au sosit date noi, acest semnal trebuie să fie șters manual
import timp import smbus import os import sys
autobuz = smbus. SMBus (1)
recv_data =
încerca:
dacă bus.read_byte_data (0x16, 0x23) & 0x02: # ștergeți manual L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # citire date pentru index în interval (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))
print ("Date primite:")
print (recv_data) else: print ("Nu s-au primit încă date ~") cu excepția KeyboardInterrupt: sys.exit ()
Pasul 17: Descrierea specială a lățimii de bandă I2C
Limita vitezei I2C este de 400kHz, datorită protocolului I2C, astfel încât lățimea de bandă eficientă a dispozitivului este mai mică de 320kbps, lățimea de bandă eficientă a mai multor dispozitive este mai mică de 160kbps. Limita vitezei I2C UART Bridge este de 115200bps. Când GPS și GSM funcționează în același timp, lățimea de bandă I2C este insuficientă, deoarece 115,2 kbps * 2 = 230,4 kbps, astfel încât unele date vor fi depășite. Reducerea ratei de transmisie a comunicațiilor GPS și GSM poate îmbunătăți lipsa lățimii de bandă de comunicare. lățime de bandă I2C suplimentară. De obicei, viteza datelor de rețea este lentă, astfel încât lățimea de bandă GSM nu este plină, deci nu există nicio problemă de depășire.
Pasul 18: Finalizat
Sper să vă placă și să reușiți.
o găsești aici:
Amazon
Nightlight : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4channel Relay board: 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 Node (A) : https://www.amazon.co.uk/dp/B07TY15M1C HUB pentru senzori : https:// www. amazon.co.uk/dp/B07TZD8B61 turn de gheață :
Recomandat:
Cum se utilizează modulul MP3 DFMini Player cu Arduino: 4 pași
Cum se folosește modulul MP3 DFMini Player cu Arduino: mai multe proiecte necesită reproducerea sunetului pentru a adăuga un fel de funcționalitate. Printre aceste proiecte, evidențiem: accesibilitatea pentru persoanele cu deficiențe de vedere, playere MP3 și executarea sunetelor vocale de către roboți, de exemplu. În toate aceste sisteme
Cum să controlați becul folosind modulul Arduino UNO și modulul de releu de stat solid cu un singur canal 5V: 3 pași
Cum să controlați becul utilizând modulul de releu de stare solidă Arduino UNO și un canal 5V: Descriere: Comparativ cu releul mecanic tradițional, releul de stare solidă (SSR) are multe avantaje: are o durată de viață mai lungă, cu o pornire mult mai mare / viteza de oprire și fără zgomot. În plus, are și o rezistență mai bună la vibrații și mecanică
Cum se utilizează modulul LED RGB: 4 pași
Cum se utilizează modulul LED RGB: descrieri: Cu rezistor încorporat pentru a preveni arderea LED-ului. Capabil de utilizat cu diferite microcontrolere. Funcționare activă ridicată Tensiune de lucru: 3,3 V / 5 V Poate fi conectat direct pe Arduino, fără fire jumper
Cum se utilizează terminalul Mac și cum se utilizează funcțiile cheie: 4 pași
Cum să utilizați terminalul Mac și cum să utilizați funcțiile cheie: Vă vom arăta cum să deschideți terminalul MAC. De asemenea, vă vom arăta câteva caracteristici în Terminal, cum ar fi ifconfig, schimbarea directoarelor, accesarea fișierelor și arp. Ifconfig vă va permite să vă verificați adresa IP și anunțul MAC
Cum se utilizează modulul senzor IR TCRT5000 cu Arduino UNO: 7 pași (cu imagini)
Cum se folosește modulul senzor IR TCRT5000 cu Arduino UNO: În acest tutorial, vă vom învăța câteva elemente de bază despre utilizarea modulului senzorului IR TCRT5000. Aceste elemente de bază vă arată valorile analogice și digitale la monitorul serial. Descriere: Acest senzor reflectorizant IR utilizează un TCRT5000 pentru a detecta culoarea și