Sisukord:
- Tarvikud
- Samm: funktsioonid
- 2. samm: 1. samm: teadke IoT (A) tahvlit
- Samm: samm 2: kuidas seda kokku panna
- 4. samm: 3. samm: ühendage antenn
- 5. samm: 4. samm: OS -i keskkond ja tarkvara konfiguratsioonid
- 6. samm: 5. samm: I2C (Raspberry Pi) seadistamine
- 7. samm: 6. samm: teadke registriteavet
- 8. samm:
- 9. samm: juhised:
- Samm 10: GPS -mooduli kasutamine GPS -iga (Raspberry Pi)
- Samm 11: GPS -mooduli kasutamine C -ga (Raspberry Pi)
- 12. samm: selle koostamine
- Samm 13: GPS -mooduli kasutamine Pythoni (Raspberry Pi) abil
- 14. samm: kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
- Samm 15: Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
- Samm 16: Lora TX & RX kasutamine koos C -ga (Raspberry Pi)
- 17. samm: I2C ribalaiuse erikirjeldus
- 18. samm: lõpetatud
Video: [Docker Pi seeria] Kuidas kasutada IoT -sõlme (A) moodulit Raspberry Pi -l: 18 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Mis on IoT Node (A) moodul?
IoT Node (A) on üks Docker Pi seeria moodulitest.
IOT -sõlm (A) = GPS/BDS + GSM + Lora.
I2C juhib otse Lorat, saadab ja võtab vastu andmeid, juhib GSM/GPS/BDS moodulit SC16IS752 kaudu, emaplaat vajab ainult I2C tuge.
Toetage Raspberry Pi ja muid sarnaseid tooteid.
Tarvikud
1x Raspberry Pi 2B/3B/3B+/4B/3A+/null/null W
1x Docker Pi seeria toode: IoT Node (A) moodul
1x 16 GB klassi 10 TF -kaart
1x 5V/2,5A toiteallikas (5V@3A Pi 4B jaoks)
Samm: funktsioonid
- Docker Pi seeria
- Programmeeritav
- Juhtimine otse (ilma programmeerimiseta)
- Laiendage GPIO tihvte
- GPS/BDS tugi
- GSM tugi
- Lora tugi
- Saab virnastada teise Stack -plaadiga
- Emaplaadi riistvarast sõltumatu (nõuab I2C tuge)
2. samm: 1. samm: teadke IoT (A) tahvlit
IoT Node (A) on üks Docker Pi seeria moodulitest.
IOT -sõlm (A) = GPS/BDS + GSM + Lora.
I2C juhib otse Lorat, saadab ja võtab vastu andmeid, juhib GSM/GPS/BDS moodulit SC16IS752 kaudu, emaplaat vajab ainult I2C tuge. Toetage Raspberry Pi ja muid sarnaseid tooteid.
Nii et saate neist kahe abil luua keskmise ulatusega sideseadme.
samuti saate oma seadme asukoha leida, kasutades pardal olevat GPS -moodulit.
Sisestage SIM -kaart, sellest saab saatja jaam SMS -sõnumi kaudu.
Samm: samm 2: kuidas seda kokku panna
Selle "HAT" disaini tõttu on seda väga lihtne kokku panna, paned selle lihtsalt oma vaarika pi peale ja ühendate selle GPIO tihvtide kaudu, nagu vaarika pi "müts", nii et te ei pea massi lisama traat.
4. samm: 3. samm: ühendage antenn
Selle IoT (A) mooduli jaoks on 3 -osaline antenn, üks neist on loar -mooduli jaoks, see on SMA -tüüpi antenn ja üks neist sobib teile GPS -i jaoks, see on ruudukujuline antenn, millel on IPX -port. ja viimane on SIM -mooduli (A9G) jaoks, see on väike antenn, millel on IPX -port. ühendage antenn ja paigaldage müts oma vaarika pi külge.
Paigaldage Iot Node (A) plaat Raspberry Pi külge
Ühendage GPS -antana ja Lora antana IPX -porti.
- E1: GPS-ANTANA-IPX
- E3: LoRa-ANTANA-IPX
Kruvib SMA -pordi GPRS -antana.
5. samm: 4. samm: OS -i keskkond ja tarkvara konfiguratsioonid
Selles etapis peate tegema järgmist.
1. Laadige uusim pildifail alla aadressilt www.raspberrypi.org/downloads
2. Pakkige see lahti.
3. Välkutage oma TF -kaarti uusima pildiga söövitaja tööriista kaudu
4. Muutke faili /boot/config.txt ja lisage see lõik.
dtoverlay = sc16is752-i2c
5. Asendab /boot/overlay/sc16is752-i2c.dtbo faili selle failiga:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: pidage meeles, et pakkige see lahti ja pange see oma kausta/boot/overlay/ja asendage vana.
6. Taaskäivitage oma Raspberry Pi.
6. samm: 5. samm: I2C (Raspberry Pi) seadistamine
Käivitage sudo raspi-config ja järgige juhiseid, et installida i2c tugi ARM-i tuuma ja Linuxi kerneli jaoks Ava liidese valikud
7. samm: 6. samm: teadke registriteavet
GPRS -i jaotis
Madal energiatarve, ooterežiimis puhkevool <1mA2.
Toetage nelja sagedusriba GSM/GPRS, sealhulgas 850, 900, 1800, 1900 MHz
GPRS klass 10
Toetage GPRS -andmesideteenust, maksimaalne andmeedastuskiirus, laadige alla 85,6 Kbps, laadige üles 42,8 Kbps
Toetage standardseid GSM07.07, 07.05 AT käske ja pääsete jadapordile juurde I2C liidese teisendamise kaudu
AT -käsud toetavad standardseid AT- ja TCP/IP -käsupordi
GPS sektsioon Toetab BDS/GPS ühist positsioneerimist
Toetage A-GPS, A-BDS
Toetage tavalist SIM -kaarti
LORA sektsioon Edastuskaugus: 500 meetrit (RF parameetrid: 0x50 @ China City)
Toetage FSK, GFSK, MSK, GMSK, LoRaTM ja OOK modulatsioonimeetodeid
Ülimalt kõrge vastuvõtja tundlikkus kuni -141 dBm
Toetage preambuli tuvastamist
Pakettmootor CRC -ga, kuni 256 baiti
LORA transiiveri indikaator
Lihtne TX/RX, autor Docker Pi
8. samm:
A9G moodul
A9G moodul pakub kahte jadaporti.
Kasutage suhtlemiseks I2C UART silda.
Sarjapordi mooduli nimi
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Registreeri kaart
- Registreeri aadress Funktsioon Väärtus
- 0x01 LORA_TX1 Lora TX puhver 1 - kasutajaandmed
- 0x02 LORA_TX2 Lora TX puhver 2 - kasutajaandmed
- 0x03 LORA_TX3 Lora TX puhver 3 - kasutajaandmed
- 0x04 LORA_TX4 Lora TX puhver 4 - kasutajaandmed
- 0x05 LORA_TX5 Lora TX puhver 5 - kasutajaandmed
- 0x06 LORA_TX6 Lora TX puhver 6 - kasutajaandmed
- 0x07 LORA_TX7 Lora TX puhver 7 - kasutajaandmed
- 0x08 LORA_TX8 Lora TX puhver 8 - kasutajaandmed
- 0x09 LORA_TX9 Lora TX puhver 9 - kasutajaandmed
- 0x0a LORA_TX10 Lora TX puhver 10 - kasutajaandmed
- 0x0b LORA_TX11 Lora TX puhver 11 - kasutajaandmed
- 0x0c LORA_TX12 Lora TX puhver 12 - kasutajaandmed
- 0x0d LORA_TX13 Lora TX puhver 13 - kasutajaandmed
- 0x0e LORA_TX14 Lora TX puhver 14 - kasutajaandmed
- 0x0f LORA_TX15 Lora TX puhver 15 - kasutajaandmed
- 0x10 LORA_TX16 Lora TX puhver 16 - kasutajaandmed
- 0x11 LORA_RX1 Lora RX puhver 1 - kasutajaandmed
- 0x12 LORA_RX2 Lora RX puhver 2 - kasutajaandmed
- 0x13 LORA_RX3 Lora RX puhver 3 - kasutajaandmed
- 0x14 LORA_RX4 Lora RX puhver 4 - kasutajaandmed
- 0x15 LORA_RX5 Lora RX puhver 5 - kasutajaandmed
- 0x16 LORA_RX6 Lora RX puhver 6 - kasutajaandmed
- 0x17 LORA_RX7 Lora RX puhver 7 - kasutajaandmed
- 0x18 LORA_RX8 Lora RX puhver 8 - kasutajaandmed
- 0x19 LORA_RX9 Lora RX puhver 9 - kasutajaandmed
- 0x1a LORA_RX10 Lora RX puhver 10 - kasutajaandmed
- 0x1b LORA_RX11 Lora RX puhver 11 - kasutajaandmed
- 0x1c LORA_RX12 Lora RX puhver 12 - kasutajaandmed
- 0x1d LORA_RX13 Lora RX puhver 13 - kasutajaandmed
- 0x1e LORA_RX14 Lora RX puhver 14 - kasutajaandmed
- 0x1f LORA_RX15 Lora RX puhver 15 - kasutajaandmed
- 0x20 LORA_RX16 Lora RX puhver 16 - kasutajaandmed
- 0x01 - 0x10 Ainult kirjutamine.
- 0x11 - 0x20 kirjutuskaitstud.
9. samm: juhised:
L_SET (ainult kirjutamine)
- Kirjutage 1, et määrata parameetrid 0x22 kuni LORA moodul.
- Kirjutage 0 ei mõju
G_RESET (ainult kirjutamine)
- A9G mooduli lähtestamiseks kirjutage 1
- Kirjutage 0 ei mõju
L_RXNE (lugemine ja kirjutamine)
- Kirjutage 1 põhjuse viga
- Kustutamiseks kirjutage 0
- Lugemine 1 tähendab, et andmed on vastu võetud. Palun hankige andmed registrist 0x11 - 0x20.
- Lugemine 0 tähendab, et praegu pole andmeid saadaval.
L_SET (ainult kirjutamine)
- Andmete saatmiseks kirjutage 1, enne saatmist täitke registri 0x01 - 0x10 andmed.
- Kirjutage 0 ei mõju
Samm 10: GPS -mooduli kasutamine GPS -iga (Raspberry Pi)
GPS -mooduli kasutamine koos gpsd -ga (Raspberry Pi)
Kõigepealt asendage /boot/overlays/sc16is752-i2c.dtbo ja veenduge, et I2C töötab korralikult.
- Asendage sc16is752-i2c.dtbo
- I2C seadistamine
- Installige gpsd tööriistad.
Avage terminal ja tippige see käsk:
sudo apt install gpsd gpsd-kliendid
Muutke faili/etc/default/gpsd ja lisage järgmised parameetrid:
- SEADMED = "/dev/ttySC1"
- GPSD_OPTIONS = "-F /var/run/gpsd.sock"
GPRS -mooduli lähtestamiseks sisestage käsk i2cset -y 1 0x16 0x23 0x40.
Pythoni skript avatud GPS -i jaoks:
impordi seeriaimport os impordi aeg # Taaskäivitage gpsd -teenus. os.system ("sudo systemctl restart gpsd.socket") # Ava jadaport ser = serial. Serial ('/dev/ttySC0', 115200) i = 0, kui ser.isOpen == False: ser.open () try: print ("Lülita GPS sisse …"), kui see on tõene: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () vastus = ser.read (suurus) gps = str (vastus, kodeering = "utf -8") kui (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Ootab GPS -i lubamist, kui aeg on liiga pikk, palun katsetage õues:" + str (i)) ser.flushInput () time.sleep (1), välja arvatud KeyboardInterrupt: ser.flushInput () ser.close ()
Salvestage see ja käivitage see:
python3 GPS.py
Samm 11: GPS -mooduli kasutamine C -ga (Raspberry Pi)
Installige gpsd tööriistad
sudo apt-get install libgps-dev
Looge lähtekood ja pange sellele nimi "gps.c"
#kaasama #kaasama #kaasama
#kaasake
#kaasake
int main ()
{int rc; struktuuri ajaline tv; struktuuri gps_andmed_t gps_andmed; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("kood: %d, põhjus: %s / n", rc, gps_errstr (rc)); tagasta EXIT_FAILURE; } gps_stream (& gps_andmed, WATCH_ENABLE | WATCH_JSON, NULL);
samas (1)
{ / * oodake andmete vastuvõtmiseks 2 sekundit * / if (gps_waiting (& gps_data, 2000000)) { / * loe andmeid * / if ((rc = gps_read (& gps_data)) == -1) {printf ("lugemisel ilmnes viga gps andmed. kood: %d, põhjus: %s / n ", rc, gps_errstr (rc)); } else { /* Kuva GPS -vastuvõtja andmed. */ kui ((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.pikkus)) { /* gettimeofday (& tv, NULL); EDIT: tv.tv_sec pole tegelikult ajatempel! */
printf ("laiuskraad: %f, pikkuskraad: %f, kiirus: %f, ajatempel: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: tv.tv_sec asendati gps_data.fix.time} else {printf ("GPS -andmeid pole saadaval / n"); }}} uni (3); } / * Kui olete lõpetanud… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); tagasta EXIT_SUCCESS; }
12. samm: selle koostamine
Koosta!
gcc gps.c -lm -lgps -o gps
Täida see!
./gps
Samm 13: GPS -mooduli kasutamine Pythoni (Raspberry Pi) abil
Järgmine kood on soovitatav käivitada Python 3 abil ning installida teek gpsd-py3 ja GPS 2D/3D Fix:
impordi gpsd
# Ühendage kohaliku gpsd -ga
gpsd.connect ()
# Hankige gps -positsioon
pakett = gpsd.get_current ()
# Vaadake olemasolevaid andmeid GpsResponse'i sisemistest dokumentidest
print (packet.position ())
14. samm: kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
A) Kõigepealt asendage /boot/overlays/sc16is752-i2c.dtbo ja veenduge, et I2C töötab korralikult.
- Asendage sc16is752-i2c.dtbo
- I2C seadistamine
B) GPRS -mooduli lähtestamiseks sisestage käsk i2cset -y 1 0x16 0x23 0x40.
Pärast käsu käivitamist peate natuke ootama, umbes 10 sekundit
Samuti saate lähtestamiseks kasutada järgmist meetodit.
C) Sisestage käsk
sudo apt install ppp
ppp -tööriistade installimiseks.
D) Kopeerige fail/etc/ppp/peers/Provider/etc/ppp/peers/gprs
E) Muuda/etc/ppp/peers/gprs
- 10. rida: pöörduge oma teenusepakkuja poole (näide: cmnet).
- Rida 15: apn -i saamiseks pöörduge oma teenusepakkuja poole (näide: cmnet).
- Rida 18 - rida 24: soovitatav säte
F) Muutke/etc/chatscripts/gprs (muutke rida 34 reale 35, valimisnumber ei pruugi olla *99#)
G) Sisestage helistamiseks käsk sudo pppd call gprs.
H) Kontrollige oma Interneti -teenuse pakkujalt oma ppp -konfiguratsiooni.
I) Sisestage käsk ping -I ppp0 8.8.8.8 testige oma võrku (kui Internet on saadaval ja marsruuditabel on õige)
J) Palun hoidke GSM -signaali hea, muidu juhtub järgmine.
Samm 15: Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Järgmine kood on soovitatav käivitada Python 3 abil ja installida smbus raamatukogu:
import jadaimport aeg import smbus import operaator import os
print ("Ootatakse lähtestamist …")
buss = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = jada. Seriaal ('/dev/ttySC0', 115200)
kui ser.isOpen == Vale:
ser.open () try: print ('-'*60) print ("A9G GPRS-mooduli lähtestamine.") print ("GSM-ühenduse loomine…") time.sleep (3) i = 0, samas kui tõsi: 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), välja arvatud KeyboardInterrupt: ser.close ()
Käivitage testiskript, rakendamise tulemuste põhjal saame GSM -mooduli diagnoosida. Näiteks järgmine tagasiside, CME ERROR 53 tõrge ütleb meile, et toide pole hea. CME kood = GSM -seadmetega seotud vead
Loomulikult on skriptil ka lähtestamisfunktsioon. Kui saate CCID -d õigesti kuvada, on lähtestamine lõpule viidud.
Samm 16: Lora TX & RX kasutamine koos C -ga (Raspberry Pi)
Järgmine kood on soovitatav käivitada Python 3 abil ja installida smbus raamatukogu.
See tuleb üle kanda kahe IOT -sõlme (A) vahel. Ise saadetud sisu ei saa ise vastu võtta. Palun salvestage see täitmiseks py -skriptina.
Kuidas saata: pärast andmete registrisse 0x01 - 0x10 täitmist seadke L_TX bit andmete saatmist alustama.
import aegimport smbus import os os import sys
buss = smbus. SMBus (1)
proovige:
data_list = [170, 85, 165, 90] # kirjutage registreerimiseks andmed ja seejärel saadetakse andmed välja. vahemikus (1, len (andmete_loend) + 1) oleva indeksi jaoks: bus.write_byte_data (0x16, index, data_list [indeks - 1]) print ("LORA saadab andmed %d registrisse %d andmed" %(index, data_list [indeks - 1])) bus.write_byte_data (0x16, 0x23, 0x01), välja arvatud KeyboardInterrupt: sys.exit ()
Vastuvõtu saatmine: kontrollige L_RXNE bitti. Kui see on määratud, saabusid uued andmed, peab see lipp olema käsitsi tühjendatud
import aegimport smbus import os os import sys
buss = smbus. SMBus (1)
recv_data =
proovige:
kui bus.read_byte_data (0x16, 0x23) & 0x02: # tühjendage käsitsi L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # lugemisandmed vahemikus (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [register - 0x11]))
print ("Vastuvõetud andmed:")
print (recv_data) else: print ("Andmeid pole veel saadud"), välja arvatud KeyboardInterrupt: sys.exit ()
17. samm: I2C ribalaiuse erikirjeldus
I2C kiiruse piirang on I2C protokolli tõttu 400 kHz, seega on ühe seadme efektiivne ribalaius väiksem kui 320 kbps, mitme seadme efektiivne ribalaius on väiksem kui 160 kbps. I2C UART Bridge kiiruse piir on 115200 bps. Kui GPS ja GSM samal ajal on I2C ribalaius ebapiisav, sest 115,2 kbps * 2 = 230,4 kbps, nii et osa andmeid on ületäitunud. GPS- ja GSM -side edastuskiiruse vähendamine võib parandada side ribalaiuse puudust. Teiste DockerPi moodulite virnastamine võib võtta aega täiendav I2C ribalaius. Tavaliselt on võrguandmete kiirus aeglane, seega pole GSM -i ribalaius täis, seega pole ülevoolu probleemi.
18. samm: lõpetatud
Loodan, et teile meeldivad ja saavad hakkama.
selle leiate siit:
Amazon
Öövalgus : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4-kanaliline releetahvel: 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 -sõlm (A) : https://www.amazon.co.uk/dp/B07TY15M1C anduri HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 jäätorn :
Soovitan:
Kuidas kasutada reaalajas kella moodulit (DS3231): 5 sammu
Kuidas kasutada reaalajas kella moodulit (DS3231): DS3231 on odav ja ülitäpne I2C reaalajas kell (RTC) koos integreeritud temperatuurikompensatsiooniga kristallostsillaatori (TCXO) ja kristalliga. Seadmel on akusisend ja see tagab täpse ajaarvestuse, kui toide on
Kuidas ESP8266 AT püsivara välgutada või programmeerida, kasutades ESP8266 vilkurit ja programmeerijat, IOT Wifi moodulit: 6 sammu
Kuidas ESP8266 AT püsivara välgutada või programmeerida, kasutades ESP8266 välklampi ja programmeerijat, IOT Wifi moodulit: Kirjeldus: see moodul on USB-adapter /programmeerija ESP-01 või ESP-01S tüüpi ESP8266 moodulite jaoks. ESP01 ühendamiseks on see mugavalt varustatud 2x4P 2,54 mm emasega. Samuti purustab see kõik ESP-01 tihvtid läbi 2x4P 2,54 mm isase h
Docker Pi andurisõlmeplaadi seeria IOT kohta: 13 sammu
Docker Pi seeria andurikeskuse plaat IOT kohta: Tere, kõik poisid. Tänapäeval on peaaegu kõik seotud IOT -iga. Pole kahtlust, et meie DockerPi seeria plaat toetab ka IOT -i. Täna tahan tutvustada SensorHubi DockerPi seeriat IOT -le teie jaoks rakendamiseks. Käitan selle üksuse, mis põhineb
Kuidas kasutada GY511 moodulit Arduinoga [Digitaalse kompassi tegemine]: 11 sammu
Kuidas kasutada GY511 moodulit koos Arduinoga [Digitaalse kompassi tegemine]: ülevaade Mõnes elektroonikaprojektis peame igal hetkel teadma geograafilist asukohta ja tegema vastavalt sellele konkreetse toimingu. Selles õpetuses saate teada, kuidas kasutada LSM303DLHC GY-511 kompassimoodulit koos Arduinoga digitaalsete kompaktide tegemiseks
Kuidas kasutada Wemos ESP-Wroom-02 D1 mini WiFi-moodulit ESP8266 + 18650, kasutades Blynki: 10 sammu
Kuidas kasutada Wemos ESP-Wroom-02 D1 Mini WiFi moodulit ESP8266 + 18650, kasutades Blynk'i: Spetsifikatsioon: ühildub laadimissüsteemi integreerimisega nodemcu 18650 Indikaatortuli (roheline tähendab täielikku punast tähendab laadimist) saab laadimise ajal kasutada Lüliti juhttoite SMT pistikut saab kasutada unerežiimis · 1 lisa