INHOUDSOPGAWE:
- Voorrade
- Stap 1: Kenmerke
- Stap 2: Stap1: Weet oor die IoT (A) -bord
- Stap 3: Stap2: Hoe om dit te monteer
- Stap 4: Stap 3: Sluit antenne aan
- Stap 5: Stap4: OS -omgewing en sagteware -konfigurasies
- Stap 6: Stap5: Konfigurasie van I2C (Raspberry Pi)
- Stap 7: Stap6: Weet oor die registerinligting
- Stap 8:
- Stap 9: Instruksies:
- Stap 10: Hoe om 'n GPS -module te gebruik met Gpsd (Raspberry Pi)
- Stap 11: Hoe om 'n GPS -module te gebruik met C (Raspberry Pi)
- Stap 12: Stel dit op
- Stap 13: Hoe om 'n GPS -module te gebruik met Python (Raspberry Pi)
- Stap 14: Hoe om die GSM -module te gebruik met PPPd (Raspberry Pi)
- Stap 15: Hoe om my GSM -module (Framboos Pi) te diagnoseer
- Stap 16: Hoe om Lora TX & RX te gebruik met C (Raspberry Pi)
- Stap 17: Spesiale beskrywing van I2C -bandwydte
- Stap 18: klaar
Video: [Docker Pi -reeks] Hoe om die IoT Node (A) -module op Raspberry Pi te gebruik: 18 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Wat is die IoT Node (A) -module?
IoT Node (A) is een van die Docker Pi -reeksmodules.
IOT Node (A) = GPS/BDS + GSM + Lora.
I2C beheer Lora direk, stuur en ontvang data, beheer die GSM/GPS/BDS -module deur middel van SC16IS752; die moederbord benodig slegs I2C -ondersteuning.
Ondersteun Raspberry Pi en ander soortgelyke produkte.
Voorrade
1x Framboos Pi 2B/3B/3B+/4B/3A+/Zero/Zero W
1x produk van die Docker Pi -reeks: IoT Node (A) -module
1x 16GB klas 10 TF -kaart
1x 5V/2.5A kragtoevoer (5V@3A vir Pi 4B)
Stap 1: Kenmerke
- Docker Pi -reeks
- Programmeerbaar
- Beheer direk (sonder programmering)
- Brei die GPIO -penne uit
- GPS/BDS Ondersteuning
- GSM -ondersteuning
- Lora Ondersteuning
- Kan stapel met ander stapelbord
- Onafhanklik van die hardebord hardeware (benodig I2C -ondersteuning)
Stap 2: Stap1: Weet oor die IoT (A) -bord
IoT Node (A) is een van die Docker Pi -reeksmodules.
IOT Node (A) = GPS/BDS + GSM + Lora.
I2C beheer Lora direk, stuur en ontvang data, beheer die GSM/GPS/BDS -module deur middel van SC16IS752, die moederbord benodig slegs I2C -ondersteuning. Ondersteuning Raspberry Pi en ander soortgelyke produkte.
U kan dus 'n middelafstand -kommunikasietoestel maak deur twee daarvan te gebruik.
en u kan ook die ligging van u toestel opspoor deur die GPS -module aan boord te gebruik.
Plaas 'n SIM -kaart, dit word 'n senderstasie via 'n SMS -boodskap.
Stap 3: Stap2: Hoe om dit te monteer
Dit is baie maklik om dit te monteer as gevolg van die "HAT" -ontwerp, jy sit dit net op jou framboospi en verbind dit via GPIO -penne, dit is soos 'n "hoed" op framboospi, sodat jy nie die massa hoef by te voeg nie draad.
Stap 4: Stap 3: Sluit antenne aan
Daar is 3 stukke antenna vir hierdie IoT (A) -module, een daarvan is vir die leermodule, dit is 'n SMA -antenna, en een daarvan is goed vir u GPS, dit is 'n vierkantige antenna met 'n IPX -poort. en die laaste een is vir die SIM -module (A9G), dit is 'n klein antenna met 'n IPX -poort. koppel die antenna en monteer die hoed op u framboospi.
Monteer die Iot Node (A) -bord op Raspberry Pi
Sluit GPS -antana en Lora antana aan op IPX -poort.
- E1: GPS-ANTANA-IPX
- E3: LoRa-ANTANA-IPX
Skroef die GPRS -antana op die SMA -poort vas.
Stap 5: Stap4: OS -omgewing en sagteware -konfigurasies
In hierdie stap moet u die volgende dinge doen:
1. Laai die nuutste beeldlêer af van: www.raspberrypi.org/downloads
2. Pak dit uit.
3. Flits u TF -kaart met die nuutste beeld via etserhulpmiddel
4. Wysig die /boot/config.txt -lêer en voeg hierdie paragraaf by.
dtoverlay = sc16is752-i2c
5. Vervang /boot/overlay/sc16is752-i2c.dtbo lêer deur hierdie lêer:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: onthou om dit uit te pak, plaas dit op u/boot/overlay/map en vervang die ou.
6. Herlaai jou Framboos Pi.
Stap 6: Stap5: Konfigurasie van I2C (Raspberry Pi)
Begin sudo raspi-config en volg die instruksies om i2c-ondersteuning vir die ARM-kern en Linux-kern te installeer Gaan na Interfacing Options
Stap 7: Stap6: Weet oor die registerinligting
GPRS -afdeling
Lae kragverbruik, slaapstand by <1mA2.
Ondersteun vier frekwensiebande GSM/GPRS, insluitend 850, 900, 1800, 1900MHZ
GPRS klas 10
Ondersteun GPRS -datadiens, maksimum datatempo, laai 85.6Kbps af, laai 42.8Kbps op
Ondersteun standaard GSM07.07, 07.05 AT opdragte, en kry toegang tot die seriële poort deur middel van die omskakeling van die I2C -koppelvlak
AT -opdragte ondersteun standaard AT- en TCP/IP -opdragpoorte
GPS -afdeling Ondersteun BDS/GPS -gewrigsposisionering
Ondersteun A-GPS, A-BDS
Ondersteun standaard SIM -kaart
LORA -afdeling Oordragafstand: 500 meter (RF -parameters: 0x50 @ China City)
Ondersteun FSK-, GFSK-, MSK-, GMSK-, LoRaTM- en OOK -modulasiemetodes
Ultra -hoë ontvanger sensitiwiteit so laag as -141 dBm
Ondersteun aanhefopsporing
Pakkie -enjin met CRC, tot 256 grepe
LORA transceiver aanwyser
Maklike TX/RX deur Docker Pi
Stap 8:
A9G -module
Die A9G -module bied twee seriële poort.
Gebruik I2C UART -brug vir kommunikasie.
Serial Port Module naam
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Registreer kaart
- Registreer adres Funksie Waarde
- 0x01 LORA_TX1 Lora TX Buffer 1 - Gebruikersdata
- 0x02 LORA_TX2 Lora TX Buffer 2 - Gebruikersdata
- 0x03 LORA_TX3 Lora TX Buffer 3 - Gebruikersdata
- 0x04 LORA_TX4 Lora TX Buffer 4 - Gebruikersdata
- 0x05 LORA_TX5 Lora TX Buffer 5 - Gebruikersdata
- 0x06 LORA_TX6 Lora TX Buffer 6 - Gebruikersdata
- 0x07 LORA_TX7 Lora TX Buffer 7 - Gebruikersdata
- 0x08 LORA_TX8 Lora TX Buffer 8 - Gebruikersdata
- 0x09 LORA_TX9 Lora TX Buffer 9 - Gebruikersdata
- 0x0a LORA_TX10 Lora TX Buffer 10 - Gebruikersdata
- 0x0b LORA_TX11 Lora TX Buffer 11 - Gebruikersdata
- 0x0c LORA_TX12 Lora TX Buffer 12 - Gebruikersdata
- 0x0d LORA_TX13 Lora TX Buffer 13 - Gebruikersdata
- 0x0e LORA_TX14 Lora TX Buffer 14 - Gebruikersdata
- 0x0f LORA_TX15 Lora TX Buffer 15 - Gebruikersdata
- 0x10 LORA_TX16 Lora TX Buffer 16 - Gebruikersdata
- 0x11 LORA_RX1 Lora RX Buffer 1 - Gebruikersdata
- 0x12 LORA_RX2 Lora RX Buffer 2 - Gebruikersdata
- 0x13 LORA_RX3 Lora RX Buffer 3 - Gebruikersdata
- 0x14 LORA_RX4 Lora RX Buffer 4 - Gebruikersdata
- 0x15 LORA_RX5 Lora RX Buffer 5 - Gebruikersdata
- 0x16 LORA_RX6 Lora RX Buffer 6 - Gebruikersdata
- 0x17 LORA_RX7 Lora RX Buffer 7 - Gebruikersdata
- 0x18 LORA_RX8 Lora RX Buffer 8 - Gebruikersdata
- 0x19 LORA_RX9 Lora RX Buffer 9 - Gebruikersdata
- 0x1a LORA_RX10 Lora RX Buffer 10 - Gebruikerdata
- 0x1b LORA_RX11 Lora RX Buffer 11 - Gebruikersdata
- 0x1c LORA_RX12 Lora RX Buffer 12 - Gebruikerdata
- 0x1d LORA_RX13 Lora RX Buffer 13 - Gebruikerdata
- 0x1e LORA_RX14 Lora RX Buffer 14 - Gebruikersdata
- 0x1f LORA_RX15 Lora RX Buffer 15 - Gebruikersdata
- 0x20 LORA_RX16 Lora RX Buffer 16 - Gebruikersdata
- 0x01 - 0x10 Slegs skryf.
- 0x11 - 0x20 Leesalleen.
Stap 9: Instruksies:
L_SET (slegs skryf)
- Skryf 1 om parameters van 0x22 na LORA -module in te stel.
- Skryf 0 nie effek nie
G_RESET (slegs skryf)
- Skryf 1 om die A9G -module terug te stel
- Skryf 0 nie effek nie
L_RXNE (Lees en skryf)
- Skryf 1 oorsaakfout
- Skryf 0 om uit te vee
- Lees 1 beteken dat data ontvang is, kry die data uit die register 0x11 - 0x20.
- Lees 0 beteken dat daar geen data beskikbaar is nie.
L_SET (slegs skryf)
- Skryf 1 om data te stuur, vul die data in register 0x01 - 0x10 in voordat u dit stuur.
- Skryf 0 nie effek nie
Stap 10: Hoe om 'n GPS -module te gebruik met Gpsd (Raspberry Pi)
Hoe om 'n GPS -module met GPS (Raspberry Pi) te gebruik
Vervang eers die /boot/overlays/sc16is752-i2c.dtbo en maak seker dat I2C behoorlik werk.
- Vervang sc16is752-i2c.dtbo
- I2C opstel
- Installeer gpsd -gereedskap.
Maak 'n terminale oop en tik hierdie opdrag:
sudo apt installeer gpsd gpsd-kliënte
Verander/etc/default/gpsd -lêer en voeg die volgende parameters by:
- TOESTELLE = "/dev/ttySC1"
- GPSD_OPTIONS = "-F /var/run/gpsd.sock"
Voer opdrag i2cset -y 1 0x16 0x23 0x40 in om die GPRS -module terug te stel.
Python -skrip vir oop GPS:
invoer serialimport os invoertyd # Herbegin gpsd -diens. os.system ("sudo systemctl herbegin gpsd.socket") # Maak seriële poort oop ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 as ser.isOpen == Onwaar: ser.open () probeer: druk ("Skakel GPS aan …") terwyl True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () as grootte! = 0: bosluise = time.time () response = ser.read (grootte) 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, If the time is too long, Please test outdoors:" + str (i)) ser.flushInput () time.sleep (1) behalwe KeyboardInterrupt: ser.flushInput () ser.close ()
Stoor dit en voer dit uit:
python3 GPS.py
Stap 11: Hoe om 'n GPS -module te gebruik met C (Raspberry Pi)
Installeer gpsd -gereedskap
sudo apt-get installeer libgps-dev
Skep bronkode en noem dit "gps.c"
#include #include #include
#insluit
#insluit
int main ()
{int rc; struct timeval tv; struct gps_data_t gps_data; as ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("code: %d, rede: %s / n", rc, gps_errstr (rc)); stuur EXIT_FAILURE terug; } gps_stroom (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
terwyl (1)
{ / * wag 2 sekondes om data te ontvang * / if (gps_waiting (& gps_data, 2000000)) { / * lees data * / if ((rc = gps_read (& gps_data)) == -1) {printf ("fout het gelees gps -data. kode: %d, rede: %s / n ", rc, gps_errstr (rc)); } anders { /* Gee data vanaf die GPS -ontvanger. */ 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 is eintlik nie die tydstempel nie! */
printf ("breedtegraad: %f, lengte: %f, snelheid: %f, tydstempel: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: TV.tv_sec vervang met gps_data.fix.time} else {printf ("geen GPS -data beskikbaar nie / n"); }}} slaap (3); } / * As u klaar is … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); stuur EXIT_SUCCESS terug; }
Stap 12: Stel dit op
Stel saam!
gcc gps.c -lm -lgps -o gps
Uitvoer dit!
./gps
Stap 13: Hoe om 'n GPS -module te gebruik met Python (Raspberry Pi)
Die volgende kode word aanbeveel om met Python 3 uitgevoer te word en die gpsd-py3-biblioteek en GPS 2D/3D Fix te installeer:
invoer gpsd
# Koppel aan die plaaslike gpsd
gpsd.connect ()
# Kry GPS -posisie
pakkie = gpsd.get_current ()
# Sien die inline dokumente vir GpsResponse vir die beskikbare data
druk (pakkie.posisie ())
Stap 14: Hoe om die GSM -module te gebruik met PPPd (Raspberry Pi)
A) Vervang eers die /boot/overlays/sc16is752-i2c.dtbo en maak seker dat I2C behoorlik werk.
- Vervang sc16is752-i2c.dtbo
- I2C opstel
B) Voer opdrag i2cset -y 1 0x16 0x23 0x40 in om die GPRS -module terug te stel.
Nadat u die opdrag uitgevoer het, moet u ongeveer 10 sekondes wag
U kan ook die volgende metode gebruik om terug te stel.
C) Voer die opdrag in
sudo apt installeer ppp
ppp -gereedskap te installeer.
D) Kopieer/etc/ppp/peers/provider na/etc/ppp/peers/gprs
E) Wysig/etc/ppp/peers/gprs
- Reël 10: Raadpleeg u diensverskaffer vir die gebruiker (byvoorbeeld: cmnet).
- Reël 15: Raadpleeg u diensverskaffer vir die APN (voorbeeld: cmnet).
- Reël 18 - Reël 24: Aanbevole instelling
F) Verander/etc/chatscripts/gprs (Verander reël 34 na reël 35, uitbelnommer mag NIE *99#wees nie)
G) Tik opdrag sudo pppd bel gprs om in te skakel.
H) Kontroleer u PPP -konfigurasie van u ISP.
I) Tik opdrag ping -I ppp0 8.8.8.8 toets u netwerk (as internet beskikbaar en roetetabel korrek is)
J) Hou die GSM -sein goed, anders gebeur die volgende.
Stap 15: Hoe om my GSM -module (Framboos Pi) te diagnoseer
Die volgende kode word aanbeveel om met Python 3 uitgevoer te word en die smbus -biblioteek te installeer:
invoer reeksimport tyd invoer smbus invoer operateur invoer os
print ("Wag vir inisialisering …")
bus = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = serial. Serial ('/dev/ttySC0', 115200)
as ser.isOpen == Onwaar:
ser.open () probeer: print ('-'*60) print ("Initialiseer A9G GPRS-module.") print ("GSM-verbinding …") time.sleep (3) i = 0 terwyl 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 ") druk (ccid) anders: i = i + 1 ser.flushInput () time.sleep (1) behalwe KeyboardInterrupt: ser.close ()
Ons kan die GSM -module diagnoseer, gebaseer op die resultate van die implementering, byvoorbeeld die volgende opgawe, CME ERROR 53 -fout, vertel ons dat die krag nie goed is nie. CME -kode = GSM -toerusting verwante foute
Die script het natuurlik ook 'n reset -funksie. As u die CCID korrek kan vertoon, is die herstel voltooi.
Stap 16: Hoe om Lora TX & RX te gebruik met C (Raspberry Pi)
Die volgende kode word aanbeveel om met Python 3 uitgevoer te word en die smbus -biblioteek te installeer.
Dit moet oorgedra word tussen die twee IOT Node (A). Die inhoud wat op sigself gestuur word, kan nie self ontvang word nie. Stoor dit as 'n py -script vir uitvoering.
Hoe om te stuur: Nadat u die data in register 0x01 - 0x10 gevul het, stel die L_TX -bit in om data te begin stuur.
invoer timeimport smbus invoer os invoer sys
bus = smbus. SMBus (1)
probeer:
data_list = [170, 85, 165, 90] # skryf data om te registreer, en dan word die data gestuur. vir indeks in reeks (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) druk ("LORA stuur data na %d register %d data" %(index, data_list [indeks - 1])) bus.write_byte_data (0x16, 0x23, 0x01) behalwe KeyboardInterrupt: sys.exit ()
Hoe om ontvangs te stuur: Kontroleer L_RXNE -bietjie, as nuwe data aangebring is, moet hierdie vlag handmatig duidelik wees
invoer timeimport smbus invoer os invoer sys
bus = smbus. SMBus (1)
recv_data =
probeer:
as bus.read_byte_data (0x16, 0x23) & 0x02: # vee handmatig L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # lees data uit vir indeks in reeks (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11])))
print ("Ontvangde data:")
druk (recv_data) anders: druk ("Nog geen data ontvang nie ~") behalwe KeyboardInterrupt: sys.exit ()
Stap 17: Spesiale beskrywing van I2C -bandwydte
Die limiet van die I2C -spoed is 400kHz, as gevolg van die I2C -protokol, sodat die effektiewe bandwydte van die enkele toestel laer is as 320kbps, is die effektiewe bandwydte van meer as 160kbps laer. Die limiet van die I2C UART -brugspoed is 115200bps. terselfdertyd werk, is I2C -bandwydte onvoldoende, want 115,2 kbps * 2 = 230,4 kbps, sodat sommige data oorloop. Die verlaagde baud -tempo van GPS en GSM -kommunikasie kan die tekort aan kommunikasiebandbreedte verbeter. ekstra I2C -bandwydte. Gewoonlik is die netwerkdatasnelheid stadig, sodat die GSM -bandwydte nie vol is nie, dus is daar geen oorloopprobleem nie.
Stap 18: klaar
Hoop julle hou daarvan en maak dit reg.
jy kan dit hier vind:
Amazon
Naglig: https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4-kanaal 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 Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 ystoring :
Aanbeveel:
Hoe om Mac Terminal te gebruik en hoe om sleutelfunksies te gebruik: 4 stappe
Hoe om Mac Terminal te gebruik en hoe om belangrike funksies te gebruik: Ons sal u wys hoe u die MAC Terminal kan oopmaak. Ons sal u ook 'n paar funksies in die Terminal wys, soos ifconfig, veranderende gidse, toegang tot lêers en arp. Met Ifconfig kan u u IP -adres en u MAC -advertensie nagaan
Hoe om die veiligheid van die meeste blokkeerders aan die kant van die bediener te omseil: 3 stappe
Hoe om die veiligheid van die meeste webblokkers op die bediener te verlig: dit is my eerste instruksie, so hou my in gedagte: Ok, ek sal u vertel hoe u die webblokkers wat ek in skole gebruik het, kan omseil. Al wat u nodig het, is 'n flash drive en 'n paar sagteware aflaai
Hoe om probleme op te los met die afstandsbediening van die Pionner -stuurwiel - Verhoog die IR -sein en herstel die klein slot: 14 stappe
Hoe om probleme op te los met die afstandsbediening van die stuurwiel van Pionner - Verhoog die IR -sein en herstel die klein slot.: Hierdie afstandsbediening is baie mooi en gerieflik, maar soms werk dit nie behoorlik nie. projek is nie 'n voorbeeld van doeltreffendheid nie. Ek kom uit Brasilië en het hierdie wenk op Amaz gekry
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek
Voeg 'n PC Sync-aansluiting by 'n Nikon Sc-28 Ttl-kabel (gebruik outomatiese instellings vir 'n flits op die kamera en aktiveer die flits van die kamera !!): 4 stappe
Voeg 'n Pc Sync-aansluiting by 'n Nikon Sc-28 Ttl-kabel (gebruik outomatiese instellings vir 'n flits op die kamera en aktiveer flitsers van die kamera !!): in hierdie instruksies sal ek jou wys hoe om een van die lastige eie 3-pins TTL-aansluitings op te verwyder aan die kant van 'n Nikon SC-28-kamera met TTL-kabel en vervang dit met 'n standaard rekenaar-sinchronisasie-aansluiting. Hiermee kan u 'n spesiale flits gebruik