Innehållsförteckning:

[Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi: 18 steg
[Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi: 18 steg

Video: [Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi: 18 steg

Video: [Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi: 18 steg
Video: 3 Maneras de Reforzar las MUELLES para sacarle el mejor provecho a tu Pickup 2024, Juli
Anonim
[Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi
[Docker Pi -serien] Hur man använder IoT Node (A) -modul på Raspberry Pi

Vad är IoT Node (A) -modulen?

IoT Node (A) är en av modulerna i Docker Pi -serien.

IOT -nod (A) = GPS/BDS + GSM + Lora.

I2C styr Lora direkt, skickar och tar emot data, styr GSM/GPS/BDS -modulen via SC16IS752, moderkortet behöver bara I2C -stöd.

Stöd Raspberry Pi och andra liknande produkter.

Tillbehör

1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero W

1x produkt i Docker Pi -serien: IoT Node (A) -modul

1x 16GB TF -kort i klass 10

1x 5V/2,5A strömförsörjning (5V@3A för Pi 4B)

Steg 1: Funktioner

Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
  • Docker Pi -serien
  • Programmerbar
  • Styr direkt (utan programmering)
  • Förläng GPIO -stiften
  • GPS/BDS -stöd
  • GSM -support
  • Lora Support
  • Kan staplas med andra stapelbrädor
  • Oberoende av moderkortets hårdvara (kräver I2C -stöd)

Steg 2: Steg1: Vet om IoT (A) -kortet

Steg 1: Vet om IoT (A) -kortet
Steg 1: Vet om IoT (A) -kortet
Steg 1: Vet om IoT (A) -kortet
Steg 1: Vet om IoT (A) -kortet
Steg 1: Vet om IoT (A) -kortet
Steg 1: Vet om IoT (A) -kortet

IoT Node (A) är en av modulerna i Docker Pi -serien.

IOT -nod (A) = GPS/BDS + GSM + Lora.

I2C styr Lora direkt, skickar och tar emot data, styr GSM/GPS/BDS -modulen via SC16IS752, moderkortet behöver bara I2C -stöd. Stöd Raspberry Pi och andra liknande produkter.

Så du kan skapa en mellanklass kommunikationsenhet genom att använda två av dem.

och du kan också hitta din enhets plats med hjälp av GPS -modulen ombord.

Sätt i ett SIM -kort, det blir en sändarstation via SMS.

Steg 3: Steg2: Hur man monterar det

Steg 2: Hur man monterar det
Steg 2: Hur man monterar det
Steg 2: Hur man monterar det
Steg 2: Hur man monterar det

Det är väldigt enkelt att montera den på grund av dess "HAT" -design, du lägger den bara på din hallonpi och ansluter den via GPIO -stift, den som en "hatt" på hallonpi, så att du inte behöver lägga till massan tråd.

Steg 4: Step3: Anslut antenn

Step3: Anslut antenn
Step3: Anslut antenn
Step3: Anslut antenn
Step3: Anslut antenn
Step3: Anslut antenn
Step3: Anslut antenn

Det finns tre delar antenn för denna IoT (A) -modul, en av dem är för loar -modulen, det är en antenn av SMA -typ, och en av dem är bra för dig GPS, det är en fyrkantig antenn som har IPX -port. och den sista är för SIM -modulen (A9G), Det är en liten antenn som har en IPX -port. anslut antennen och montera hatten på din hallon pi.

Så här monterar du Montera Iot Node (A) -kortet på Raspberry Pi

Anslut GPS -antana och Lora antana till IPX -port.

  • E1: GPS-ANTANA-IPX
  • E3: LoRa-ANTANA-IPX

Skruvar fast GPRS -antana på SMA -porten.

Steg 5: Steg4: OS -miljö och programvarukonfigurationer

I det här steget måste du göra dessa saker:

1. Ladda ner den senaste bildfilen från: www.raspberrypi.org/downloads

2. Packa upp den.

3. Flasha ditt TF -kort med den senaste bilden via etsverktyget

4. Ändra filen /boot/config.txt och lägg till detta stycke.

dtoverlay = sc16is752-i2c

5. Ersätter filen /boot/overlay/sc16is752-i2c.dtbo med den här filen:

wiki.52pi.com/index.php/File:Sc16is752-i2c…

PS: kom ihåg att packa upp den och lägga den på din/boot/overlay/mapp och ersätta den gamla.

6. Starta om din Raspberry Pi.

Steg 6: Steg5: Konfigurera I2C (Raspberry Pi)

Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)
Steg 5: Konfigurera I2C (Raspberry Pi)

Kör sudo raspi-config och följ anvisningarna för att installera i2c-stöd för ARM-kärnan och Linux-kärnan Gå till gränssnittsalternativ

Steg 7: Steg6: Vet om registerinformationen

GPRS -avsnitt

Låg strömförbrukning, vänteläge <1mA2.

Stödjer GSM/GPRS fyra frekvensband, inklusive 850, 900, 1800, 1900MHZ

GPRS klass 10

Stöd GPRS -datatjänst, maximal datahastighet, ladda ner 85,6 Kbps, ladda upp 42,8 Kbps

Stödja vanliga GSM07.07, 07.05 AT -kommandon och få åtkomst till den seriella porten via I2C -gränssnittskonvertering

AT -kommandon stöder standard AT- och TCP/IP -kommandoporter

GPS -sektion Stöd BDS/GPS gemensam positionering

Stöd A-GPS, A-BDS

Stödjer standard SIM -kort

LORA -sektion Överföringsavstånd: 500 meter (RF -parametrar: 0x50 @ China City)

Stödja FSK, GFSK, MSK, GMSK, LoRaTM och OOK moduleringsmetoder

Ultrahög mottagarkänslighet så låg som -141 dBm

Stöd inledningsdetektering

Paketmotor med CRC, upp till 256 byte

LORA -mottagarindikator

Enkel TX/RX av Docker Pi

Steg 8:

A9G -modul

A9G -modulen har två seriella portar.

Använd I2C UART -brygga för kommunikation.

Seriell portmodulnamn

  • /dev/ttySC0 GSM
  • /dev/ttySC1 GPS/BDS

Registrera karta

  • Registrera adress Funktionsvärde
  • 0x01 LORA_TX1 Lora TX Buffer 1 - Användardata
  • 0x02 LORA_TX2 Lora TX Buffer 2 - Användardata
  • 0x03 LORA_TX3 Lora TX Buffer 3 - Användardata
  • 0x04 LORA_TX4 Lora TX Buffer 4 - Användardata
  • 0x05 LORA_TX5 Lora TX Buffer 5 - Användardata
  • 0x06 LORA_TX6 Lora TX Buffer 6 - Användardata
  • 0x07 LORA_TX7 Lora TX Buffer 7 - Användardata
  • 0x08 LORA_TX8 Lora TX Buffer 8 - Användardata
  • 0x09 LORA_TX9 Lora TX Buffer 9 - Användardata
  • 0x0a LORA_TX10 Lora TX Buffer 10 - Användardata
  • 0x0b LORA_TX11 Lora TX Buffer 11 - Användardata
  • 0x0c LORA_TX12 Lora TX Buffer 12 - Användardata
  • 0x0d LORA_TX13 Lora TX Buffer 13 - Användardata
  • 0x0e LORA_TX14 Lora TX Buffer 14 - Användardata
  • 0x0f LORA_TX15 Lora TX Buffer 15 - Användardata
  • 0x10 LORA_TX16 Lora TX Buffer 16 - Användardata
  • 0x11 LORA_RX1 Lora RX Buffer 1 - Användardata
  • 0x12 LORA_RX2 Lora RX Buffer 2 - Användardata
  • 0x13 LORA_RX3 Lora RX Buffer 3 - Användardata
  • 0x14 LORA_RX4 Lora RX Buffer 4 - Användardata
  • 0x15 LORA_RX5 Lora RX Buffer 5 - Användardata
  • 0x16 LORA_RX6 Lora RX Buffer 6 - Användardata
  • 0x17 LORA_RX7 Lora RX Buffer 7 - Användardata
  • 0x18 LORA_RX8 Lora RX Buffer 8 - Användardata
  • 0x19 LORA_RX9 Lora RX Buffer 9 - Användardata
  • 0x1a LORA_RX10 Lora RX Buffer 10 - Användardata
  • 0x1b LORA_RX11 Lora RX Buffer 11 - Användardata
  • 0x1c LORA_RX12 Lora RX Buffer 12 - Användardata
  • 0x1d LORA_RX13 Lora RX Buffer 13 - Användardata
  • 0x1e LORA_RX14 Lora RX Buffer 14 - Användardata
  • 0x1f LORA_RX15 Lora RX Buffer 15 - Användardata
  • 0x20 LORA_RX16 Lora RX Buffer 16 - Användardata
  • 0x01 - 0x10 Endast skriv.
  • 0x11 - 0x20 Skrivskyddad.

Steg 9: Instruktioner:

Instruktioner
Instruktioner

L_SET (endast skriv)

  • Skriv 1 för att ställa in parametrar från 0x22 till LORA -modul.
  • Skriv 0 inte effekt

G_RESET (endast skriv)

  • Skriv 1 för att återställa A9G -modulen
  • Skriv 0 inte effekt

L_RXNE (Läs och skriv)

  • Skriv 1 orsak fel
  • Skriv 0 för att rensa
  • Läs 1 betyder att data har mottagits. Hämta data från registret 0x11 - 0x20.
  • Läs 0 betyder ingen data tillgänglig nu.

L_SET (endast skriv)

  • Skriv 1 för att skicka data, fyll i uppgifterna i register 0x01 - 0x10 innan du skickar.
  • Skriv 0 inte effekt

Steg 10: Så här använder du GPS -modul med Gpsd (Raspberry Pi)

Hur man använder GPS -modul med Gpsd (Raspberry Pi)
Hur man använder GPS -modul med Gpsd (Raspberry Pi)
Hur man använder GPS -modul med Gpsd (Raspberry Pi)
Hur man använder GPS -modul med Gpsd (Raspberry Pi)
Hur man använder GPS -modul med Gpsd (Raspberry Pi)
Hur man använder GPS -modul med Gpsd (Raspberry Pi)

Hur man använder GPS -modul med gpsd (Raspberry Pi)

Byt först ut /boot/overlays/sc16is752-i2c.dtbo och se till att I2C fungerar korrekt.

  • Byt ut sc16is752-i2c.dtbo
  • Konfigurera I2C
  • Installera gpsd -verktyg.

Öppna en terminal och skriv detta kommando:

sudo apt installera gpsd gpsd-klienter

Ändra/etc/default/gpsd -filen och lägg till följande parametrar:

  • ENHETER = "/dev/ttySC1"
  • GPSD_OPTIONS = "-F /var/run/gpsd.sock"

Ange kommandot i2cset -y 1 0x16 0x23 0x40 för att återställa GPRS -modulen.

Python -skript för öppen GPS:

import serialimport os importtid # Starta om gpsd -tjänsten. os.system ("sudo systemctl restart gpsd.socket") # Öppna seriell port ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 om ser.isOpen == False: ser.open () försök: print ("Slå på GPS …") medan True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () om storlek! = 0: ticks = time.time () svar = ser.read (storlek) gps = str (svar, kodning = "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) utom KeyboardInterrupt: ser.flushInput () ser.close ()

Spara det och kör det:

python3 GPS.py

Steg 11: Hur man använder GPS -modul med C (Raspberry Pi)

Installera gpsd -verktyg

sudo apt-get install libgps-dev

Skapa källkod och ge den namnet "gps.c"

#include #include #include

#omfatta

#omfatta

int main ()

{int rc; struct timeval tv; struct gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("code: %d, reason: %s / n", rc, gps_errstr (rc)); returnera EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);

medan (1)

{ / * vänta i 2 sekunder för att ta emot data * / if (gps_waiting (& gps_data, 2000000)) { / * läs data * / if ((rc = gps_read (& gps_data)) == -1) {printf ("fel uppstod vid läsning gps -data. kod: %d, orsak: %s / n ", rc, gps_errstr (rc)); } annars { /* Visa data från GPS -mottagaren. */ 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 är faktiskt inte tidsstämpeln! */

printf ("latitud: %f, longitud: %f, hastighet: %f, tidsstämpel: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: Ersatt tv.tv_sec med gps_data.fix.time} else {printf ("ingen GPS -data tillgänglig / n"); }}} sömn (3); } / * När du är klar … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); returnera EXIT_SUCCESS; }

Steg 12: Kompilera det

Kompilera det
Kompilera det

Sammanställa!

gcc gps.c -lm -lgps -o gps

Exec It!

./gps

Steg 13: Hur man använder GPS -modul med Python (Raspberry Pi)

Hur man använder GPS -modul med Python (Raspberry Pi)
Hur man använder GPS -modul med Python (Raspberry Pi)

Följande kod rekommenderas att köras med Python 3 och installera gpsd-py3-biblioteket och GPS 2D/3D Fix:

importera gpsd

# Anslut till den lokala gpsd

gpsd.connect ()

# Få GPS -position

paket = gpsd.get_current ()

# Se de inbyggda dokumenten för GpsResponse för tillgänglig data

print (packet.position ())

Steg 14: Hur man använder GSM -modul med PPPd (Raspberry Pi)

Hur man använder GSM -modul med PPPd (Raspberry Pi)
Hur man använder GSM -modul med PPPd (Raspberry Pi)
Hur man använder GSM -modul med PPPd (Raspberry Pi)
Hur man använder GSM -modul med PPPd (Raspberry Pi)
Hur man använder GSM -modul med PPPd (Raspberry Pi)
Hur man använder GSM -modul med PPPd (Raspberry Pi)

A) Byt först ut /boot/overlays/sc16is752-i2c.dtbo och se till att I2C fungerar korrekt.

  • Byt ut sc16is752-i2c.dtbo
  • Konfigurera I2C

B) Ange kommando i2cset -y 1 0x16 0x23 0x40 för att återställa GPRS -modulen.

Efter att ha kört kommandot måste du vänta lite, cirka 10 sekunder

Du kan också använda följande metod för att återställa.

C) Ange kommando

sudo apt installera ppp

för att installera ppp -verktyg.

D) Kopiera/etc/ppp/peers/provider till/etc/ppp/peers/gprs

E) Ändra/etc/ppp/peers/gprs

  • Rad 10: Kontakta din tjänsteleverantör för användaren (exempel: cmnet).
  • Rad 15: Kontakta din tjänsteleverantör för apn (exempel: cmnet).
  • Rad 18 - Linje 24: Rekommenderad inställning

F) Ändra/etc/chatscripts/gprs (Ändra rad 34 till rad 35, uppringningsnummer kan INTE vara *99#)

G) Ange kommando sudo pppd ring gprs för att ringa upp.

H) Kontrollera din ppp -konfiguration från din ISP.

I) Ange kommando ping -I ppp0 8.8.8.8 testa ditt nätverk (om internet tillgängligt och ruttabellen är korrekt)

J) Behåll GSM -signalen bra, annars inträffar följande.

Steg 15: Hur man diagnostiserar min GSM -modul (Raspberry Pi)

Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)
Hur man diagnostiserar min GSM -modul (Raspberry Pi)

Följande kod rekommenderas att köras med Python 3 och installera smbus -biblioteket:

import serieimport tid import smbus import operatör import os

print ("Väntar på initialisering …")

buss = smbus. SMBus (1)

bus.write_byte_data (0x16, 0x23, 0x40)

ser = serial. Serial ('/dev/ttySC0', 115200)

om ser.isOpen == Falskt:

ser.open () försök: print ('-'*60) print ("Initierar A9G GPRS-modul.") print ("GSM-anslutning …") time.sleep (3) i = 0 medan 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 ") print (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) utom KeyboardInterrupt: ser.close ()

Exec the Test Script, baserat på resultaten av implementeringen, kan vi diagnostisera GSM -modulen. Till exempel, följande retur, CME ERROR 53 -fel berätta för oss Ström inte bra. CME -kod = GSM -utrustning relaterade fel

Naturligtvis har skriptet också en återställningsfunktion. Om du kan visa CCID korrekt är återställningen klar.

Steg 16: Hur man använder Lora TX & RX med C (Raspberry Pi)

Följande kod rekommenderas att köras med Python 3 och installera smbus -biblioteket.

Den måste överföras mellan de två IOT -noden (A). Innehållet som skickas av sig själv kan inte tas emot av sig själv. Spara det som ett py -skript för körning.

Hur man skickar: Efter att ha fyllt i data i register 0x01 - 0x10, ställ in L_TX -biten för att börja skicka data.

import timeimport smbus import os import sys

buss = smbus. SMBus (1)

Prova:

data_list = [170, 85, 165, 90] # skriva data för att registrera och sedan skickas data ut. för index i intervall (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) skriv ut ("LORA skicka data till %d register %d data" %(index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) utom KeyboardInterrupt: sys.exit ()

Så här skickar du mottagning: Kontrollera L_RXNE -bit. Om ny data har angetts måste den här flaggan vara klar manuellt

import timeimport smbus import os import sys

buss = smbus. SMBus (1)

recv_data =

Prova:

if bus.read_byte_data (0x16, 0x23) & 0x02: # rensa manuellt L_RXNE buss.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # läs ut data för index i intervall (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11])))

print ("Mottagna data:")

print (recv_data) else: print ("Ingen data mottagen ännu ~") utom KeyboardInterrupt: sys.exit ()

Steg 17: Särskild beskrivning av I2C -bandbredd

Gränsen för I2C -hastigheten är 400 kHz, på grund av I2C -protokollet, så den enda enhetens effektiva bandbredd är lägre än 320 kbps, effektiv enhet för flera enheter är lägre än 160 kbps. Gränsen för I2C UART -brygghastigheten är 115200bps. När GPS och GSM I2C -bandbredd är otillräcklig eftersom 115,2 kbps * 2 = 230,4 kbps, så vissa data kommer att överflödas. Minskning av överföringshastigheten för GPS och GSM -kommunikation kan förbättra bristen på kommunikationsbandbredd. Att packa andra DockerPi -moduler kan ta upp extra I2C -bandbredd. Vanligtvis är nätverksdatahastigheten långsam, så GSM -bandbredden är inte full, så det finns inget överflödsproblem.

Steg 18: Avslutad

Hoppas ni gillar det och gör det.

du hittar den här:

Amazon

Nattljus: https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4-kanals reläkort: 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 istornet:

Rekommenderad: