Índice:
- Suprimentos
- Etapa 1: Recursos
- Etapa 2: Etapa 1: saber sobre a placa IoT (A)
- Etapa 3: Etapa 2: como montá-lo
- Etapa 4: Etapa 3: conectar a antena
- Etapa 5: Etapa 4: ambiente do sistema operacional e configurações de software
- Etapa 6: Etapa 5: Configurar I2C (Raspberry Pi)
- Etapa 7: Etapa 6: saber sobre as informações de registro
- Etapa 8:
- Etapa 9: Instruções:
- Etapa 10: como usar o módulo GPS com Gpsd (Raspberry Pi)
- Etapa 11: como usar o módulo GPS com C (Raspberry Pi)
- Etapa 12: Compile
- Etapa 13: como usar o módulo GPS com Python (Raspberry Pi)
- Etapa 14: como usar o módulo GSM com PPPd (Raspberry Pi)
- Etapa 15: Como diagnosticar meu módulo GSM (Raspberry Pi)
- Etapa 16: como usar Lora TX e RX com C (Raspberry Pi)
- Etapa 17: Descrição especial da largura de banda I2C
- Etapa 18: Concluída
Vídeo: [Série Docker Pi] Como usar o módulo IoT Node (A) no Raspberry Pi: 18 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
O que é o módulo IoT Node (A)?
O Nó IoT (A) é um dos módulos da série Docker Pi.
Nó IOT (A) = GPS / BDS + GSM + Lora.
I2C controla diretamente o Lora, envia e recebe dados, controla o módulo GSM / GPS / BDS através do SC16IS752, a placa-mãe só precisa de suporte I2C.
Suporte Raspberry Pi e outros produtos semelhantes.
Suprimentos
1x Raspberry Pi 2B / 3B / 3B + / 4B / 3A + / Zero / Zero W
1x produto da série Docker Pi: módulo IoT Node (A)
1x cartão de 16GB classe 10 TF
1x fonte de alimentação 5V / 2,5A (5V @ 3A para Pi 4B)
Etapa 1: Recursos
- Docker Pi Series
- Programável
- Controle diretamente (sem programação)
- Estenda os pinos GPIO
- Suporte GPS / BDS
- Suporte GSM
- Suporte Lora
- Pode empilhar com outra placa de empilhamento
- Independente do hardware da placa-mãe (requer suporte I2C)
Etapa 2: Etapa 1: saber sobre a placa IoT (A)
O Nó IoT (A) é um dos módulos da série Docker Pi.
Nó IOT (A) = GPS / BDS + GSM + Lora.
I2C controla diretamente Lora, envia e recebe dados, controla o módulo GSM / GPS / BDS através de SC16IS752, a placa-mãe só precisa de suporte I2C. Suporte Raspberry Pi e outros produtos similares.
Portanto, você pode fazer um dispositivo de comunicação de médio alcance usando dois deles.
e também pode localizar a localização do seu dispositivo usando o módulo GPS a bordo.
Insira um cartão SIM, ele se tornará uma estação transmissora via mensagem SMS.
Etapa 3: Etapa 2: como montá-lo
É muito fácil de montar devido ao seu desenho "CHAPÉU", basta colocá-lo no seu pi de framboesa e conectá-lo através de pinos GPIO, é como um "chapéu" no pi de framboesa, para que você não tenha que adicionar a massa arame.
Etapa 4: Etapa 3: conectar a antena
Existem 3 peças de antena para este módulo IoT (A), uma delas é para o módulo loar, é uma antena tipo SMA, e uma delas é boa para seu GPS, é uma antena de caixa quadrada que tem porta IPX. e a última é para o módulo SIM (A9G), é uma antena minúscula que possui uma porta IPX. conecte a antena e monte o chapéu no seu pi de framboesa.
Como montar Monte a placa Iot Node (A) no Raspberry Pi
Conexão GPS antana e Lora antana à porta IPX.
- E1 : GPS-ANTANA-IPX
- E3 : LoRa-ANTANA-IPX
Aparafusa a antana GPRS na porta SMA.
Etapa 5: Etapa 4: ambiente do sistema operacional e configurações de software
Nesta etapa, você deve fazer o seguinte:
1. Baixe o arquivo de imagem mais recente em: www.raspberrypi.org/downloads
2. Descompacte-o.
3. Flash seu cartão TF com a imagem mais recente via ferramenta etcher
4. Modifique o arquivo /boot/config.txt e adicione este parágrafo.
dtoverlay = sc16is752-i2c
5. Substitui o arquivo /boot/overlay/sc16is752-i2c.dtbo por este arquivo:
wiki.52pi.com/index.php/File:Sc16is752-i2c…
PS: lembre-se de descompactá-lo e colocá-lo em sua pasta / boot / overlay / e substituir o antigo.
6. Reinicie o Raspberry Pi.
Etapa 6: Etapa 5: Configurar I2C (Raspberry Pi)
Execute sudo raspi-config e siga as instruções para instalar o suporte i2c para o núcleo ARM e kernel do Linux Vá para Opções de Interface
Etapa 7: Etapa 6: saber sobre as informações de registro
Seção GPRS
Baixo consumo de energia, corrente de espera em espera <1mA2.
Suporta quatro bandas de frequência GSM / GPRS, incluindo 850, 900, 1800, 1900 MHz
GPRS Classe 10
Suporte para serviço de dados GPRS, taxa máxima de dados, download 85,6 Kbps, upload 42,8 Kbps
Suporta comandos AT padrão GSM07.07, 07.05 e acesse a porta serial por meio da conversão de interface I2C
Os comandos AT suportam portas de comando AT e TCP / IP padrão
Seção GPSSuporte ao posicionamento da junta BDS / GPS
Suporte A-GPS, A-BDS
Suporta cartão SIM padrão
Seção LORA Distância de transmissão: 500 metros (parâmetros de RF: 0x50 na cidade da China)
Suporta métodos de modulação FSK, GFSK, MSK, GMSK, LoRaTM e OOK
Sensibilidade ultra-alta do receptor tão baixa quanto -141 dBm
Detecção de preâmbulo de suporte
Mecanismo de pacote com CRC, até 256 bytes
Indicador de transceptor LORA
Easy TX / RX por Docker Pi
Etapa 8:
Módulo A9G
O módulo A9G oferece duas portas seriais.
Use a ponte I2C UART para comunicação.
Nome do módulo da porta serial
- / dev / ttySC0 GSM
- / dev / ttySC1 GPS / BDS
Cadastre-se Mapa
- Registrar o valor da função de endereço
- 0x01 LORA_TX1 Lora TX Buffer 1 - Dados do usuário
- 0x02 LORA_TX2 Lora TX Buffer 2 - Dados do usuário
- 0x03 LORA_TX3 Lora TX Buffer 3 - Dados do usuário
- 0x04 LORA_TX4 Lora TX Buffer 4 - Dados do usuário
- 0x05 LORA_TX5 Lora TX Buffer 5 - Dados do usuário
- 0x06 LORA_TX6 Lora TX Buffer 6 - Dados do usuário
- 0x07 LORA_TX7 Lora TX Buffer 7 - Dados do usuário
- 0x08 LORA_TX8 Lora TX Buffer 8 - Dados do usuário
- 0x09 LORA_TX9 Lora TX Buffer 9 - Dados do usuário
- 0x0a LORA_TX10 Lora TX Buffer 10 - Dados do usuário
- 0x0b LORA_TX11 Lora TX Buffer 11 - Dados do usuário
- 0x0c LORA_TX12 Lora TX Buffer 12 - Dados do usuário
- 0x0d LORA_TX13 Lora TX Buffer 13 - Dados do usuário
- 0x0e LORA_TX14 Lora TX Buffer 14 - Dados do usuário
- 0x0f LORA_TX15 Lora TX Buffer 15 - Dados do usuário
- 0x10 LORA_TX16 Lora TX Buffer 16 - Dados do usuário
- 0x11 LORA_RX1 Lora RX Buffer 1 - Dados do usuário
- 0x12 LORA_RX2 Lora RX Buffer 2 - Dados do usuário
- 0x13 LORA_RX3 Lora RX Buffer 3 - Dados do usuário
- 0x14 LORA_RX4 Lora RX Buffer 4 - Dados do usuário
- 0x15 LORA_RX5 Lora RX Buffer 5 - Dados do usuário
- 0x16 LORA_RX6 Lora RX Buffer 6 - Dados do usuário
- 0x17 LORA_RX7 Lora RX Buffer 7 - Dados do usuário
- 0x18 LORA_RX8 Lora RX Buffer 8 - Dados do usuário
- 0x19 LORA_RX9 Lora RX Buffer 9 - Dados do usuário
- 0x1a LORA_RX10 Lora RX Buffer 10 - Dados do usuário
- 0x1b LORA_RX11 Lora RX Buffer 11 - Dados do usuário
- 0x1c LORA_RX12 Lora RX Buffer 12 - Dados do usuário
- 0x1d LORA_RX13 Lora RX Buffer 13 - Dados do usuário
- 0x1e LORA_RX14 Lora RX Buffer 14 - Dados do usuário
- 0x1f LORA_RX15 Lora RX Buffer 15 - Dados do usuário
- 0x20 LORA_RX16 Lora RX Buffer 16 - Dados do usuário
- 0x01 - 0x10 Somente gravação.
- 0x11 - 0x20 Somente leitura.
Etapa 9: Instruções:
L_SET (somente gravação)
- Escreva 1 para definir os parâmetros de 0x22 para o Módulo LORA.
- Escreva 0 sem efeito
G_RESET (somente gravação)
- Escreva 1 para reiniciar o Módulo A9G
- Escreva 0 sem efeito
L_RXNE (Leitura e Escrita)
- Erro de causa de gravação 1
- Escreva 0 para limpar
- A leitura 1 significa que os dados foram recebidos, obtenha os dados do registro 0x11 - 0x20.
- Ler 0 significa que não há dados disponíveis agora.
L_SET (somente gravação)
- Escreva 1 para enviar dados, preencha os dados no registro 0x01 - 0x10 antes de enviar.
- Escreva 0 sem efeito
Etapa 10: como usar o módulo GPS com Gpsd (Raspberry Pi)
Como usar o módulo GPS com gpsd (Raspberry Pi)
Primeiro, substitua o /boot/overlays/sc16is752-i2c.dtbo e certifique-se de que o I2C esteja funcionando corretamente.
- Substitua sc16is752-i2c.dtbo
- Configurando I2C
- Instale ferramentas gpsd.
Abra um terminal e digite este comando:
sudo apt instalar clientes gpsd gpsd
Modifique o arquivo / etc / default / gpsd e adicione os seguintes parâmetros:
- DISPOSITIVOS = "/ dev / ttySC1"
- GPSD_OPTIONS = "- F /var/run/gpsd.sock"
Digite o comando i2cset -y 1 0x16 0x23 0x40 para reinicializar o módulo GPRS.
Script Python para GPS aberto:
import serialimport os import time # Reinicia o serviço gpsd. os.system ("sudo systemctl restart gpsd.socket") # Abrir porta serial ser = serial. Serial ('/ dev / ttySC0', 115200) i = 0 if ser.isOpen == False: ser.open () try: print ("Turn on GPS…") while True: ser.write (str.encode ("AT + GPS = 1 / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () resposta = ser.read (tamanho) gps = str (resposta, codificação = "utf-8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Esperando habilitar GPS, se o tempo for muito longo, teste ao ar livre:" + str (i)) ser.flushInput () time.sleep (1) exceto KeyboardInterrupt: ser.flushInput () ser.close ()
Salve-o e execute-o:
python3 GPS.py
Etapa 11: como usar o módulo GPS com C (Raspberry Pi)
Instale ferramentas gpsd
sudo apt-get install libgps-dev
Crie o código-fonte com o nome "gps.c"
#include #include #include
#incluir
#incluir
int main ()
{int rc; struct timeval tv; struct gps_data_t gps_data; if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("código:% d, motivo:% s / n", rc, gps_errstr (rc)); return EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
enquanto (1)
{/ * aguarde 2 segundos para receber os dados * / if (gps_waiting (& gps_data, 2000000)) {/ * ler dados * / if ((rc = gps_read (& gps_data)) == -1) {printf ("ocorreu um erro de leitura dados GPS. código:% d, razão:% s / n ", rc, gps_errstr (rc)); } else {/ * Exibe dados do receptor 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 não é realmente o carimbo de data / hora! * /
printf ("latitude:% f, longitude:% f, velocidade:% f, timestamp:% lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time);
// EDITAR: tv.tv_sec substituído por gps_data.fix.time} else {printf ("nenhum dado GPS disponível / n"); }}} sono (3); } / * Quando você terminar… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); return EXIT_SUCCESS; }
Etapa 12: Compile
Compilar!
gcc gps.c -lm -lgps -o gps
Exec It!
./GPS
Etapa 13: como usar o módulo GPS com Python (Raspberry Pi)
O seguinte código é recomendado para ser executado usando Python 3 e instalar a biblioteca gpsd-py3 e GPS 2D / 3D Fix:
importar gpsd
# Conecte-se ao gpsd local
gpsd.connect ()
# Obter posição GPS
pacote = gpsd.get_current ()
# Veja os documentos inline para GpsResponse para os dados disponíveis
imprimir (packet.position ())
Etapa 14: como usar o módulo GSM com PPPd (Raspberry Pi)
A) Primeiro, substitua o /boot/overlays/sc16is752-i2c.dtbo e certifique-se de que o I2C esteja funcionando corretamente.
- Substitua sc16is752-i2c.dtbo
- Configurando I2C
B) Digite o comando i2cset -y 1 0x16 0x23 0x40 para reinicializar o módulo GPRS.
Depois de executar o comando, você precisa esperar um pouco, cerca de 10 segundos
Você também pode usar o seguinte método para redefinir.
C) Digite o comando
sudo apt install ppp
para instalar ferramentas ppp.
D) Copie / etc / ppp / peers / provider para / etc / ppp / peers / gprs
E) Modifique / etc / ppp / peers / gprs
- Linha 10: Consulte seu provedor de serviços para o usuário (Exemplo: cmnet).
- Linha 15: Consulte seu provedor de serviços para o apn (exemplo: cmnet).
- Linha 18 - Linha 24: configuração recomendada
F) Modifique / etc / chatscripts / gprs (altere a linha 34 para a linha 35, o número de discagem pode ser NÃO * 99 #)
G) Digite o comando sudo pppd call gprs para discar.
H) Verifique a configuração do seu PPP do seu ISP.
I) Digite o comando ping -I ppp0 8.8.8.8 teste sua rede (se a Internet estiver disponível e a tabela de rotas estiver correta)
J) Mantenha o sinal GSM bom, caso contrário, ocorrerá o seguinte.
Etapa 15: Como diagnosticar meu módulo GSM (Raspberry Pi)
Recomenda-se que o código a seguir seja executado usando Python 3 e instale a biblioteca smbus:
import serialimport time import smbus import operador import os
print ("Aguardando inicialização …")
bus = smbus. SMBus (1)
bus.write_byte_data (0x16, 0x23, 0x40)
ser = serial. Serial ('/ dev / ttySC0', 115200)
if ser.isOpen == False:
ser.open () try: print ('-' * 60) print ("Inicializando o módulo A9G GPRS.") print ("GSM conectando…") time.sleep (3) i = 0 enquanto True: ser.write (str.encode ("AT + CCID / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () response = ser.read (size) ccid = str (resposta, codificação = "utf -8 ") print (ccid) else: i = i + 1 ser.flushInput () time.sleep (1) exceto KeyboardInterrupt: ser.close ()
Executando o Script de Teste, com base nos resultados da implementação, podemos diagnosticar o módulo GSM. Por exemplo, o seguinte retorna, erro CME ERROR 53 nos diz Power not good. Código CME = Erros relacionados ao equipamento GSM
Claro, o script também tem uma função de redefinição. Se você puder exibir o CCID corretamente, a redefinição está concluída.
Etapa 16: como usar Lora TX e RX com C (Raspberry Pi)
Recomenda-se que o código a seguir seja executado em Python 3 e instale a biblioteca smbus.
Deve ser transferido entre os dois Nó IOT (A). O conteúdo enviado por si só não pode ser recebido por si mesmo. Salve-o como um script py para execução.
Como enviar: Após preencher os dados no registro 0x01 - 0x10, defina o bit L_TX para iniciar o envio de dados.
import timeimport smbus import os import sys
bus = smbus. SMBus (1)
Experimente:
data_list = [170, 85, 165, 90] # grava dados para registrar e então os dados serão enviados. para o índice no intervalo (1, len (data_list) + 1): bus.write_byte_data (0x16, index, data_list [index - 1]) print ("LORA envia dados para% d registro% d dados"% (índice, data_list [índice - 1])) bus.write_byte_data (0x16, 0x23, 0x01) exceto KeyboardInterrupt: sys.exit ()
Como enviar e receber: Verifique o bit L_RXNE, se definido, novos dados chegaram, este sinalizador deve ser apagado manualmente
import timeimport smbus import os import sys
bus = smbus. SMBus (1)
recv_data =
Experimente:
if bus.read_byte_data (0x16, 0x23) & 0x02: # limpa manualmente L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # lê os dados do índice no intervalo (0x11, len (register_list) + 0x11): recv_data.append (bus.read_byte_data (0x16, register_list [index - 0x11]))
imprimir ("Dados recebidos:")
print (recv_data) else: print ("Nenhum dado recebido ainda ~") exceto KeyboardInterrupt: sys.exit ()
Etapa 17: Descrição especial da largura de banda I2C
O limite da velocidade I2C é 400 kHz, devido ao protocolo I2C, então a largura de banda efetiva do único dispositivo é inferior a 320 kbps, a largura de banda efetiva de vários dispositivos é inferior a 160 kbps. O limite da velocidade da ponte I2C UART é 115200bps. Quando GPS e GSM trabalhar ao mesmo tempo, a largura de banda I2C é insuficiente, porque 115,2 kbps * 2 = 230,4 kbps, portanto, alguns dados vão estourar. Reduzir a taxa de transmissão de comunicação GPS e GSM pode melhorar a falta de largura de banda de comunicação. Empilhar outros módulos DockerPi pode demorar largura de banda I2C extra. Normalmente, a velocidade dos dados da rede é lenta, então a largura de banda GSM não está cheia, então não há problema de estouro.
Etapa 18: Concluída
Espero que gostem e façam isso.
Você pode encontrá-lo aqui:
Amazonas
Nightlight : https://www.amazon.com/GeeekPi-Night-Light-WS2812-Raspberry/dp/B07LCG2S5S Placa de retransmissão de 4 canais: https://www.amazon.co.uk/dp/B07MV1TJGR?ref=myi_title_dp Placa de energia : Https: //www.amazon.co.uk/dp/B07TD595VS? Ref = myi_title_dp Nó IoT (A) : https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 torre de gelo :
Recomendado:
Como usar o módulo RFID-RC522 com Arduino: 5 etapas
Como usar o módulo RFID-RC522 com o Arduino: Neste Instructable, darei um passo a passo sobre o princípio de funcionamento fundamental do módulo RFID acoplado a seus tags e chips. Também darei um breve exemplo de um projeto que fiz usando este módulo RFID com um LED RGB. Como de costume com meu Ins
Como usar um módulo de relógio em tempo real (DS3231): 5 etapas
Como usar um módulo de relógio em tempo real (DS3231): O DS3231 é um relógio em tempo real I2C (RTC) extremamente preciso e de baixo custo com um oscilador de cristal com compensação de temperatura (TCXO) e cristal integrados. O dispositivo incorpora uma entrada de bateria e mantém uma cronometragem precisa quando a alimentação principal do
Série Docker Pi de placa de hub de sensor Sobre IOT: 13 etapas
Série Docker Pi de placa de hub de sensor Sobre IOT: Olá, pessoal. Hoje em dia, quase tudo está relacionado a IOT. Sem dúvida, nossa placa da série DockerPi também suporta a IOT. Hoje, quero apresentar a série DockerPi de SensorHub como para aplicar a IOT a você. Eu executo este item que é baseado em
Inglês / Português: S4A Como Instalar E Usar / S4A Como instalar e usar: 7 etapas
Inglês / Português: S4A Como Instalar E Usar / S4A Como instalar e usar: O S4A (ou Scratch para Arduino) é um sistema que baseado no Scratch que permite interagir diretamente com um Arduino. É uma forma muito did á tica de usar programa ç ã o e verificar em tempo real a intera ç & atild
Como usar o terminal Mac e como usar as funções principais: 4 etapas
Como usar o Terminal Mac e como usar as funções principais: Mostraremos como abrir o Terminal MAC. Também mostraremos alguns recursos do Terminal, como ifconfig, alteração de diretórios, acesso a arquivos e arp. Ifconfig permitirá que você verifique seu endereço IP e seu anúncio MAC