Obsah:

[Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi: 18 kroků
[Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi: 18 kroků

Video: [Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi: 18 kroků

Video: [Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi: 18 kroků
Video: Unikernels, meet Docker! 2024, Listopad
Anonim
[Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi
[Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi

Co je modul IoT Node (A)?

IoT Node (A) je jedním z modulů Docker Pi.

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

I2C přímo ovládá Loru, odesílá a přijímá data, ovládá modul GSM/GPS/BDS prostřednictvím SC16IS752, základní deska potřebuje pouze podporu I2C.

Podporujte Raspberry Pi a další podobné produkty.

Zásoby

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

1x produkt řady Docker Pi: modul IoT Node (A)

1x 16GB TF karta třídy 10

1x napájecí zdroj 5V/2,5A (5V@3A pro Pi 4B)

Krok 1: Funkce

Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
  • Docker Pi Series
  • Programovatelný
  • Přímé ovládání (bez programování)
  • Rozšiřte GPIO piny
  • Podpora GPS/BDS
  • Podpora GSM
  • Podpora Lora
  • Lze stohovat s jinou deskou Stack
  • Nezávisle na hardwaru základní desky (vyžadovat podporu I2C)

Krok 2: Krok 1: Vědět o desce IoT (A)

Krok 1: Vědět o desce IoT (A)
Krok 1: Vědět o desce IoT (A)
Krok 1: Vědět o desce IoT (A)
Krok 1: Vědět o desce IoT (A)
Krok 1: Vědět o desce IoT (A)
Krok 1: Vědět o desce IoT (A)

IoT Node (A) je jedním z modulů Docker Pi.

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

I2C přímo ovládá Loru, odesílá a přijímá data, ovládá modul GSM/GPS/BDS prostřednictvím SC16IS752, základní deska potřebuje pouze podporu I2C. Podpora Raspberry Pi a dalších podobných produktů.

Pomocí dvou z nich tedy můžete vytvořit komunikační zařízení středního dosahu.

a také můžete zjistit polohu vašeho zařízení pomocí integrovaného modulu GPS.

Vložte SIM kartu, stane se stanicí vysílače prostřednictvím SMS zprávy.

Krok 3: Krok 2: Jak jej sestavit

Krok 2: Jak jej sestavit
Krok 2: Jak jej sestavit
Krok 2: Jak jej sestavit
Krok 2: Jak jej sestavit

Je velmi snadné jej sestavit, protože má design „HAT“, stačí jej nasadit na malinový pi a propojit pomocí pinů GPIO, jako „klobouk“na malinovém pi, takže nemusíte přidávat hmotu drát.

Krok 4: Krok 3: Připojení antény

Krok 3: Připojte anténu
Krok 3: Připojte anténu
Krok 3: Připojte anténu
Krok 3: Připojte anténu
Krok 3: Připojte anténu
Krok 3: Připojte anténu

Pro tento modul IoT (A) existují 3 kusy antény, jedna z nich je pro loar modul, je to anténa typu SMA a jedna z nich je dobrá pro vás GPS, je to anténa se čtvercovým boxem, která má port IPX. a poslední je pro modul SIM (A9G), je to malá anténa, která má port IPX. připojte anténu a namontujte klobouk na svůj malinový pi.

Jak sestavit Připojte desku Iot Node (A) k Raspberry Pi

Připojte anténu GPS a anténu Lora k portu IPX.

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

Zašroubuje anténu GPRS na port SMA.

Krok 5: Krok 4: Konfigurace prostředí a softwaru OS

V tomto kroku musíte provést tyto věci:

1. Stáhněte si nejnovější soubor obrázku z: www.raspberrypi.org/downloads

2. Rozbalte jej.

3. Flashujte svou TF kartu pomocí nejnovějšího obrázku pomocí nástroje pro leptání

4. Upravte soubor /boot/config.txt a přidejte tento odstavec.

dtoverlay = sc16is752-i2c

5. Nahradí soubor /boot/overlay/sc16is752-i2c.dtbo tímto souborem:

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

PS: nezapomeňte jej rozbalit a vložit do složky/boot/overlay/a nahradit starý.

6. Restartujte Raspberry Pi.

Krok 6: Krok 5: Konfigurace I2C (Raspberry Pi)

Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)
Krok 5: Konfigurace I2C (Raspberry Pi)

Spusťte sudo raspi-config a podle pokynů nainstalujte podporu i2c pro jádro ARM a linuxové jádro Přejít na Možnosti rozhraní

Krok 7: Krok 6: Informace o informacích o registru

Sekce GPRS

Nízká spotřeba energie, pohotovostní spánkový proud <1mA2.

Podpora GSM/GPRS čtyř frekvenčních pásem, včetně 850, 900, 1800, 1900 MHz

GPRS třída 10

Podpora datové služby GPRS, maximální přenosová rychlost, stahování 85,6 Kbps, nahrávání 42,8 Kbps

Podpora standardních příkazů GSM07.07, 07.05 AT a přístup k sériovému portu prostřednictvím převodu rozhraní I2C

Příkazy AT podporují standardní příkazové porty AT a TCP/IP

Sekce GPS Podpora polohování BDS/GPS kloubů

Podpora A-GPS, A-BDS

Podpora standardní SIM karty

Sekce LORA Přenosová vzdálenost: 500 metrů (RF parametry: 0x50 @ China City)

Podpora modulačních metod FSK, GFSK, MSK, GMSK, LoRaTM a OOK

Extrémně vysoká citlivost přijímače až -141 dBm

Podpora detekce preambule

Paketový engine s CRC, až 256 bajtů

Indikátor transceiveru LORA

Easy TX/RX od Docker Pi

Krok 8:

Modul A9G

Modul A9G nabízí dva sériové porty.

Ke komunikaci použijte most I2C UART.

Název modulu sériového portu

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

Zaregistrovat mapu

  • Registrace Adresa Funkce Hodnota
  • 0x01 LORA_TX1 Lora TX Buffer 1 - Uživatelská data
  • 0x02 LORA_TX2 Lora TX Buffer 2 - Uživatelská data
  • 0x03 LORA_TX3 Lora TX Buffer 3 - Uživatelská data
  • 0x04 LORA_TX4 Lora TX Buffer 4 - Uživatelská data
  • 0x05 LORA_TX5 Lora TX Buffer 5 - Uživatelská data
  • 0x06 LORA_TX6 Lora TX Buffer 6 - Uživatelská data
  • 0x07 LORA_TX7 Lora TX Buffer 7 - Uživatelská data
  • 0x08 LORA_TX8 Lora TX Buffer 8 - Uživatelská data
  • 0x09 LORA_TX9 Lora TX Buffer 9 - Uživatelská data
  • 0x0a LORA_TX10 Lora TX Buffer 10 - Uživatelská data
  • 0x0b LORA_TX11 Lora TX Buffer 11 - Uživatelská data
  • 0x0c LORA_TX12 Lora TX Buffer 12 - Uživatelská data
  • 0x0d LORA_TX13 Lora TX Buffer 13 - Uživatelská data
  • 0x0e LORA_TX14 Lora TX Buffer 14 - Uživatelská data
  • 0x0f LORA_TX15 Lora TX Buffer 15 - Uživatelská data
  • 0x10 LORA_TX16 Lora TX Buffer 16 - Uživatelská data
  • 0x11 LORA_RX1 Lora RX Buffer 1 - Uživatelská data
  • 0x12 LORA_RX2 Lora RX Buffer 2 - uživatelská data
  • 0x13 LORA_RX3 Lora RX Buffer 3 - Uživatelská data
  • 0x14 LORA_RX4 Lora RX Buffer 4 - uživatelská data
  • 0x15 LORA_RX5 Lora RX Buffer 5 - Uživatelská data
  • 0x16 LORA_RX6 Lora RX Buffer 6 - Uživatelská data
  • 0x17 LORA_RX7 Lora RX Buffer 7 - Uživatelská data
  • 0x18 LORA_RX8 Lora RX Buffer 8 - uživatelská data
  • 0x19 LORA_RX9 Lora RX Buffer 9 - Uživatelská data
  • 0x1a LORA_RX10 Lora RX Buffer 10 - Uživatelská data
  • 0x1b LORA_RX11 Lora RX Buffer 11 - Uživatelská data
  • 0x1c LORA_RX12 Lora RX Buffer 12 - Uživatelská data
  • 0x1d LORA_RX13 Lora RX Buffer 13 - Uživatelská data
  • 0x1e LORA_RX14 Lora RX Buffer 14 - Uživatelská data
  • 0x1f LORA_RX15 Lora RX Buffer 15 - Uživatelská data
  • 0x20 LORA_RX16 Lora RX Buffer 16 - Uživatelská data
  • 0x01 - 0x10 Pouze pro zápis.
  • 0x11 - 0x20 Pouze pro čtení.

Krok 9: Pokyny:

Instrukce
Instrukce

L_SET (pouze pro zápis)

  • Zapište 1 a nastavte parametry od 0x22 do modulu LORA.
  • Napište 0 bez účinku

G_RESET (pouze pro zápis)

  • Chcete -li modul A9G resetovat, napište 1
  • Napište 0 bez účinku

L_RXNE (čtení a zápis)

  • Napište 1 příčinu chyby
  • Chcete -li vymazat, napište 0
  • Přečíst 1 znamená, že byla přijata data, načtěte prosím data z registru 0x11 - 0x20.
  • Přečíst 0 znamená, že nyní nejsou k dispozici žádná data.

L_SET (pouze pro zápis)

  • Pro odeslání dat napište 1, před odesláním prosím vyplňte údaje v registru 0x01 - 0x10.
  • Napište 0 bez účinku

Krok 10: Jak používat modul GPS s Gpsd (Raspberry Pi)

Jak používat modul GPS s Gpsd (Raspberry Pi)
Jak používat modul GPS s Gpsd (Raspberry Pi)
Jak používat modul GPS s Gpsd (Raspberry Pi)
Jak používat modul GPS s Gpsd (Raspberry Pi)
Jak používat modul GPS s Gpsd (Raspberry Pi)
Jak používat modul GPS s Gpsd (Raspberry Pi)

Jak používat modul GPS s gpsd (Raspberry Pi)

Nejprve vyměňte /boot/overlays/sc16is752-i2c.dtbo a ujistěte se, že I2C funguje správně.

  • Vyměňte sc16is752-i2c.dtbo
  • Konfigurace I2C
  • Nainstalujte si nástroje gpsd.

Otevřete terminál a zadejte tento příkaz:

sudo apt install gpsd gpsd-clients

Upravte soubor/etc/default/gpsd a přidejte následující parametry:

  • ZAŘÍZENÍ = "/dev/ttySC1"
  • GPSD_OPTIONS = "-F /var/run/gpsd.sock"

Chcete -li resetovat modul GPRS, zadejte příkaz i2cset -y 1 0x16 0x23 0x40.

Python skript pro otevřené GPS:

import serialimport os import time # Restartujte službu gpsd. os.system ("sudo systemctl restart gpsd.socket") # Otevřete sériový port ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 pokud ser.isOpen == False: ser.open () zkuste: tisknout ("Zapnout GPS …") při True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () response = ser.read (size) gps = str (response, encoding = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 tisk ("Čekání GPS povoleno, Pokud je čas příliš dlouhý, vyzkoušejte venku:" + str (i)) ser.flushInput () time.sleep (1) kromě KeyboardInterrupt: ser.flushInput () ser.close ()

Uložte a spusťte:

python3 GPS.py

Krok 11: Jak používat modul GPS s C (Raspberry Pi)

Nainstalujte si nástroje gpsd

sudo apt-get install libgps-dev

Vytvořte zdrojový kód a pojmenujte jej „gps.c“

#include #include #include

#zahrnout

#zahrnout

int main ()

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

zatímco (1)

{ / * počkejte 2 sekundy na příjem dat * / if (gps_waiting (& gps_data, 2000000)) { / * přečtěte data * / if ((rc = gps_read (& gps_data)) == -1) {printf ("došlo k chybě při čtení gps data. kód: %d, důvod: %s / n ", rc, gps_errstr (rc)); } else { /* Zobrazit data z přijímače GPS. */ 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 není ve skutečnosti časové razítko! */

printf ("zeměpisná šířka: %f, zeměpisná délka: %f, rychlost: %f, časové razítko: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);

// EDIT: Nahrazeno tv.tv_sec gps_data.fix.time} else {printf ("nejsou k dispozici žádná data GPS / n"); }}} spánek (3); } / * Až budete hotovi … * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); návrat EXIT_SUCCESS; }

Krok 12: Zkompilovat to

Zkompilovat to
Zkompilovat to

Kompilovat!

gcc gps.c -lm -lgps -o gps

Exec It!

./gps

Krok 13: Jak používat modul GPS v Pythonu (Raspberry Pi)

Jak používat modul GPS v Pythonu (Raspberry Pi)
Jak používat modul GPS v Pythonu (Raspberry Pi)

Následující kód se doporučuje provést pomocí Pythonu 3 a nainstalovat knihovnu gpsd-py3 a GPS 2D/3D opravu:

importovat gpsd

# Připojte se k místnímu gpsd

gpsd.connect ()

# Získejte polohu GPS

packet = gpsd.get_current ()

# Dostupná data najdete v vložených dokumentech pro GpsResponse

tisk (packet.position ())

Krok 14: Jak používat GSM modul s PPPd (Raspberry Pi)

Jak používat GSM modul s PPPd (Raspberry Pi)
Jak používat GSM modul s PPPd (Raspberry Pi)
Jak používat GSM modul s PPPd (Raspberry Pi)
Jak používat GSM modul s PPPd (Raspberry Pi)
Jak používat GSM modul s PPPd (Raspberry Pi)
Jak používat GSM modul s PPPd (Raspberry Pi)

A) Nejprve vyměňte /boot/overlays/sc16is752-i2c.dtbo a ujistěte se, že I2C funguje správně.

  • Vyměňte sc16is752-i2c.dtbo
  • Konfigurace I2C

B) Chcete -li resetovat modul GPRS, zadejte příkaz i2cset -y 1 0x16 0x23 0x40.

Po spuštění příkazu musíte chvíli počkat, asi 10 sekund

K resetování můžete také použít následující metodu.

C) Zadejte příkaz

sudo apt install ppp

nainstalovat nástroje ppp.

D) Zkopírujte/etc/ppp/peers/provider do/etc/ppp/peers/gprs

E) Upravit/etc/ppp/peers/gprs

  • Řádek 10: Ohledně uživatele se obraťte na svého poskytovatele služeb (Příklad: cmnet).
  • Řádek 15: Ohledně apn se obraťte na svého poskytovatele služeb (Příklad: cmnet).
  • Řádek 18 - Řádek 24: Doporučené nastavení

F) Upravit/etc/chatscripts/gprs (Změnit řádek 34 na řádek 35, číslo Dialout NENÍ NENÍ *99#)

G) Vytočte příkaz sudo pppd call gprs.

H) Zkontrolujte konfiguraci ppp od svého ISP.

I) Zadejte příkaz ping -I ppp0 8.8.8.8 test vaší sítě (Pokud je k dispozici internet a tabulka směrování je správná)

J) Udržujte dobrý signál GSM, jinak dojde k následujícímu.

Krok 15: Jak diagnostikovat můj GSM modul (Raspberry Pi)

Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)
Jak diagnostikovat můj GSM modul (Raspberry Pi)

Následující kód se doporučuje provést pomocí Pythonu 3 a nainstalovat knihovnu smbus:

import serialimport čas import smbus import operator import os

tisk ("Čekání na inicializaci …")

bus = smbus. SMBus (1)

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

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

pokud ser.isOpen == False:

ser.open () try: print ('-'*60) print ("Initializing A9G GPRS module.") print ("GSM connections …") time.sleep (3) i = 0 while 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 ") tisk (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) kromě KeyboardInterrupt: ser.close ()

Spusťte testovací skript, na základě výsledků implementace můžeme diagnostikovat modul GSM. Například následující návrat, chyba CME ERROR 53 nám řekne Power not good. Kód CME = Chyby související se zařízením GSM

Skript má samozřejmě také funkci reset. Pokud dokážete správně zobrazit CCID, reset je dokončen.

Krok 16: Jak používat Lora TX & RX s C (Raspberry Pi)

Následující kód se doporučuje provést pomocí Pythonu 3 a nainstalovat knihovnu smbus.

Musí být přenesen mezi dvěma uzly IOT (A). Samotný odeslaný obsah nelze sám přijímat. Uložte jej prosím jako py skript pro provedení.

Jak odeslat: Po vyplnění dat do registru 0x01 - 0x10 nastavte bit L_TX tak, aby začal odesílat data.

import timeimport smbus import os import sys

bus = smbus. SMBus (1)

Snaž se:

data_list = [170, 85, 165, 90] # zapište data k registraci a poté budou data odeslána. pro index v rozsahu (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA odeslat data do %d register %d data" %(index, data_list [index - 1])) bus.write_byte_data (0x16, 0x23, 0x01) kromě KeyboardInterrupt: sys.exit ()

Jak odeslat příjem: Zkontrolujte bit L_RXNE, pokud je nastaven, dorazila nová data, tento příznak musí být ručně vymazán

import timeimport smbus import os import sys

bus = smbus. SMBus (1)

recv_data =

Snaž se:

if bus.read_byte_data (0x16, 0x23) & 0x02: # manually clear L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # read out data for index in range (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))

tisk ("Přijatá data:")

print (recv_data) else: print ("Zatím nebyla přijata žádná data ~") kromě KeyboardInterrupt: sys.exit ()

Krok 17: Speciální popis šířky pásma I2C

Limit rychlosti I2C je 400kHz, díky protokolu I2C, takže efektivní šířka pásma jednoho zařízení je nižší než 320 kb / s, efektivní šířka pásma více zařízení je nižší než 160 kb / s. Limit rychlosti mostu I2C UART Bridge je 115200 b / s. Když GPS a GSM pracovat současně, šířka pásma I2C je nedostatečná, protože 115,2 kb / s * 2 = 230,4 kb / s, takže některá data budou přetečena. Snížení přenosové rychlosti komunikace GPS a GSM může zlepšit nedostatek šířky pásma komunikace. Zapojení jiných modulů DockerPi může zabrat extra šířka pásma I2C. Rychlost síťových dat je obvykle pomalá, takže šířka pásma GSM není plná, takže není problém s přetečením.

Krok 18: Hotovo

Snad se vám to líbí a zvládnete to.

najdete ho zde:

Amazonka

Noční světlo : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S 4channel Relay board: 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. ledová věž amazon.co.uk/dp/B07TZD8B61 :

Doporučuje: