Innehållsförteckning:
- Tillbehör
- Steg 1: Funktioner
- Steg 2: Steg1: Vet om IoT (A) -kortet
- Steg 3: Steg2: Hur man monterar det
- Steg 4: Step3: Anslut antenn
- Steg 5: Steg4: OS -miljö och programvarukonfigurationer
- Steg 6: Steg5: Konfigurera I2C (Raspberry Pi)
- Steg 7: Steg6: Vet om registerinformationen
- Steg 8:
- Steg 9: Instruktioner:
- Steg 10: Så här använder du GPS -modul med Gpsd (Raspberry Pi)
- Steg 11: Hur man använder GPS -modul med C (Raspberry Pi)
- Steg 12: Kompilera det
- Steg 13: Hur man använder GPS -modul med Python (Raspberry Pi)
- Steg 14: Hur man använder GSM -modul med PPPd (Raspberry Pi)
- Steg 15: Hur man diagnostiserar min GSM -modul (Raspberry Pi)
- Steg 16: Hur man använder Lora TX & RX med C (Raspberry Pi)
- Steg 17: Särskild beskrivning av I2C -bandbredd
- Steg 18: Avslutad
Video: [Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi: 18 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Vad är IoT Node (A) -modulen?
IoT Node (A) är en av modulerna i Docker Pi -serien.
IOT -nod (A) = GPS/BDS + GSM + Lora.
I2C styr Lora direkt, skickar och tar emot data, styr GSM/GPS/BDS -modulen via SC16IS752, moderkortet behöver bara I2C -stöd.
Stöd Raspberry Pi och andra liknande produkter.
Tillbehör
1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero W
1x produkt i Docker Pi -serien: IoT Node (A) -modul
1x 16GB TF -kort i klass 10
1x 5V/2,5A strömförsörjning (5V@3A för Pi 4B)
Steg 1: Funktioner
- Docker Pi -serien
- Programmerbar
- Styr direkt (utan programmering)
- Förläng GPIO -stiften
- GPS/BDS -stöd
- GSM -support
- Lora Support
- Kan staplas med andra stapelbrädor
- Oberoende av moderkortets hårdvara (kräver I2C -stöd)
Steg 2: Steg1: Vet om IoT (A) -kortet
IoT Node (A) är en av modulerna i Docker Pi -serien.
IOT -nod (A) = GPS/BDS + GSM + Lora.
I2C styr Lora direkt, skickar och tar emot data, styr GSM/GPS/BDS -modulen via SC16IS752, moderkortet behöver bara I2C -stöd. Stöd Raspberry Pi och andra liknande produkter.
Så du kan skapa en mellanklass kommunikationsenhet genom att använda två av dem.
och du kan också hitta din enhets plats med hjälp av GPS -modulen ombord.
Sätt i ett SIM -kort, det blir en sändarstation via SMS.
Steg 3: Steg2: Hur man monterar det
Det är väldigt enkelt att montera den på grund av dess "HAT" -design, du lägger den bara på din hallonpi och ansluter den via GPIO -stift, den som en "hatt" på hallonpi, så att du inte behöver lägga till massan tråd.
Steg 4: Step3: Anslut antenn
Det finns tre delar antenn för denna IoT (A) -modul, en av dem är för loar -modulen, det är en antenn av SMA -typ, och en av dem är bra för dig GPS, det är en fyrkantig antenn som har IPX -port. och den sista är för SIM -modulen (A9G), Det är en liten antenn som har en IPX -port. anslut antennen och montera hatten på din hallon pi.
Så här monterar du Montera Iot Node (A) -kortet på Raspberry Pi
Anslut GPS -antana och Lora antana till IPX -port.
- E1: GPS-ANTANA-IPX
- E3: LoRa-ANTANA-IPX
Skruvar fast GPRS -antana på SMA -porten.
Steg 5: Steg4: OS -miljö och programvarukonfigurationer
I det här steget måste du göra dessa saker:
1. Ladda ner den senaste bildfilen från: www.raspberrypi.org/downloads
2. Packa upp den.
3. Flasha ditt TF -kort med den senaste bilden via etsverktyget
4. Ändra filen /boot/config.txt och lägg till detta stycke.
dtoverlay = sc16is752-i2c
5. Ersätter filen /boot/overlay/sc16is752-i2c.dtbo med den här filen:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: kom ihåg att packa upp den och lägga den på din/boot/overlay/mapp och ersätta den gamla.
6. Starta om din Raspberry Pi.
Steg 6: Steg5: Konfigurera I2C (Raspberry Pi)
Kör sudo raspi-config och följ anvisningarna för att installera i2c-stöd för ARM-kärnan och Linux-kärnan Gå till gränssnittsalternativ
Steg 7: Steg6: Vet om registerinformationen
GPRS -avsnitt
Låg strömförbrukning, vänteläge <1mA2.
Stödjer GSM/GPRS fyra frekvensband, inklusive 850, 900, 1800, 1900MHZ
GPRS klass 10
Stöd GPRS -datatjänst, maximal datahastighet, ladda ner 85,6 Kbps, ladda upp 42,8 Kbps
Stödja vanliga GSM07.07, 07.05 AT -kommandon och få åtkomst till den seriella porten via I2C -gränssnittskonvertering
AT -kommandon stöder standard AT- och TCP/IP -kommandoporter
GPS -sektion Stöd BDS/GPS gemensam positionering
Stöd A-GPS, A-BDS
Stödjer standard SIM -kort
LORA -sektion Överföringsavstånd: 500 meter (RF -parametrar: 0x50 @ China City)
Stödja FSK, GFSK, MSK, GMSK, LoRaTM och OOK moduleringsmetoder
Ultrahög mottagarkänslighet så låg som -141 dBm
Stöd inledningsdetektering
Paketmotor med CRC, upp till 256 byte
LORA -mottagarindikator
Enkel TX/RX av Docker Pi
Steg 8:
A9G -modul
A9G -modulen har två seriella portar.
Använd I2C UART -brygga för kommunikation.
Seriell portmodulnamn
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Registrera karta
- Registrera adress Funktionsvärde
- 0x01 LORA_TX1 Lora TX Buffer 1 - Användardata
- 0x02 LORA_TX2 Lora TX Buffer 2 - Användardata
- 0x03 LORA_TX3 Lora TX Buffer 3 - Användardata
- 0x04 LORA_TX4 Lora TX Buffer 4 - Användardata
- 0x05 LORA_TX5 Lora TX Buffer 5 - Användardata
- 0x06 LORA_TX6 Lora TX Buffer 6 - Användardata
- 0x07 LORA_TX7 Lora TX Buffer 7 - Användardata
- 0x08 LORA_TX8 Lora TX Buffer 8 - Användardata
- 0x09 LORA_TX9 Lora TX Buffer 9 - Användardata
- 0x0a LORA_TX10 Lora TX Buffer 10 - Användardata
- 0x0b LORA_TX11 Lora TX Buffer 11 - Användardata
- 0x0c LORA_TX12 Lora TX Buffer 12 - Användardata
- 0x0d LORA_TX13 Lora TX Buffer 13 - Användardata
- 0x0e LORA_TX14 Lora TX Buffer 14 - Användardata
- 0x0f LORA_TX15 Lora TX Buffer 15 - Användardata
- 0x10 LORA_TX16 Lora TX Buffer 16 - Användardata
- 0x11 LORA_RX1 Lora RX Buffer 1 - Användardata
- 0x12 LORA_RX2 Lora RX Buffer 2 - Användardata
- 0x13 LORA_RX3 Lora RX Buffer 3 - Användardata
- 0x14 LORA_RX4 Lora RX Buffer 4 - Användardata
- 0x15 LORA_RX5 Lora RX Buffer 5 - Användardata
- 0x16 LORA_RX6 Lora RX Buffer 6 - Användardata
- 0x17 LORA_RX7 Lora RX Buffer 7 - Användardata
- 0x18 LORA_RX8 Lora RX Buffer 8 - Användardata
- 0x19 LORA_RX9 Lora RX Buffer 9 - Användardata
- 0x1a LORA_RX10 Lora RX Buffer 10 - Användardata
- 0x1b LORA_RX11 Lora RX Buffer 11 - Användardata
- 0x1c LORA_RX12 Lora RX Buffer 12 - Användardata
- 0x1d LORA_RX13 Lora RX Buffer 13 - Användardata
- 0x1e LORA_RX14 Lora RX Buffer 14 - Användardata
- 0x1f LORA_RX15 Lora RX Buffer 15 - Användardata
- 0x20 LORA_RX16 Lora RX Buffer 16 - Användardata
- 0x01 - 0x10 Endast skriv.
- 0x11 - 0x20 Skrivskyddad.
Steg 9: Instruktioner:
L_SET (endast skriv)
- Skriv 1 för att ställa in parametrar från 0x22 till LORA -modul.
- Skriv 0 inte effekt
G_RESET (endast skriv)
- Skriv 1 för att återställa A9G -modulen
- Skriv 0 inte effekt
L_RXNE (Läs och skriv)
- Skriv 1 orsak fel
- Skriv 0 för att rensa
- Läs 1 betyder att data har mottagits. Hämta data från registret 0x11 - 0x20.
- Läs 0 betyder ingen data tillgänglig nu.
L_SET (endast skriv)
- Skriv 1 för att skicka data, fyll i uppgifterna i register 0x01 - 0x10 innan du skickar.
- Skriv 0 inte effekt
Steg 10: Så här använder du GPS -modul med Gpsd (Raspberry Pi)
Hur man använder GPS -modul med gpsd (Raspberry Pi)
Byt först ut /boot/overlays/sc16is752-i2c.dtbo och se till att I2C fungerar korrekt.
- Byt ut sc16is752-i2c.dtbo
- Konfigurera I2C
- Installera gpsd -verktyg.
Öppna en terminal och skriv detta kommando:
sudo apt installera gpsd gpsd-klienter
Ändra/etc/default/gpsd -filen och lägg till följande parametrar:
- ENHETER = "/dev/ttySC1"
- GPSD_OPTIONS = "-F /var/run/gpsd.sock"
Ange kommandot i2cset -y 1 0x16 0x23 0x40 för att återställa GPRS -modulen.
Python -skript för öppen GPS:
import serialimport os importtid # Starta om gpsd -tjänsten. os.system ("sudo systemctl restart gpsd.socket") # Öppna seriell port ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 om ser.isOpen == False: ser.open () försök: print ("Slå på GPS …") medan True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () om storlek! = 0: ticks = time.time () svar = ser.read (storlek) gps = str (svar, kodning = "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 outdoors:" + str (i)) ser.flushInput () time.sleep (1) utom KeyboardInterrupt: ser.flushInput () ser.close ()
Spara det och kör det:
python3 GPS.py
Steg 11: Hur man använder GPS -modul med C (Raspberry Pi)
Installera gpsd -verktyg
sudo apt-get install libgps-dev
Skapa källkod och ge den namnet "gps.c"
#include #include #include
#omfatta
#omfatta
int main ()
{int rc; struct timeval tv; struct gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("code: %d, reason: %s / n", rc, gps_errstr (rc)); returnera EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
medan (1)
{ / * vänta i 2 sekunder för att ta emot data * / if (gps_waiting (& gps_data, 2000000)) { / * läs data * / if ((rc = gps_read (& gps_data)) == -1) {printf ("fel uppstod vid läsning gps -data. kod: %d, orsak: %s / n ", rc, gps_errstr (rc)); } annars { /* Visa data från GPS -mottagaren. */ 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 är faktiskt inte tidsstämpeln! */
printf ("latitud: %f, longitud: %f, hastighet: %f, tidsstämpel: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: Ersatt tv.tv_sec med gps_data.fix.time} else {printf ("ingen GPS -data tillgänglig / n"); }}} sömn (3); } / * När du är klar … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); returnera EXIT_SUCCESS; }
Steg 12: Kompilera det
Sammanställa!
gcc gps.c -lm -lgps -o gps
Exec It!
./gps
Steg 13: Hur man använder GPS -modul med Python (Raspberry Pi)
Följande kod rekommenderas att köras med Python 3 och installera gpsd-py3-biblioteket och GPS 2D/3D Fix:
importera gpsd
# Anslut till den lokala gpsd
gpsd.connect ()
# Få GPS -position
paket = gpsd.get_current ()
# Se de inbyggda dokumenten för GpsResponse för tillgänglig data
print (packet.position ())
Steg 14: Hur man använder GSM -modul med PPPd (Raspberry Pi)
A) Byt först ut /boot/overlays/sc16is752-i2c.dtbo och se till att I2C fungerar korrekt.
- Byt ut sc16is752-i2c.dtbo
- Konfigurera I2C
B) Ange kommando i2cset -y 1 0x16 0x23 0x40 för att återställa GPRS -modulen.
Efter att ha kört kommandot måste du vänta lite, cirka 10 sekunder
Du kan också använda följande metod för att återställa.
C) Ange kommando
sudo apt installera ppp
för att installera ppp -verktyg.
D) Kopiera/etc/ppp/peers/provider till/etc/ppp/peers/gprs
E) Ändra/etc/ppp/peers/gprs
- Rad 10: Kontakta din tjänsteleverantör för användaren (exempel: cmnet).
- Rad 15: Kontakta din tjänsteleverantör för apn (exempel: cmnet).
- Rad 18 - Linje 24: Rekommenderad inställning
F) Ändra/etc/chatscripts/gprs (Ändra rad 34 till rad 35, uppringningsnummer kan INTE vara *99#)
G) Ange kommando sudo pppd ring gprs för att ringa upp.
H) Kontrollera din ppp -konfiguration från din ISP.
I) Ange kommando ping -I ppp0 8.8.8.8 testa ditt nätverk (om internet tillgängligt och ruttabellen är korrekt)
J) Behåll GSM -signalen bra, annars inträffar följande.
Steg 15: Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Följande kod rekommenderas att köras med Python 3 och installera smbus -biblioteket:
import serieimport tid import smbus import operatör import os
print ("Väntar på initialisering …")
buss = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = serial. Serial ('/dev/ttySC0', 115200)
om ser.isOpen == Falskt:
ser.open () försök: print ('-'*60) print ("Initierar A9G GPRS-modul.") print ("GSM-anslutning …") time.sleep (3) i = 0 medan 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) utom KeyboardInterrupt: ser.close ()
Exec the Test Script, baserat på resultaten av implementeringen, kan vi diagnostisera GSM -modulen. Till exempel, följande retur, CME ERROR 53 -fel berätta för oss Ström inte bra. CME -kod = GSM -utrustning relaterade fel
Naturligtvis har skriptet också en återställningsfunktion. Om du kan visa CCID korrekt är återställningen klar.
Steg 16: Hur man använder Lora TX & RX med C (Raspberry Pi)
Följande kod rekommenderas att köras med Python 3 och installera smbus -biblioteket.
Den måste överföras mellan de två IOT -noden (A). Innehållet som skickas av sig själv kan inte tas emot av sig själv. Spara det som ett py -skript för körning.
Hur man skickar: Efter att ha fyllt i data i register 0x01 - 0x10, ställ in L_TX -biten för att börja skicka data.
import timeimport smbus import os import sys
buss = smbus. SMBus (1)
Prova:
data_list = [170, 85, 165, 90] # skriva data för att registrera och sedan skickas data ut. för index i intervall (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) skriv ut ("LORA skicka data till %d register %d data" %(index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) utom KeyboardInterrupt: sys.exit ()
Så här skickar du mottagning: Kontrollera L_RXNE -bit. Om ny data har angetts måste den här flaggan vara klar manuellt
import timeimport smbus import os import sys
buss = smbus. SMBus (1)
recv_data =
Prova:
if bus.read_byte_data (0x16, 0x23) & 0x02: # rensa manuellt L_RXNE buss.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # läs ut data för index i intervall (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11])))
print ("Mottagna data:")
print (recv_data) else: print ("Ingen data mottagen ännu ~") utom KeyboardInterrupt: sys.exit ()
Steg 17: Särskild beskrivning av I2C -bandbredd
Gränsen för I2C -hastigheten är 400 kHz, på grund av I2C -protokollet, så den enda enhetens effektiva bandbredd är lägre än 320 kbps, effektiv enhet för flera enheter är lägre än 160 kbps. Gränsen för I2C UART -brygghastigheten är 115200bps. När GPS och GSM I2C -bandbredd är otillräcklig eftersom 115,2 kbps * 2 = 230,4 kbps, så vissa data kommer att överflödas. Minskning av överföringshastigheten för GPS och GSM -kommunikation kan förbättra bristen på kommunikationsbandbredd. Att packa andra DockerPi -moduler kan ta upp extra I2C -bandbredd. Vanligtvis är nätverksdatahastigheten långsam, så GSM -bandbredden är inte full, så det finns inget överflödsproblem.
Steg 18: Avslutad
Hoppas ni gillar det och gör det.
du hittar den här:
Amazon
Nattljus: 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 istornet:
Rekommenderad:
Hur man använder en Raspberry Pi: s GPIO-stift och Avrdude till Bit-bang-program DIMP 2 eller DA PIMP 2: 9 steg
Hur man använder en Raspberry Pi: s GPIO-stift och Avrdude till Bit-bang-program DIMP 2 eller DA PIMP 2: Det här är steg-för-steg-instruktioner om hur du använder en Raspberry Pi och det fria kommandot med öppen källkod avrdude till bit-bang -programmera en DIMP 2 eller DA PIMP 2. Jag antar att du är bekant med din Raspberry Pi och kommandoraden LINUX. Du behöver inte
Hur man skapar en Linux -boot -enhet (och hur man använder den): 10 steg
Hur man skapar en Linux Boot Drive (och hur man använder den): Detta är en enkel introduktion om hur man kommer igång med Linux, särskilt Ubuntu
Hur man använder stegmotor som roterande kodare och OLED -display för steg: 6 steg
Så här använder du stegmotor som roterande kodare och OLED -skärm för steg: I denna handledning lär vi oss hur du spårar stegmotorstegen på OLED -skärmen. Titta på en demonstrationsvideo. Kredit för den ursprungliga handledningen går till YouTube -användaren " sky4fly "
Hur man använder Mac Terminal och hur man använder viktiga funktioner: 4 steg
Så här använder du Mac Terminal och hur du använder viktiga funktioner: Vi visar dig hur du öppnar MAC Terminal. Vi kommer också att visa dig några funktioner i terminalen, till exempel ifconfig, ändra kataloger, komma åt filer och arp. Ifconfig låter dig kontrollera din IP -adress och din MAC -annons
Hur man använder Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -kompatibelt kort med hjälp av Blynk: 10 steg
Hur man använder Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -kompatibelt kort med hjälp av Blynk: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -kompatibelt kort Beskrivning: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 är ett WIFI -utvecklingsbord baserat på ESP8266 12E. Funktionen liknar den för NODEMCU, förutom att hårdvaran är byggd