Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Ominaisuudet
- Vaihe 2: Vaihe 1: Tiedä IoT (A) -levystä
- Vaihe 3: Vaihe 2: Kuinka koota se
- Vaihe 4: Vaihe 3: Liitä antenni
- Vaihe 5: Vaihe 4: Käyttöympäristö ja ohjelmistokokoonpanot
- Vaihe 6: Vaihe 5: I2C: n (Raspberry Pi) määrittäminen
- Vaihe 7: Vaihe 6: Tietoa rekisteritiedoista
- Vaihe 8:
- Vaihe 9: Ohjeet:
- Vaihe 10: GPS -moduulin käyttäminen GPS -yhteyden (Raspberry Pi) kanssa
- Vaihe 11: GPS -moduulin käyttäminen C: n (Raspberry Pi) kanssa
- Vaihe 12: Kokoa se
- Vaihe 13: GPS -moduulin käyttäminen Pythonin (Raspberry Pi) kanssa
- Vaihe 14: Kuinka käyttää GSM -moduulia PPPd: n (Raspberry Pi) kanssa
- Vaihe 15: Kuinka diagnosoida GSM -moduulini (Raspberry Pi)
- Vaihe 16: Lora TX & RX: n käyttäminen C: n (Raspberry Pi) kanssa
- Vaihe 17: I2C -kaistanleveyden erityiskuvaus
- Vaihe 18: Valmis
Video: [Docker Pi -sarja] IoT Node (A) -moduulin käyttäminen Raspberry Pi -laitteessa: 18 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Mikä on IoT Node (A) -moduuli?
IoT Node (A) on yksi Docker Pi -sarjan moduuleista.
IOT -solmu (A) = GPS/BDS + GSM + Lora.
I2C ohjaa suoraan Loraa, lähettää ja vastaanottaa tietoja, ohjaa GSM/GPS/BDS -moduulia SC16IS752: n kautta, emolevy tarvitsee vain I2C -tuen.
Tue Raspberry Pi ja muita vastaavia tuotteita.
Tarvikkeet
1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero W
1x Docker Pi -sarja: IoT Node (A) -moduuli
1x 16 Gt luokan 10 TF -kortti
1x 5V/2,5A virtalähde (5V@3A Pi 4B: lle)
Vaihe 1: Ominaisuudet
- Docker Pi -sarja
- Ohjelmoitava
- Ohjaus suoraan (ilman ohjelmointia)
- Laajenna GPIO -nastat
- GPS/BDS -tuki
- GSM -tuki
- Lora -tuki
- Voidaan pinota muiden pinolevyjen kanssa
- Riippumaton emolevyn laitteistosta (vaatii I2C -tuen)
Vaihe 2: Vaihe 1: Tiedä IoT (A) -levystä
IoT Node (A) on yksi Docker Pi -sarjan moduuleista.
IOT -solmu (A) = GPS/BDS + GSM + Lora.
I2C ohjaa suoraan Loraa, lähettää ja vastaanottaa tietoja, ohjaa GSM/GPS/BDS -moduulia SC16IS752: n kautta, emolevy tarvitsee vain I2C -tuen.
Joten voit tehdä keskialueen viestintälaitteen käyttämällä kahta niistä.
ja voit myös paikantaa laitteesi sijainnin käyttämällä laitteen GPS -moduulia.
Aseta SIM -kortti, siitä tulee lähetinasema tekstiviestillä.
Vaihe 3: Vaihe 2: Kuinka koota se
Se on erittäin helppo koota sen "HAT" -suunnittelun vuoksi, laitat sen vain vadelmapiisi päälle ja yhdistät sen GPIO -nastojen kautta, se kuin "hattu" vadelmapi: ssä, joten sinun ei tarvitse lisätä massaa lanka.
Vaihe 4: Vaihe 3: Liitä antenni
Tässä IoT (A) -moduulissa on 3 -osainen antenni, yksi niistä on loar -moduulille, se on SMA -tyyppinen antenni, ja yksi niistä on hyvä GPS: lle, se on neliölaatikkoantenni, jossa on IPX -portti. ja viimeinen on SIM -moduulille (A9G), se on pieni antenni, jossa on IPX -portti. liitä antenni ja kiinnitä hattu vadelmapiisi.
Asenna Iot Node (A) -kortti Raspberry Pi -laitteeseen
Liitä GPS -antana ja Lora -antana IPX -porttiin.
- E1 : GPS-ANTANA-IPX
- E3 : LoRa-ANTANA-IPX
Ruuvaa GPRS -antanan SMA -porttiin.
Vaihe 5: Vaihe 4: Käyttöympäristö ja ohjelmistokokoonpanot
Tässä vaiheessa sinun on tehtävä seuraavat asiat:
1. Lataa uusin kuvatiedosto osoitteesta www.raspberrypi.org/downloads
2. Pura se.
3. Flashtaa TF -korttisi uusimmalla kuvalla etcher -työkalun avulla
4. Muokkaa /boot/config.txt -tiedostoa ja lisää tämä kappale.
dtoverlay = sc16is752-i2c
5. Korvaa /boot/overlay/sc16is752-i2c.dtbo-tiedoston tällä tiedostolla:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: muista purkaa se ja laita se kansioon/boot/overlay/ja korvaa vanha.
6. Käynnistä Raspberry Pi uudelleen.
Vaihe 6: Vaihe 5: I2C: n (Raspberry Pi) määrittäminen
Suorita sudo raspi-config ja asenna i2c-tuki ARM-ytimelle ja Linux-ytimelle noudattamalla ohjeita Siirry Liitäntäasetukset
Vaihe 7: Vaihe 6: Tietoa rekisteritiedoista
GPRS -osio
Pieni virrankulutus, valmiustilan virrankulutus <1mA2.
Tukee neljää GSM/GPRS -taajuuskaistaa, mukaan lukien 850, 900, 1800, 1900 MHz
GPRS -luokka 10
Tuki GPRS -datapalvelulle, suurin tiedonsiirtonopeus, lataa 85,6 kbps, lataa 42,8 kbps
Tukee GSM07.07, 07.05 AT -komentoja ja käyttää sarjaporttia I2C -rajapinnan muuntamisen kautta
AT -komennot tukevat tavallisia AT- ja TCP/IP -komentoportteja
GPS -osa Tukee BDS/GPS -yhteistä paikannusta
Tuki A-GPS, A-BDS
Tukee tavallista SIM -korttia
LORA -osa Lähetysetäisyys: 500 metriä (RF -parametrit: 0x50 @ China City)
Tukee FSK-, GFSK-, MSK-, GMSK-, LoRaTM- ja OOK -modulointimenetelmiä
Erittäin korkea vastaanottimen herkkyys jopa -141 dBm
Tue johdanto -osan tunnistus
Pakettimoottori CRC: llä, jopa 256 tavua
LORA -lähetin -vastaanottimen ilmaisin
Easy TX/RX, Docker Pi
Vaihe 8:
A9G -moduuli
A9G -moduulissa on kaksi sarjaporttia.
Käytä I2C UART -siltaa viestintään.
Sarjaporttimoduulin nimi
- /dev/ttySC0 GSM
- /dev/ttySC1 GPS/BDS
Rekisteröi kartta
- Rekisteröi osoite Toiminto Arvo
- 0x01 LORA_TX1 Lora TX -puskuri 1 - käyttäjätiedot
- 0x02 LORA_TX2 Lora TX -puskuri 2 - käyttäjätiedot
- 0x03 LORA_TX3 Lora TX -puskuri 3 - käyttäjätiedot
- 0x04 LORA_TX4 Lora TX -puskuri 4 - käyttäjätiedot
- 0x05 LORA_TX5 Lora TX -puskuri 5 - käyttäjätiedot
- 0x06 LORA_TX6 Lora TX -puskuri 6 - käyttäjätiedot
- 0x07 LORA_TX7 Lora TX Buffer 7 - Käyttäjätiedot
- 0x08 LORA_TX8 Lora TX -puskuri 8 - käyttäjätiedot
- 0x09 LORA_TX9 Lora TX -puskuri 9 - käyttäjätiedot
- 0x0a LORA_TX10 Lora TX Buffer 10 - Käyttäjätiedot
- 0x0b LORA_TX11 Lora TX -puskuri 11 - käyttäjätiedot
- 0x0c LORA_TX12 Lora TX -puskuri 12 - käyttäjätiedot
- 0x0d LORA_TX13 Lora TX -puskuri 13 - käyttäjätiedot
- 0x0e LORA_TX14 Lora TX -puskuri 14 - käyttäjätiedot
- 0x0f LORA_TX15 Lora TX -puskuri 15 - käyttäjätiedot
- 0x10 LORA_TX16 Lora TX -puskuri 16 - Käyttäjätiedot
- 0x11 LORA_RX1 Lora RX -puskuri 1 - käyttäjätiedot
- 0x12 LORA_RX2 Lora RX -puskuri 2 - käyttäjätiedot
- 0x13 LORA_RX3 Lora RX -puskuri 3 - käyttäjätiedot
- 0x14 LORA_RX4 Lora RX -puskuri 4 - käyttäjätiedot
- 0x15 LORA_RX5 Lora RX -puskuri 5 - käyttäjätiedot
- 0x16 LORA_RX6 Lora RX -puskuri 6 - käyttäjätiedot
- 0x17 LORA_RX7 Lora RX -puskuri 7 - käyttäjätiedot
- 0x18 LORA_RX8 Lora RX -puskuri 8 - käyttäjätiedot
- 0x19 LORA_RX9 Lora RX -puskuri 9 - käyttäjätiedot
- 0x1a LORA_RX10 Lora RX -puskuri 10 - käyttäjätiedot
- 0x1b LORA_RX11 Lora RX -puskuri 11 - käyttäjätiedot
- 0x1c LORA_RX12 Lora RX -puskuri 12 - käyttäjätiedot
- 0x1d LORA_RX13 Lora RX -puskuri 13 - käyttäjätiedot
- 0x1e LORA_RX14 Lora RX -puskuri 14 - käyttäjätiedot
- 0x1f LORA_RX15 Lora RX -puskuri 15 - käyttäjätiedot
- 0x20 LORA_RX16 Lora RX -puskuri 16 - käyttäjätiedot
- 0x01 - 0x10 vain kirjoitus.
- 0x11 - 0x20 vain luku.
Vaihe 9: Ohjeet:
L_SET (vain kirjoitus)
- Kirjoita 1 asettaaksesi parametrit 0x22 LORA -moduuliin.
- Kirjoita 0 ei vaikutusta
G_RESET (vain kirjoitus)
- Nollaa A9G -moduuli kirjoittamalla 1
- Kirjoita 0 ei vaikutusta
L_RXNE (luku ja kirjoitus)
- Kirjoita 1 syyvirhe
- Kirjoita 0 tyhjentääksesi
- Lukeminen 1 tarkoittaa, että tiedot on vastaanotettu, hanki tiedot rekisteristä 0x11 - 0x20.
- Lukeminen 0 tarkoittaa, että tietoja ei ole nyt saatavilla.
L_SET (vain kirjoitus)
- Kirjoita 1 lähettääksesi tiedot, täytä tiedot rekisteristä 0x01 - 0x10 ennen lähettämistä.
- Kirjoita 0 ei vaikutusta
Vaihe 10: GPS -moduulin käyttäminen GPS -yhteyden (Raspberry Pi) kanssa
GPS -moduulin käyttäminen gpsd: n (Raspberry Pi) kanssa
Vaihda ensin /boot/overlays/sc16is752-i2c.dtbo ja varmista, että I2C toimii oikein.
- Vaihda sc16is752-i2c.dtbo
- I2C: n määrittäminen
- Asenna gpsd -työkalut.
Avaa pääte ja kirjoita tämä komento:
sudo apt asentaa gpsd gpsd-clientit
Muokkaa/etc/default/gpsd -tiedostoa ja lisää seuraavat parametrit:
- LAITTEET = "/dev/ttySC1"
- GPSD_OPTIONS = "-F /var/run/gpsd.sock"
Nollaa GPRS -moduuli kirjoittamalla komento i2cset -y 1 0x16 0x23 0x40.
Python -skripti avoimelle GPS: lle:
tuoda sarjatuonti tuonti aika # Käynnistä GPS -palvelu uudelleen. os.system ("sudo systemctl restart gpsd.socket") # Avaa sarjaportti ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 jos ser.isOpen == False: ser.open () try: print ("Käynnistä GPS …"), kun True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () if size! = 0: punkit = aika.aika () response = ser.read (koko) gps = str (response, encoding = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Odottaa GPS -toimintoa, jos aika on liian pitkä, testaa ulkona:" + str (i)) ser.flushInput () time.sleep (1) paitsi KeyboardInterrupt: ser.flushInput () ser.close ()
Tallenna se ja suorita se:
python3 GPS.py
Vaihe 11: GPS -moduulin käyttäminen C: n (Raspberry Pi) kanssa
Asenna gpsd -työkalut
sudo apt-get install libgps-dev
Luo lähdekoodi ja anna sille nimi "gps.c"
#Sisällytä #Sisällytä #Sisällytä
#sisältää
#sisältää
int main ()
{int rc; rakentaa aika -tv; rakenne gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("koodi: %d, syy: %s / n", rc, gps_errstr (rc)); palaa EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
samalla (1)
{ / * odota 2 sekuntia saadaksesi dataa * / if (gps_waiting (& gps_data, 2000000)) { / * read data * / if ((rc = gps_read (& gps_data)) == -1) {printf ("virhe tapahtui lukiessa gps -data. koodi: %d, syy: %s / n ", rc, gps_errstr (rc)); } else { /* Näytä tiedot GPS -vastaanottimesta. */ jos ((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 ei oikeastaan ole aikaleima! */
printf ("leveysaste: %f, pituusaste: %f, nopeus: %f, aikaleima: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDIT: tv.tv_sec korvattiin gps_data.fix.time} else {printf ("GPS -tietoja ei ole saatavilla / n"); }}} uni (3); } / * Kun olet valmis… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); palaa EXIT_SUCCESS; }
Vaihe 12: Kokoa se
Koota!
gcc gps.c -lm -lgps -o gps
Suorita se!
./gps
Vaihe 13: GPS -moduulin käyttäminen Pythonin (Raspberry Pi) kanssa
Seuraava koodi suositellaan suoritettavaksi Python 3: lla ja asennettava gpsd-py3-kirjasto ja GPS 2D/3D Fix:
tuoda gpsd
# Yhdistä paikalliseen GPS -laitteeseen
gpsd.connect ()
# Hanki GPS -asema
paketti = gpsd.get_current ()
# Katso käytettävissä olevat tiedot GpsResponse -asiakirjoista
tulosta (packet.position ())
Vaihe 14: Kuinka käyttää GSM -moduulia PPPd: n (Raspberry Pi) kanssa
A) Vaihda ensin /boot/overlays/sc16is752-i2c.dtbo ja varmista, että I2C toimii oikein.
- Vaihda sc16is752-i2c.dtbo
- I2C: n määrittäminen
B) Nollaa GPRS -moduuli kirjoittamalla komento i2cset -y 1 0x16 0x23 0x40.
Komennon suorittamisen jälkeen sinun on odotettava vähän, noin 10 sekuntia
Voit myös nollata seuraavan menetelmän.
C) Anna komento
sudo apt asentaa ppp
asentaaksesi ppp -työkaluja.
D) Kopioi/etc/ppp/peers/tarjoaja/etc/ppp/peers/gprs
E) Muokkaa/etc/ppp/peers/gprs
- Rivi 10: Ota yhteys palveluntarjoajaasi (esimerkki: cmnet).
- Rivi 15: Kysy palveluntarjoajalta apn (esimerkki: cmnet).
- Rivi 18 - Rivi 24: Suositeltu asetus
F) Muokkaa/etc/chatscripts/gprs (Vaihda rivi 34 riville 35, soittonumero EI OLE *99#)
G) Anna komento komennolla sudo pppd call gprs.
H) Tarkista ppp -määritykset Internet -palveluntarjoajalta.
I) Anna komento ping -I ppp0 8.8.8.8 Testaa verkko (jos Internet on käytettävissä ja reittitaulukko on oikea)
J) Pidä GSM -signaali hyvässä kunnossa, muuten tapahtuu seuraava.
Vaihe 15: Kuinka diagnosoida GSM -moduulini (Raspberry Pi)
Seuraava koodi suositellaan suoritettavaksi Python 3: lla ja smbus -kirjaston asentaminen:
tuonti sarjatuonti aika tuonti smbus tuontioperaattori tuonti os
tulosta ("Odotetaan alustamista…")
väylä = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = sarja. sarja ('/dev/ttySC0', 115200)
jos ser.isOpen == False:
ser.open () try: print ('-'*60) print ("A9G GPRS -moduulin alustaminen.") print ("GSM Connect…") time.sleep (3) i = 0 kun True: ser.write (str.encode ("AT+CCID / r")) size = ser.inWaiting () if size! = 0: punkit = time.time () vastaus = ser.read (koko) ccid = str (response, encoding = "utf -8 ") tulosta (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) paitsi KeyboardInterrupt: ser.close ()
Suorita testiskripti toteutuksen tulosten perusteella, voimme diagnosoida GSM -moduulin. Esimerkiksi seuraava palautus, CME ERROR 53 -virhe kertoo meille, että virta ei ole hyvä. CME -koodi = GSM -laitteisiin liittyvät virheet
Tietenkin skriptissä on myös nollaustoiminto. Jos voit näyttää CCID: n oikein, nollaus on valmis.
Vaihe 16: Lora TX & RX: n käyttäminen C: n (Raspberry Pi) kanssa
Seuraava koodi suositellaan suoritettavaksi Python 3: lla ja smbus -kirjaston asentaminen.
Se on siirrettävä kahden IOT -solmun (A) välillä. Itse lähetettyä sisältöä ei voi vastaanottaa itse. Tallenna se py -komentosarjaksi suoritettavaksi.
Kuinka lähettää: Kun olet täyttänyt tiedot rekisteriin 0x01 - 0x10, aseta L_TX -bitti aloittamaan tietojen lähettäminen.
tuonti aika tuonti smbus tuonti os tuonti sys
väylä = smbus. SMBus (1)
yrittää:
data_list = [170, 85, 165, 90] # kirjoita tiedot rekisteröitäväksi ja sitten tiedot lähetetään. indeksille alueella (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA send data to %d register %d data" %(index, data_list [hakemisto - 1])) bus.write_byte_data (0x16, 0x23, 0x01) paitsi KeyboardInterrupt: sys.exit ()
Kuinka lähettää vastaanotto: Tarkista L_RXNE -bitti, jos asetettu, uusia tietoja saapui, tämän lipun on oltava manuaalisesti tyhjä
tuonti aika tuonti smbus tuonti os tuonti sys
väylä = smbus. SMBus (1)
recv_data =
yrittää:
jos bus.read_byte_data (0x16, 0x23) & 0x02: # tyhjennä manuaalisesti L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # lukematiedot indeksille alueella (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [hakemisto - 0x11]))
tulosta ("Vastaanotetut tiedot:")
print (recv_data) else: print ("Ei tietoja vielä vastaanotettu ~") paitsi KeyboardInterrupt: sys.exit ()
Vaihe 17: I2C -kaistanleveyden erityiskuvaus
I2C -nopeuden raja on 400 kHz, johtuen I2C -protokollasta, joten yhden laitteen tehokas kaistanleveys on pienempi kuin 320 kbps, usean laitteen tehokas kaistanleveys on pienempi kuin 160 kbps. samaan aikaan, I2C -kaistanleveys on riittämätön, koska 115,2 kbps * 2 = 230,4 kbps, joten osa tiedoista ylikuormittuu. Yleensä verkon datanopeus on hidas, joten GSM -kaistanleveys ei ole täynnä, joten ylivuoto -ongelmaa ei ole.
Vaihe 18: Valmis
Toivottavasti tykkäätte ja teette sen.
löydät sen täältä:
Amazon
Yövalo : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4-kanavainen relelevy: 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 -solmu (A) ps https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 jäätorni :
Suositeltava:
Rakenna Docker -kuva Raspberry Pi: 7 vaihetta
Rakenna Docker -kuva Raspberry Pi: lle: Tässä ohjeessa näytetään Docker -kuvan luominen Raspberry Pi: lle
LED vilkkuu Raspberry Pi: n kanssa GPIO -nastojen käyttäminen Raspberry Pi: ssä: 4 vaihetta
LED vilkkuu Raspberry Pi: n kanssa GPIO -nastojen käyttäminen Raspberry Pi: ssä: Hei kaverit tässä ohjeessa opimme käyttämään Raspberry pi: n GPIO: ta. Jos olet koskaan käyttänyt Arduinoa, luultavasti tiedät, että voimme liittää LED -kytkimen jne. Sen nastoihin ja saada sen toimimaan. anna LED -valon vilkkua tai syötä kytkintä, joten
Docker Pi -sarjan anturikeskuslevy Tietoja IOT: sta: 13 vaihetta
Docker Pi -sarjan anturikeskuslevy Tietoja IOT: sta: Hei, kaikki kaverit. Nykyään lähes kaikki liittyvät IOT: iin. Epäilemättä DockerPi -sarjan piirikorttimme tukee myös IOT: ta. Tänään, haluan esitellä DockerPi -sarjan SensorHubin soveltaa IOT: iin. suoritan tämän kohteen, joka perustuu
Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -yhteensopivan kortin käyttäminen Blynkin avulla: 10 vaihetta
Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -yhteensopivan kortin käyttäminen Blynkin avulla: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -yhteensopiva levy Kuvaus: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 on WIFI -kehityskortti, joka perustuu ESP8266 12E -järjestelmään. Toiminta on samanlainen kuin NODEMCU, paitsi että laitteisto on rakennettu
Wemos D1 Mini/ Nodemcu -ohjaimen käyttäminen Blynk -sovelluksella (IOT) (esp8266): 6 vaihetta
Kuinka hallita Wemos D1 Mini/ Nodemcu -ohjelmaa käyttämällä Blynk -sovellusta (IOT) (esp8266): Hei ystävät, Tässä ohjeessa näytän sinulle, kuinka hallita wemos D1 mini: tä tai (nodemcu) blynk -sovelluksella. Se on ehdoton aloittelijoiden opas. Katso yksityiskohtainen opetusohjelma TÄYTYY KATSO VIDEO Älä unohda tykätä, jakaa & tilaa kanavani