Tartalomjegyzék:
- Kellékek
- 1. lépés: Jellemzők
- 2. lépés: 1. lépés: Ismerje meg az IoT (A) táblát
- 3. lépés: 2. lépés: Hogyan szereljük össze
- 4. lépés: 3. lépés: Csatlakoztassa az antennát
- 5. lépés: 4. lépés: OS környezet és szoftverkonfigurációk
- 6. lépés: 5. lépés: Az I2C (Raspberry Pi) konfigurálása
- 7. lépés: 6. lépés: Ismerje meg a regisztrációs információkat
- 8. lépés:
- 9. lépés: Utasítások:
- 10. lépés: A GPS -modul használata GPS -sel (Raspberry Pi)
- 11. lépés: A GPS -modul használata C -vel (Raspberry Pi)
- 12. lépés: Fordítsa össze
- 13. lépés: A GPS -modul használata Python (Raspberry Pi) segítségével
- 14. lépés: A GSM modul használata PPPd -vel (Raspberry Pi)
- 15. lépés: A GSM modulom (Raspberry Pi) diagnosztizálása
- 16. lépés: A Lora TX & RX használata C -vel (Raspberry Pi)
- 17. lépés: Az I2C sávszélesség speciális leírása
- 18. lépés: Kész
Videó: [Docker Pi sorozat] Az IoT Node (A) modul használata a Raspberry Pi -n: 18 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Mi az IoT Node (A) modul?
Az IoT Node (A) a Docker Pi sorozat egyik modulja.
IOT csomópont (A) = GPS/BDS + GSM + Lora.
Az I2C közvetlenül vezérli Lora -t, adatokat küld és fogad, vezérli a GSM/GPS/BDS modult az SC16IS752 segítségével, az alaplapnak csak I2C támogatásra van szüksége.
Támogassa a Raspberry Pi -t és más hasonló termékeket.
Kellékek
1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero W
1x Docker Pi sorozatú termék: IoT Node (A) modul
1x 16 GB -os 10 -es típusú TF kártya
1x 5V/2,5A tápegység (5V@3A Pi 4B esetén)
1. lépés: Jellemzők
- Docker Pi sorozat
- Programozható
- Közvetlen vezérlés (programozás nélkül)
- Húzza ki a GPIO csapokat
- GPS/BDS támogatás
- GSM támogatás
- Lora támogatás
- Összerakható más Stack táblával
- Függetlenül az alaplap hardverétől (I2C támogatás szükséges)
2. lépés: 1. lépés: Ismerje meg az IoT (A) táblát
Az IoT Node (A) a Docker Pi sorozat egyik modulja.
IOT csomópont (A) = GPS/BDS + GSM + Lora.
Az I2C közvetlenül vezérli Lora -t, adatokat küld és fogad, vezérli a GSM/GPS/BDS modult az SC16IS752 -n keresztül, az alaplapnak csak I2C támogatásra van szüksége. Támogatja a Raspberry Pi és más hasonló termékeket.
Így kettő segítségével létrehozhat középkategóriás kommunikációs eszközt.
és megtalálhatja a készülék helyét a fedélzeti GPS -modul használatával.
Helyezzen be egy SIM -kártyát, az adóállomás lesz SMS -ben.
3. lépés: 2. lépés: Hogyan szereljük össze
Nagyon egyszerű összeszerelni a "HAT" kialakításnak köszönhetően, csak fel kell rakni a málna pi -re, és össze kell kötni a GPIO csapokkal, olyan, mint egy "kalap" a málna pi -n, így nem kell hozzáadnia a masszát huzal.
4. lépés: 3. lépés: Csatlakoztassa az antennát
Ehhez az IoT (A) modulhoz 3 darab antenna tartozik, az egyik a loar modulhoz, ez egy SMA típusú antenna, és az egyik jó a GPS számára, ez egy négyzet alakú doboz antenna, amely IPX porttal rendelkezik. és az utolsó a SIM modulhoz (A9G) való, ez egy apró antenna, amely IPX porttal rendelkezik. csatlakoztassa az antennát, és szerelje fel a kalapot a málna pi.
Szerelje fel az Iot Node (A) kártyát a Raspberry Pi -re
Csatlakoztassa a GPS antanát és a Lora antanát az IPX porthoz.
- E1: GPS-ANTANA-IPX
- E3: LoRa-ANTANA-IPX
Csavarja a GPRS antanát az SMA porton.
5. lépés: 4. lépés: OS környezet és szoftverkonfigurációk
Ebben a lépésben a következőket kell tennie:
1. Töltse le a legfrissebb képfájlt: www.raspberrypi.org/downloads
2. Csomagolja ki.
3. Villanja fel TF kártyáját a legújabb képpel az etcher eszköz segítségével
4. Módosítsa a /boot/config.txt fájlt, és adja hozzá ezt a bekezdést.
dtoverlay = sc16is752-i2c
5. A /boot/overlay/sc16is752-i2c.dtbo fájlt lecseréli erre a fájlra:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: ne feledje, hogy csomagolja ki, és tegye a/boot/overlay/mappába, és cserélje ki a régit.
6. Indítsa újra a Raspberry Pi -t.
6. lépés: 5. lépés: Az I2C (Raspberry Pi) konfigurálása
Futtassa a sudo raspi-config parancsot, és kövesse az utasításokat az i2c támogatás telepítéséhez az ARM maghoz és a linux kernelhez.
7. lépés: 6. lépés: Ismerje meg a regisztrációs információkat
GPRS szakasz
Alacsony energiafogyasztás, készenléti alvó áram <1mA2.
Támogatja a GSM/GPRS négy frekvenciasávot, köztük 850, 900, 1800, 1900 MHz
GPRS 10. osztály
GPRS adatszolgáltatás támogatása, maximális adatsebesség, letöltés 85,6Kbps, feltöltés 42,8Kbps
Támogassa a szabványos GSM07.07, 07.05 AT parancsokat, és érje el a soros portot az I2C interfész átalakításával
Az AT parancsok támogatják a szabványos AT és TCP/IP parancsportokat
GPS szakasz Támogatja a BDS/GPS közös pozicionálást
A-GPS, A-BDS támogatás
Támogatja a szabványos SIM -kártyát
LORA szakasz Átviteli távolság: 500 méter (RF paraméterek: 0x50 @ China City)
Támogatja az FSK, GFSK, MSK, GMSK, LoRaTM és OOK modulációs módszereket
Rendkívül magas vevő érzékenység, akár -141 dBm
Támogatja a bevezető felismerést
Csomagmotor CRC -vel, akár 256 bájt
LORA adó -vevő jelző
Egyszerű TX/RX a Docker Pi -től
8. lépés:
A9G modul
Az A9G modul két soros portot kínál.
Kommunikációhoz használja az I2C UART hidat.
Soros port modul neve
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Térkép regisztrálása
- Regisztrációs cím Funkció értéke
- 0x01 LORA_TX1 Lora TX Buffer 1 - Felhasználói adatok
- 0x02 LORA_TX2 Lora TX Buffer 2 - Felhasználói adatok
- 0x03 LORA_TX3 Lora TX Buffer 3 - Felhasználói adatok
- 0x04 LORA_TX4 Lora TX Buffer 4 - Felhasználói adatok
- 0x05 LORA_TX5 Lora TX Buffer 5 - Felhasználói adatok
- 0x06 LORA_TX6 Lora TX Buffer 6 - Felhasználói adatok
- 0x07 LORA_TX7 Lora TX Buffer 7 - Felhasználói adatok
- 0x08 LORA_TX8 Lora TX Buffer 8 - Felhasználói adatok
- 0x09 LORA_TX9 Lora TX Buffer 9 - Felhasználói adatok
- 0x0a LORA_TX10 Lora TX Buffer 10 - Felhasználói adatok
- 0x0b LORA_TX11 Lora TX Buffer 11 - Felhasználói adatok
- 0x0c LORA_TX12 Lora TX Buffer 12 - Felhasználói adatok
- 0x0d LORA_TX13 Lora TX Buffer 13 - Felhasználói adatok
- 0x0e LORA_TX14 Lora TX Buffer 14 - Felhasználói adatok
- 0x0f LORA_TX15 Lora TX Buffer 15 - Felhasználói adatok
- 0x10 LORA_TX16 Lora TX Buffer 16 - Felhasználói adatok
- 0x11 LORA_RX1 Lora RX 1. puffer - felhasználói adatok
- 0x12 LORA_RX2 Lora RX Buffer 2 - Felhasználói adatok
- 0x13 LORA_RX3 Lora RX Buffer 3 - Felhasználói adatok
- 0x14 LORA_RX4 Lora RX Buffer 4 - Felhasználói adatok
- 0x15 LORA_RX5 Lora RX Buffer 5 - Felhasználói adatok
- 0x16 LORA_RX6 Lora RX Buffer 6 - Felhasználói adatok
- 0x17 LORA_RX7 Lora RX Buffer 7 - Felhasználói adatok
- 0x18 LORA_RX8 Lora RX Buffer 8 - Felhasználói adatok
- 0x19 LORA_RX9 Lora RX Buffer 9 - Felhasználói adatok
- 0x1a LORA_RX10 Lora RX Buffer 10 - Felhasználói adatok
- 0x1b LORA_RX11 Lora RX Buffer 11 - Felhasználói adatok
- 0x1c LORA_RX12 Lora RX puffer 12 - Felhasználói adatok
- 0x1d LORA_RX13 Lora RX Buffer 13 - Felhasználói adatok
- 0x1e LORA_RX14 Lora RX Buffer 14 - Felhasználói adatok
- 0x1f LORA_RX15 Lora RX Buffer 15 - Felhasználói adatok
- 0x20 LORA_RX16 Lora RX Buffer 16 - Felhasználói adatok
- 0x01 - 0x10 Csak írás.
- 0x11 - 0x20 Csak olvasható.
9. lépés: Utasítások:
L_SET (csak írás)
- Írjon 1 -et a paraméterek beállításához 0x22 -ről LORA modulra.
- Írja 0 nem hatásos
G_RESET (csak írás)
- Írjon 1 -et az A9G modul visszaállításához
- Írja 0 nem hatásos
L_RXNE (Olvasás és írás)
- Írjon 1 okhibát
- A törléshez írjon 0 -t
- Az 1. olvasás azt jelenti, hogy adatok érkeztek, kérjük, szerezze be az adatokat a 0x11 - 0x20 regiszterből.
- A 0 olvasás azt jelenti, hogy most nincs adat.
L_SET (csak írás)
- Az adatok küldéséhez írjon 1 -et, küldés előtt töltse ki a 0x01 - 0x10 regiszter adatait.
- Írja 0 nem hatásos
10. lépés: A GPS -modul használata GPS -sel (Raspberry Pi)
A GPS -modul használata a gpsd -vel (Raspberry Pi)
Először cserélje ki a /boot/overlays/sc16is752-i2c.dtbo fájlt, és győződjön meg arról, hogy az I2C megfelelően működik.
- Cserélje ki az sc16is752-i2c.dtbo fájlt
- Az I2C konfigurálása
- Telepítse a gpsd eszközöket.
Nyisson meg egy terminált, és írja be ezt a parancsot:
sudo apt install gpsd gpsd-client
Módosítsa az/etc/default/gpsd fájlt, és adja hozzá a következő paramétereket:
- ESZKÖZÖK = "/dev/ttySC1"
- GPSD_OPTIONS = "-F /var/run/gpsd.sock"
A GPRS modul alaphelyzetbe állításához írja be az i2cset -y 1 0x16 0x23 0x40 parancsot.
Python -szkript nyílt GPS -hez:
sorozat importálása import import idő # Indítsa újra a gpsd szolgáltatást. os.system ("sudo systemctl restart gpsd.socket") # Nyissa meg a soros portot ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open () try: print ("Kapcsolja be a GPS -t …"), míg True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () if size! = 0: pipa = time.time () válasz = ser.read (méret) gps = str (válasz, kódolás = "utf -8"), ha (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Várakozó GPS engedélyezése, Ha túl hosszú az idő, kérjük, tesztelje a szabadban:" + str (i)) ser.flushInput () time.sleep (1), kivéve a KeyboardInterrupt: ser.flushInput () ser.close ()
Mentse el és hajtsa végre:
python3 GPS.py
11. lépés: A GPS -modul használata C -vel (Raspberry Pi)
Telepítse a gpsd eszközöket
sudo apt-get install libgps-dev
Hozzon létre forráskódot, és nevezze el "gps.c"
#befoglalni #befoglalni #befoglalni
#befoglalni
#befoglalni
int main ()
{int rc; strukture timeval tv; szerkezet gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("kód: %d, ok: %s / n", rc, gps_errstr (rc)); visszatér EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
míg (1)
{ / * várjon 2 másodpercet az adatok fogadására * / if (gps_waiting (& gps_data, 2000000)) { / * olvas adatokat gps adatok. kód: %d, oka: %s / n ", rc, gps_errstr (rc)); } else { /* Adatok megjelenítése a GPS -vevőből. */ 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: a tv.tv_sec valójában nem az időbélyeg! */
printf ("szélesség: %f, hosszúság: %f, sebesség: %f, időbélyeg: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// SZERKESZTÉS: A tv.tv_sec lecserélésre került gps_data.fix.time} else {printf ("nincs elérhető GPS -adat / n"); }}} alvás (3); } / * Ha elkészült… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); return EXIT_SUCCESS; }
12. lépés: Fordítsa össze
Fordítás!
gcc gps.c -lm -lgps -o gps
Végezze el!
./gps
13. lépés: A GPS -modul használata Python (Raspberry Pi) segítségével
A következő kódot ajánlott végrehajtani Python 3 használatával, és telepíteni a gpsd-py3 könyvtárat és a GPS 2D/3D Fix alkalmazást:
gpsd importálása
# Csatlakozzon a helyi GPS -hez
gpsd.connect ()
# Get GPS pozíció
csomag = gpsd.get_current ()
# A rendelkezésre álló adatokért tekintse meg a GpsResponse beágyazott dokumentációját
nyomtatás (packet.position ())
14. lépés: A GSM modul használata PPPd -vel (Raspberry Pi)
A) Először cserélje ki a /boot/overlays/sc16is752-i2c.dtbo fájlt, és győződjön meg arról, hogy az I2C megfelelően működik.
- Cserélje ki az sc16is752-i2c.dtbo fájlt
- Az I2C konfigurálása
B) Írja be az i2cset -y 1 0x16 0x23 0x40 parancsot a GPRS modul alaphelyzetbe állításához.
A parancs futtatása után várnia kell egy kicsit, körülbelül 10 másodpercet
A visszaállításhoz a következő módszert is használhatja.
C) Írja be a parancsot
sudo apt install ppp
ppp eszközök telepítéséhez.
D) Másolja az/etc/ppp/peers/szolgáltatót a/etc/ppp/peers/gprs mappába
E) Módosítsa az/etc/ppp/peers/gprs fájlt
- 10. sor: A felhasználóhoz forduljon szolgáltatójához (példa: cmnet).
- 15. sor: Kérjük, forduljon a szolgáltatójához az apn -hez (példa: cmnet).
- 18. sor - 24. sor: Ajánlott beállítás
F) Az/etc/chatscripts/gprs módosítása (34. sor módosítása 35. sorra, a tárcsázási szám NEM lehet *99#)
G) A tárcsázáshoz írja be a sudo pppd call gprs parancsot.
H) Ellenőrizze a ppp konfigurációját az internetszolgáltatójától.
I) Írja be a ping -I ppp0 parancsot 8.8.8.8 tesztelje a hálózatát (ha elérhető az internet és az útvonalatábla helyes)
J) Kérjük, tartsa jó állapotban a GSM jelet, különben a következők történnek.
15. lépés: A GSM modulom (Raspberry Pi) diagnosztizálása
A következő kódot ajánlott végrehajtani Python 3 használatával, és telepíteni az smbus könyvtárat:
import sorozatimport idő import smbus import operátor import os
nyomtatás ("Várakozás az inicializálásra …")
busz = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = soros. Soros ('/dev/ttySC0', 115200)
ha ser.isOpen == Hamis:
ser.open () try: print ('-'*60) print ("A9G GPRS modul inicializálása.") print ("GSM Connect…") time.sleep (3) i = 0, míg True: ser.write (str.encode ("AT+CCID / r")) size = ser.inWaiting () if size! = 0: pipa = time.time () response = ser.read (size) ccid = str (response, encoding = "utf -8 ") print (ccid) else: i = i + 1 ser.flushInput () time.sleep (1), kivéve a KeyboardInterrupt: ser.close ()
Hajtsa végre a teszt szkriptet, a megvalósítás eredményei alapján diagnosztizálhatjuk a GSM modult. Például a következő visszatérés, a CME ERROR 53 hiba azt jelzi, hogy a Power nem jó. CME kód = GSM berendezésekkel kapcsolatos hibák
Természetesen a szkriptnek van visszaállítási funkciója is. Ha megfelelően tudja megjeleníteni a CCID -t, akkor a visszaállítás befejeződött.
16. lépés: A Lora TX & RX használata C -vel (Raspberry Pi)
A következő kódot ajánlott végrehajtani Python 3 használatával, és telepíteni az smbus könyvtárat.
Át kell vinni a két IOT csomópont (A) között. A magától küldött tartalmat nem lehet önmagában fogadni. Kérjük, mentse py -szkriptként a végrehajtáshoz.
Küldés módja: Miután kitöltötte az adatokat a 0x01 - 0x10 regiszterbe, állítsa be az L_TX bitet az adatok küldésének megkezdéséhez.
import timeimport smbus import os import import sys
busz = smbus. SMBus (1)
próbáld ki:
data_list = [170, 85, 165, 90] # írjon be adatokat a regisztráláshoz, majd küldje el az adatokat. tartományhoz tartozó indexhez (1, len (adatlista) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA send data to %d register %d data" %(index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01), kivéve a KeyboardInterrupt: sys.exit ()
Fogadás küldése: Ellenőrizze az L_RXNE bitet. Ha be van állítva, új adatok érkeztek, ezt a zászlót manuálisan törölni kell
import timeimport smbus import os os import sys
busz = smbus. SMBus (1)
recv_data =
próbáld ki:
ha bus.read_byte_data (0x16, 0x23) & 0x02: # manuálisan törli az L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # kiolvasott adatokat a tartományban (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))
print ("Fogadott adatok:")
print (recv_data) else: print ("Még nincs adat ~"), kivéve a KeyboardInterrupt: sys.exit ()
17. lépés: Az I2C sávszélesség speciális leírása
Az I2C sebesség határa 400 kHz, az I2C protokoll miatt, így az egyetlen eszköz effektív sávszélessége kisebb, mint 320 kbps, a többeszközös effektív sávszélesség kisebb, mint 160 kbps. Az I2C UART Bridge sebességének korlátja 115200 bps. Amikor GPS és GSM ugyanakkor az I2C sávszélessége nem elegendő, mert 115,2 kbps * 2 = 230,4 kbps, így egyes adatok túlcsordulnak. A GPS és a GSM kommunikáció átviteli sebességének csökkentése javíthatja a kommunikáció sávszélesség -hiányát. extra I2C sávszélesség. Általában a hálózati adatsebesség lassú, így a GSM sávszélessége nem teljes, így nincs túlcsordulási probléma.
18. lépés: Kész
Remélem tetszeni fognak és sikerül.
itt megtalálod:
amazon
Éjszakai fény : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4csatornás relé tábla: 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 Érzékelő HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 jégtorony :
Ajánlott:
IoT ESP8266 sorozat: 1- Csatlakozás WIFI útválasztóhoz: 4 lépés
IoT ESP8266 sorozat: 1- Csatlakozás WIFI útválasztóhoz: Ez az "Instructables" 1. része. sorozat, amely elmagyarázza, hogyan lehet létrehozni egy tárgyak internete projektjét az ESP8266 NodeMCU segítségével, amelynek célja az adatok olvasása és küldése egy webhelyre, valamint egy művelet végrehajtása ugyanazon a webhelyen. ESP8266 ESP
IoT ESP8266 sorozat: 2- Az adatok figyelése a ThingSpeak.com-on keresztül: 5 lépés
IoT ESP8266 sorozat: 2- Az adatok figyelése a ThingSpeak.com-on keresztül: Ez az IoT ESP8266 sorozat második része. Az 1. rész megtekintéséhez olvassa el ezt az oktatható IoT ESP8266 sorozatot: 1 Csatlakozás a WIFI útválasztóhoz. Ennek a résznek a célja, hogy megmutassa, hogyan küldheti el érzékelői adatait az egyik népszerű IoT ingyenes felhőszolgáltatásra https: //thingspeak.com
Univerzális NYÁK -sorozat a csöves erősítőhöz: 5 lépés
Univerzális NYÁK -sorozatok csöves erősítőhöz: A csőáramkörök döntő lépést jelentettek az elektronika fejlődésében. A legtöbb területen teljesen elavultak az olcsóbb, kisebb és hatékonyabb szilárdtest -technológiákhoz képest. Az audio kivételével - a reprodukció és a
DockerPi sorozat IoT csomópont (A) tábla a Raspberry Pi 4B számára: 4 lépés
DockerPi sorozat IoT csomópont (A) kártya a Raspberry Pi 4B számára: Leírások: Az IoT csomópont (A) a Docker Pi sorozat egyik modulja. IOT csomópont (A) = GPS/BDS + GSM + Lora. Az IC közvetlenül vezérli Lora -t, küld és fogad adatok, vezérli a GSM/GPS/BDS modult az SC16IS752 segítségével, az alaplapnak csak I2C támogatásra van szüksége. Támogatás Raspbe
I2C / IIC LCD kijelző - SPI LCD használata az I2C LCD kijelzőhöz Az SPI to IIC modul használata Arduino -val: 5 lépés
I2C / IIC LCD kijelző | Használjon SPI LCD -t az I2C LCD -kijelzőhöz Az SPI -IIC modul használata Arduino -val: Sziasztok, mivel egy normál SPI LCD 1602 -nek túl sok vezetékét kell csatlakoztatni, ezért nagyon nehéz összekapcsolni az arduino -val, de a piacon elérhető egy modul konvertálja az SPI kijelzőt IIC kijelzővé, így csak 4 vezetéket kell csatlakoztatnia