Sisukord:

[Docker Pi seeria] Kuidas kasutada IoT -sõlme (A) moodulit Raspberry Pi -l: 18 sammu
[Docker Pi seeria] Kuidas kasutada IoT -sõlme (A) moodulit Raspberry Pi -l: 18 sammu

Video: [Docker Pi seeria] Kuidas kasutada IoT -sõlme (A) moodulit Raspberry Pi -l: 18 sammu

Video: [Docker Pi seeria] Kuidas kasutada IoT -sõlme (A) moodulit Raspberry Pi -l: 18 sammu
Video: 3 Maneras de Reforzar las MUELLES para sacarle el mejor provecho a tu Pickup 2024, November
Anonim
[Docker Pi seeria] Kuidas kasutada IoT Node (A) moodulit Raspberry Pi -l
[Docker Pi seeria] Kuidas kasutada IoT Node (A) moodulit Raspberry Pi -l

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

Omadused
Omadused
Omadused
Omadused
Omadused
Omadused
  • 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

Samm: teadke IoT (A) juhatusest
Samm: teadke IoT (A) juhatusest
Samm: teadke IoT (A) juhatusest
Samm: teadke IoT (A) juhatusest
Samm: teadke IoT (A) juhatusest
Samm: teadke IoT (A) juhatusest

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

Samm: kuidas seda kokku panna
Samm: kuidas seda kokku panna
Samm: kuidas seda kokku panna
Samm: 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

Samm: ühendage antenn
Samm: ühendage antenn
Samm: ühendage antenn
Samm: ühendage antenn
Samm: ühendage antenn
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

Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)
Samm: konfigureerige I2C (Raspberry Pi)

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:

Juhised
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 GPS -iga (Raspberry Pi)
GPS -mooduli kasutamine koos GPS -iga (Raspberry Pi)
GPS -mooduli kasutamine koos GPS -iga (Raspberry Pi)
GPS -mooduli kasutamine koos GPS -iga (Raspberry Pi)
GPS -mooduli kasutamine koos GPS -iga (Raspberry Pi)
GPS -mooduli kasutamine koos 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

Koostage see
Koostage see

Koosta!

gcc gps.c -lm -lgps -o gps

Täida see!

./gps

Samm 13: GPS -mooduli kasutamine Pythoni (Raspberry Pi) abil

GPS -mooduli kasutamine Pythoni (Raspberry Pi) abil
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)

Kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
Kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
Kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
Kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
Kuidas kasutada GSM -moodulit PPPd -ga (Raspberry Pi)
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)

Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
Kuidas diagnoosida oma GSM -moodulit (Raspberry Pi)
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: