Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Funktioner
- Trin 2: Trin1: Kend til IoT (A) -kortet
- Trin 3: Trin2: Sådan samles det
- Trin 4: Trin 3: Tilslut antenne
- Trin 5: Trin4: OS -miljø og softwarekonfigurationer
- Trin 6: Trin5: Konfiguration af I2C (Raspberry Pi)
- Trin 7: Trin6: Kend til registeroplysningerne
- Trin 8:
- Trin 9: Instruktioner:
- Trin 10: Sådan bruges GPS -modul med Gpsd (Raspberry Pi)
- Trin 11: Sådan bruges GPS -modul med C (Raspberry Pi)
- Trin 12: Kompilér det
- Trin 13: Sådan bruges GPS -modul med Python (Raspberry Pi)
- Trin 14: Sådan bruges GSM -modul med PPPd (Raspberry Pi)
- Trin 15: Sådan diagnosticeres mit GSM -modul (Raspberry Pi)
- Trin 16: Sådan bruges Lora TX & RX med C (Raspberry Pi)
- Trin 17: Særlig beskrivelse af I2C båndbredde
- Trin 18: Færdig
Video: [Docker Pi Series] Sådan bruges IoT Node (A) -modul på Raspberry Pi: 18 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Hvad er IoT Node (A) modul?
IoT Node (A) er et af Docker Pi -seriens modul.
IOT Node (A) = GPS/BDS + GSM + Lora.
I2C styrer Lora direkte, sender og modtager data, styrer GSM/GPS/BDS -modulet via SC16IS752, hovedkortet behøver kun I2C -understøttelse.
Support Raspberry Pi og andre lignende produkter.
Forbrugsvarer
1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero W
1x produkt i Docker Pi -serien: IoT Node (A) -modul
1x 16GB klasse 10 TF -kort
1x 5V/2,5A strømforsyning (5V@3A til Pi 4B)
Trin 1: Funktioner
- Docker Pi -serien
- Programmerbar
- Styr direkte (uden programmering)
- Forlæng GPIO -benene
- GPS/BDS Support
- GSM Support
- Lora Support
- Kan stables med andet stakbræt
- Uafhængig af hardboardhardware (kræver I2C -understøttelse)
Trin 2: Trin1: Kend til IoT (A) -kortet
IoT Node (A) er et af Docker Pi -seriens modul.
IOT Node (A) = GPS/BDS + GSM + Lora.
I2C styrer Lora direkte, sender og modtager data, styrer GSM/GPS/BDS -modulet via SC16IS752, hovedkortet har kun brug for I2C support. Support Raspberry Pi og andre lignende produkter.
Så du kan lave en mellemdistance -kommunikationsenhed ved at bruge to af dem.
og du kan også finde din enheds placering ved hjælp af GPS -modulet ombord.
Indsæt et SIM -kort, det bliver en senderstation via SMS -besked.
Trin 3: Trin2: Sådan samles det
Det er meget let at samle det på grund af det "HAT" -design, du sætter det bare på din hindbærpi og forbinder det via GPIO -ben, det ligner en "hat" på hindbærpi, så du ikke behøver at tilføje massen tråd.
Trin 4: Trin 3: Tilslut antenne
Der er 3 dele antenne til dette IoT (A) modul, en af dem er til loar modulet, det er en SMA type antenne, og en af dem er god til dig GPS, det er en firkantet boks antenne, der har IPX port. og den sidste er til SIM -modulet (A9G), Det er en lille antenne, der har en IPX -port. tilslut antennen og monter hatten på din hindbær pi.
Sådan samles Monter Iot Node (A) -kortet til Raspberry Pi
Tilslut GPS -antana og Lora antana til IPX -port.
- E1: GPS-ANTANA-IPX
- E3: LoRa-ANTANA-IPX
Skruer GPRS -antanaen på SMA -porten.
Trin 5: Trin4: OS -miljø og softwarekonfigurationer
I dette trin skal du gøre disse ting:
1. Download den nyeste billedfil fra: www.raspberrypi.org/downloads
2. Pak den ud.
3. Flash dit TF -kort med det nyeste billede via etserværktøj
4. Rediger filen /boot/config.txt, og tilføj dette afsnit.
dtoverlay = sc16is752-i2c
5. Erstatter filen /boot/overlay/sc16is752-i2c.dtbo med denne fil:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: husk at pakke den ud, læg den på din/boot/overlay/mappe og erstatter den gamle.
6. Genstart din Raspberry Pi.
Trin 6: Trin5: Konfiguration af I2C (Raspberry Pi)
Kør sudo raspi-config og følg vejledningen for at installere i2c-understøttelse til ARM-kernen og linux-kernen Gå til grænsefladeindstillinger
Trin 7: Trin6: Kend til registeroplysningerne
GPRS -sektion
Lavt strømforbrug, standby -søvnstrøm <1mA2.
Understøtter GSM/GPRS fire frekvensbånd, herunder 850, 900, 1800, 1900MHZ
GPRS klasse 10
Understøtter GPRS -datatjeneste, maksimal datahastighed, download 85,6 Kbps, upload 42,8 Kbps
Understøt standard GSM07.07, 07.05 AT -kommandoer, og få adgang til den serielle port via I2C -grænsefladekonvertering
AT -kommandoer understøtter standard AT- og TCP/IP -kommandoporte
GPS -sektion Understøtter BDS/GPS -fælles positionering
Understøtter A-GPS, A-BDS
Understøtter standard SIM -kort
LORA -sektion Transmissionsafstand: 500 meter (RF -parametre: 0x50 @ China City)
Understøtter FSK, GFSK, MSK, GMSK, LoRaTM og OOK moduleringsmetoder
Ultrahøj modtagerfølsomhed så lav som -141 dBm
Understøtter præambledetektering
Pakkemotor med CRC, op til 256 bytes
LORA transceiver indikator
Nem TX/RX af Docker Pi
Trin 8:
A9G -modul
A9G -modul har to serielle port.
Brug I2C UART -bro til kommunikation.
Serial Port Modul navn
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Registrer kort
- Registrer adresse Funktionsværdi
- 0x01 LORA_TX1 Lora TX Buffer 1 - Brugerdata
- 0x02 LORA_TX2 Lora TX Buffer 2 - Brugerdata
- 0x03 LORA_TX3 Lora TX Buffer 3 - Brugerdata
- 0x04 LORA_TX4 Lora TX Buffer 4 - Brugerdata
- 0x05 LORA_TX5 Lora TX Buffer 5 - Brugerdata
- 0x06 LORA_TX6 Lora TX Buffer 6 - Brugerdata
- 0x07 LORA_TX7 Lora TX Buffer 7 - Brugerdata
- 0x08 LORA_TX8 Lora TX Buffer 8 - Brugerdata
- 0x09 LORA_TX9 Lora TX Buffer 9 - Brugerdata
- 0x0a LORA_TX10 Lora TX Buffer 10 - Brugerdata
- 0x0b LORA_TX11 Lora TX Buffer 11 - Brugerdata
- 0x0c LORA_TX12 Lora TX Buffer 12 - Brugerdata
- 0x0d LORA_TX13 Lora TX Buffer 13 - Brugerdata
- 0x0e LORA_TX14 Lora TX Buffer 14 - Brugerdata
- 0x0f LORA_TX15 Lora TX Buffer 15 - Brugerdata
- 0x10 LORA_TX16 Lora TX Buffer 16 - Brugerdata
- 0x11 LORA_RX1 Lora RX Buffer 1 - Brugerdata
- 0x12 LORA_RX2 Lora RX Buffer 2 - Brugerdata
- 0x13 LORA_RX3 Lora RX Buffer 3 - Brugerdata
- 0x14 LORA_RX4 Lora RX Buffer 4 - Brugerdata
- 0x15 LORA_RX5 Lora RX Buffer 5 - Brugerdata
- 0x16 LORA_RX6 Lora RX Buffer 6 - Brugerdata
- 0x17 LORA_RX7 Lora RX Buffer 7 - Brugerdata
- 0x18 LORA_RX8 Lora RX Buffer 8 - Brugerdata
- 0x19 LORA_RX9 Lora RX Buffer 9 - Brugerdata
- 0x1a LORA_RX10 Lora RX Buffer 10 - Brugerdata
- 0x1b LORA_RX11 Lora RX Buffer 11 - Brugerdata
- 0x1c LORA_RX12 Lora RX Buffer 12 - brugerdata
- 0x1d LORA_RX13 Lora RX Buffer 13 - Brugerdata
- 0x1e LORA_RX14 Lora RX Buffer 14 - Brugerdata
- 0x1f LORA_RX15 Lora RX Buffer 15 - Brugerdata
- 0x20 LORA_RX16 Lora RX Buffer 16 - Brugerdata
- 0x01 - 0x10 Kun skrive.
- 0x11 - 0x20 skrivebeskyttet.
Trin 9: Instruktioner:
L_SET (kun skrive)
- Skriv 1 for at indstille parametre fra 0x22 til LORA -modul.
- Skriv 0 ikke effekt
G_RESET (kun skrive)
- Skriv 1 for at nulstille A9G -modulet
- Skriv 0 ikke effekt
L_RXNE (Læs og skriv)
- Skriv 1 årsag fejl
- Skriv 0 for at slette
- Læs 1 betyder, at data er modtaget. Hent dataene fra registret 0x11 - 0x20.
- Læs 0 betyder ingen tilgængelige data nu.
L_SET (kun skrive)
- Skriv 1 for at sende data. Udfyld venligst dataene i register 0x01 - 0x10 inden afsendelse.
- Skriv 0 ikke effekt
Trin 10: Sådan bruges GPS -modul med Gpsd (Raspberry Pi)
Sådan bruges GPS -modul med gpsd (Raspberry Pi)
Udskift først /boot/overlays/sc16is752-i2c.dtbo og kontroller, at I2C fungerer korrekt.
- Udskift sc16is752-i2c.dtbo
- Konfiguration af I2C
- Installer gpsd -værktøjer.
Åbn en terminal og indtast denne kommando:
sudo apt installer gpsd gpsd-klienter
Rediger/etc/default/gpsd -fil, og tilføj følgende parametre:
- ENHEDER = "/dev/ttySC1"
- GPSD_OPTIONS = "-F /var/run/gpsd.sock"
Indtast kommandoen i2cset -y 1 0x16 0x23 0x40 for at nulstille GPRS -modulet.
Python -script til åben GPS:
import serialimport os importtid # Genstart gpsd -service. os.system ("sudo systemctl genstart gpsd.socket") # Åbn seriel port ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 hvis ser.isOpen == Falsk: ser.open () prøv: print ("Tænd GPS …") mens True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () hvis størrelse! = 0: ticks = time.time () respons = ser.read (størrelse) gps = str (svar, kodning = "utf -8") hvis (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 outdoors:" + str (i)) ser.flushInput () time.sleep (1) undtagen KeyboardInterrupt: ser.flushInput () ser.close ()
Gem det og udfør det:
python3 GPS.py
Trin 11: Sådan bruges GPS -modul med C (Raspberry Pi)
Installer gpsd -værktøjer
sudo apt-get install libgps-dev
Opret kildekode og navngiv den "gps.c"
#include #include #include
#omfatte
#omfatte
int main ()
{int rc; struct timeval tv; struct gps_data_t gps_data; hvis ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("kode: %d, årsag: %s / n", rc, gps_errstr (rc)); returner EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
mens (1)
{ / * vent i 2 sekunder for at modtage data * / if (gps_waiting (& gps_data, 2000000)) { / * læs data * / if ((rc = gps_read (& gps_data)) == -1) {printf ("fejl opstod ved læsning gps -data. kode: %d, årsag: %s / n ", rc, gps_errstr (rc)); } ellers { /* Vis data fra GPS -modtageren. */ 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 er faktisk ikke tidsstemplet! */
printf ("breddegrad: %f, længdegrad: %f, hastighed: %f, tidsstempel: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: Erstattede tv.tv_sec med gps_data.fix.time} else {printf ("ingen tilgængelige GPS -data / n"); }}} søvn (3); } / * Når du er færdig … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); returner EXIT_SUCCESS; }
Trin 12: Kompilér det
Udarbejde!
gcc gps.c -lm -lgps -o gps
Udfør det!
./gps
Trin 13: Sådan bruges GPS -modul med Python (Raspberry Pi)
Følgende kode anbefales at blive udført ved hjælp af Python 3 og installere gpsd-py3-biblioteket og GPS 2D/3D Fix:
import gpsd
# Opret forbindelse til den lokale gpsd
gpsd.connect ()
# Få GPS -position
pakke = gpsd.get_current ()
# Se de indbyggede dokumenter til GpsResponse for de tilgængelige data
print (packet.position ())
Trin 14: Sådan bruges GSM -modul med PPPd (Raspberry Pi)
A) Først skal du udskifte /boot/overlays/sc16is752-i2c.dtbo og kontrollere, at I2C fungerer korrekt.
- Udskift sc16is752-i2c.dtbo
- Konfiguration af I2C
B) Indtast kommandoen i2cset -y 1 0x16 0x23 0x40 for at nulstille GPRS -modulet.
Efter at have kørt kommandoen skal du vente lidt, cirka 10 sekunder
Du kan også bruge følgende metode til at nulstille.
C) Indtast kommando
sudo apt installer ppp
at installere ppp -værktøjer.
D) Kopier/etc/ppp/peers/provider til/etc/ppp/peers/gprs
E) Rediger/etc/ppp/peers/gprs
- Linje 10: Kontakt din tjenesteudbyder for brugeren (eksempel: cmnet).
- Linje 15: Kontakt din tjenesteudbyder om apn'en (eksempel: cmnet).
- Linje 18 - Linje 24: Anbefalet indstilling
F) Rediger/etc/chatscripts/gprs (Skift linje 34 til linje 35, opkaldsnummer kan IKKE være *99#)
G) Indtast kommando sudo pppd kalder gprs for at ringe op.
H) Kontroller din ppp -konfiguration fra din internetudbyder.
I) Indtast kommando ping -I ppp0 8.8.8.8 test dit netværk (Hvis internet tilgængeligt og rutetabellen er korrekt)
J) Behold venligst GSM -signalet godt, ellers sker følgende.
Trin 15: Sådan diagnosticeres mit GSM -modul (Raspberry Pi)
Følgende kode anbefales at blive udført ved hjælp af Python 3 og installere smbus -biblioteket:
import serieimport tid import smbus import operatør import os
print ("Venter på initialisering …")
bus = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = serial. Serial ('/dev/ttySC0', 115200)
hvis ser.isOpen == Falsk:
ser.open () prøv: print ('-'*60) print ("Initialiserer A9G GPRS-modul.") print ("GSM-forbindelse …") time.sleep (3) i = 0 mens 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) undtagen KeyboardInterrupt: ser.close ()
Exec Test Script, baseret på resultaterne af implementeringen, kan vi diagnosticere GSM -modulet. For eksempel kan følgende retur, CME ERROR 53 fejl fortælle os Strøm ikke god. CME -kode = GSM -udstyrsrelaterede fejl
Selvfølgelig har scriptet også en nulstillingsfunktion. Hvis du kan vise CCID korrekt, er nulstillingen fuldført.
Trin 16: Sådan bruges Lora TX & RX med C (Raspberry Pi)
Følgende kode anbefales at blive udført ved hjælp af Python 3 og installere smbus -biblioteket.
Den skal overføres mellem de to IOT -knudepunkter (A). Indholdet sendt af sig selv kan ikke modtages af sig selv. Gem det som et py -script til udførelse.
Sådan sender du: Efter at have udfyldt dataene i register 0x01 - 0x10, skal du indstille L_TX -bit til at begynde at sende data.
import timeimport smbus import os import sys
bus = smbus. SMBus (1)
prøve:
data_list = [170, 85, 165, 90] # skriv data for at registrere, og derefter vil dataene blive sendt ud. for indeks i område (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA send data til %d register %d data" %(index, data_list [indeks - 1])) bus.write_byte_data (0x16, 0x23, 0x01) undtagen KeyboardInterrupt: sys.exit ()
Sådan sender du modtagelse: Kontroller L_RXNE -bit. Hvis der er indstillet nye data, skal dette flag være manuelt klart
import timeimport smbus import os import sys
bus = smbus. SMBus (1)
recv_data =
prøve:
hvis bus.read_byte_data (0x16, 0x23) & 0x02: # slet manuelt L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # aflæs data for indeks i område (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))
print ("Modtagne data:")
print (recv_data) else: print ("Ingen data modtaget endnu ~") undtagen KeyboardInterrupt: sys.exit ()
Trin 17: Særlig beskrivelse af I2C båndbredde
Grænsen for I2C -hastigheden er 400 kHz på grund af I2C -protokollen, så den effektive enheds effektive båndbredde er under 320 kbps, effektiv multi -enheds båndbredde er lavere end 160 kbps. Grænsen for I2C UART -brohastigheden er 115200bps. Når GPS og GSM I2C båndbredde er utilstrækkelig, fordi 115,2 kbps * 2 = 230,4 kbps, så nogle data vil være overløbne. Reduktion af baudhastighed for GPS og GSM kommunikation kan forbedre kommunikationsbåndbredde mangel. Stakning af andre DockerPi moduler kan tage op ekstra I2C båndbredde. Normalt er netværksdatahastigheden langsom, så GSM båndbredden er ikke fuld, så der er ikke noget overløbsproblem.
Trin 18: Færdig
Håber i kan lide det og klare det.
du kan finde det her:
Amazon
Natlys: https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4-kanals relækort: 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 Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 istårn:
Anbefalede:
Sådan bruges en Raspberry Pi's GPIO Pins og Avrdude til Bit-bang-program DIMP 2 eller DA PIMP 2: 9 trin
Sådan bruges en Raspberry Pi's GPIO Pins og Avrdude til Bit-bang-program DIMP 2 eller DA PIMP 2: Dette er trin-for-trin instruktioner om, hvordan du bruger en Raspberry Pi og den gratis open source-kommando avrdude til bit-bang -programmer en DIMP 2 eller DA PIMP 2. Jeg går ud fra, at du kender din Raspberry Pi og kommandolinjen LINUX. Du behøver ikke
Sådan bruges trinmotor som roterende encoder og OLED -display til trin: 6 trin
Sådan bruges trinmotor som roterende encoder og OLED -skærm til trin: I denne vejledning lærer vi, hvordan du sporer trinmotortrinene på OLED -skærmen. Se en demonstrationsvideo. Kredit for den originale vejledning går til youtube -bruger " sky4fly "
DockerPi Series IoT Node (A) -kort til Raspberry Pi 4B: 4 trin
DockerPi Series IoT Node (A) Board til Raspberry Pi 4B: Beskrivelser: IoT Node (A) er et af Docker Pi -seriens modul.IOT Node (A) = GPS/BDS + GSM + Lora.I2C styrer Lora, sender og modtager direkte data, styrer GSM/GPS/BDS -modulet via SC16IS752, har bundkortet kun brug for I2C -understøttelse.Support Raspbe
LED blink med hindbær Pi - Sådan bruges GPIO -pins på Raspberry Pi: 4 trin
LED blink med hindbær Pi | Sådan bruges GPIO -stifter på Raspberry Pi: Hej fyre i denne instruktion vil vi lære at bruge GPIO'er til Raspberry pi. Hvis du nogensinde har brugt Arduino, ved du sandsynligvis, at vi kan slutte LED -switch osv. Til dets ben og få det til at fungere som. få LED'en til at blinke, eller få input fra kontakten, så
Sådan bruges Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -kompatibelt kort ved hjælp af Blynk: 10 trin
Sådan bruges Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE kompatibelt kort ved hjælp af Blynk: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE kompatibelt kort Beskrivelse: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 er et WIFI -udviklingsbord baseret på ESP8266 12E. Funktionen ligner NODEMCU's, bortset fra at hardwaren er bygget