Índice:

Lora Gateway baseado em MicroPython ESP32: 10 etapas (com imagens)
Lora Gateway baseado em MicroPython ESP32: 10 etapas (com imagens)

Vídeo: Lora Gateway baseado em MicroPython ESP32: 10 etapas (com imagens)

Vídeo: Lora Gateway baseado em MicroPython ESP32: 10 etapas (com imagens)
Vídeo: IoT project: ESP8266 LoRa Gateway for Arduino and LM75 Temperature Sensor, Arduino LoRa Gateway 2024, Julho
Anonim
Lora Gateway baseado em MicroPython ESP32
Lora Gateway baseado em MicroPython ESP32
Lora Gateway baseado em MicroPython ESP32
Lora Gateway baseado em MicroPython ESP32

Lora se tornou muito popular nos últimos anos. O módulo de comunicação sem fio que usa esta tecnologia é geralmente barato (usando espectro livre), pequeno em tamanho, eficiente em termos de energia e tem uma longa distância de comunicação e é usado principalmente para comunicação mútua entre terminais IoT ou troca de dados com um host. Existem muitos módulos LoRa no mercado, como o RFM96W, que é equipado com o chip SX1278 (compatível), que é muito pequeno. Eu o uso com MakePython ESP32 como um gateway.

Em seguida, usarei dois nós LoRa para enviar os dados de temperatura e umidade para o gateway e, em seguida, carregá-los-ei para a Internet por meio do gateway. Aqui, você aprenderá como fazer upload de dados remotos de vários nós LoRa para a nuvem por meio do gateway.

Etapa 1: suprimentos

Suprimentos
Suprimentos

1 * MakePython ESP32

MakePython ESP32 é uma placa ESP32 com um display OLED SSD1306 integrado.

2 * Rádio Maduino LoRa

O Rádio Maduino Lora é uma solução IoT (Internet das coisas) baseada no módulo Atmega328P MCU e Lora da Atmel. Pode ser um projeto real para projetos de IoT (especialmente aplicações de longo alcance e baixo consumo de energia)

2 * DHT11

1 * MakePython Lora

Etapa 2: Nó LoRa

Nó LoRa
Nó LoRa
Nó LoRa
Nó LoRa

Este é o esquema da Rádio Maduino Lora.

Módulo Arduino Lora Radio como nó LoRa, nós o usamos para enviar dados de temperatura e umidade para o gateway.

(Este WiKi apresenta como usar o Rádio Maduino Lora e enviar e receber dados)

Etapa 3: Conexão do Nó e do Sensor

Conexão de Nó e Sensor
Conexão de Nó e Sensor
Conexão de Nó e Sensor
Conexão de Nó e Sensor

O VCC e GND de DHT11 são conectados a 3V3 e GND de Maduino, e o pino DATA está conectado a D4 de Maduino.

O nó 0 está no parque, o nó 1 está no prédio de escritórios perto da empresa, eles estão a cerca de 2 quilômetros um do outro, e então eu obtenho seus dados de temperatura e umidade em casa

Etapa 4: enviar dados para o gateway

Baixe TransmitterDHT11.ino, abra-o no Arduino IDE.

Ao adicionar um nó, modifique o número do nó de acordo. Por exemplo, agora use 2 nós, o primeiro nó para modificar o nó = 0 para executar o programa, o segundo nó para modificar o nó = 1 para executar o programa e assim por diante, você pode adicionar mais nó.

int16_t packetnum = 0; // contador de pacotes, nós incrementamos a permissão

int16_t nodenum = 0; // Modifica o número do nó

Colete dados e imprima-os

String mensagem = "#" + (String) nodenum + "Umidade:" + (String) umidade + "% Temperatura:" + (String) temperatura + "C" + "num:" + (String) packetnum; Serial.println (mensagem); packetnum ++;

Envie uma mensagem para rf95_server

uint8_t radioPacket [message.length () + 1];

message.toCharArray (radioPacket, message.length () + 1); radioPacket [message.length () + 1] = '\ 0'; rf95.send ((uint8_t *) radioPacket, message.length () + 1);

Abra o monitor serial, você pode ver os dados coletados de temperatura e umidade e enviá-los.

# 0 Umidade: 6,00% Temperatura: 27,00C num: 0

Transmitir: Enviando para rf95_server Enviando … Aguardando o pacote terminar … Aguardando resposta … Sem resposta, há um ouvinte por perto?

Deixe isso de lado, agora precisamos fazer o Lora Gateway.

Etapa 5: MakePython Lora

MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora

Este é o pino correspondente do módulo RFM96W e MakePython ESP32. Para facilitar a conexão com o MakePython ESP32, fiz uma placa de circuito com o módulo RFM96W. Sim, há dois RFM96W nele, que podem enviar e receber dados ao mesmo tempo, mas agora só preciso de um.

Etapa 6: Gateway LoRaWAN

LoRaWAN Gateway
LoRaWAN Gateway

LoRaWAN é uma rede de área ampla de baixo consumo de energia baseada em LoRa, que pode fornecer: baixo consumo de energia, escalabilidade, alta qualidade de serviço e rede sem fio segura de longa distância.

Monte MakePython Lora e ESP32 para fazer um gateway que pode receber dados remotos e carregá-los para a Internet.

Etapa 7: Baixar o código

Baixe todos os arquivos ‘xxx.py’ do WiKi e envie-os para o ESP32.

Abra o arquivo LoRaDuplexCallback.py. Você precisa fazer alguns ajustes para que seu ESP32 possa se conectar à rede e fazer upload de dados para o servidor.

Modifique a API_KEY que você obteve no ThingSpeak (apresentarei como obtê-la mais tarde)

#https://thingspeak.com/channels/1047479

API_KEY = 'UBHIRHVV9THUJVUI'

Modifique SSID e PSW para conectar Wi-Fi

ssid = "Makerfabs"

pswd = "20160704"

Etapa 8: Receber dados

Encontre a função on_receive (lora, payload) no arquivo LoRaDuplexCallback.py, onde você pode dizer ao ESP32 o que fazer após receber os dados. O código a seguir analisa e exibe os dados recebidos de temperatura e umidade.

def on_receive (lora, carga útil):

lora.blink_led () rssi = lora.packetRssi () try: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1 + 1):(length1 + 6)] myNum2 = myStr [(length1 + 20):(length1 + 25)] print ("*** Mensagem recebida *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Enviando para a rede…') node = int (str (payload [5: 6], 'utf-8')) if node == 0: URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 = "+ myNum1 +" & field2 = "+ myNum2 res = urequests.get (URL) print (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+ API_KEY +" & field3 = "+ myNum1 +" & field4 = "+ myNum2 res = urequests.get (URL) print (res.text) exceto Exceção como e: print (e) print (" com RSSI {} n ".format (rssi))

Julgando o número para distinguir os nós e fazendo o upload dos dados para a Internet por meio da URL, podemos monitorar os dados remotos de nós diferentes a qualquer momento. Você pode adicionar mais nós e fazer alterações semelhantes no código.

se nó == 0:

URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 =" + myNum1 + "& field2 =" + myNum2 res = urequests.get (URL) print (res.text)

Etapa 9: use o ThingSpeak IoT

Use ThingSpeak IoT
Use ThingSpeak IoT
Use ThingSpeak IoT
Use ThingSpeak IoT
Use ThingSpeak IoT
Use ThingSpeak IoT

Passos:

  1. Inscreva-se em https://thingspeak.com/. Se você já tiver um, faça login diretamente.
  2. Clique em Novo canal para criar um novo canal ThingSpeak.
  3. Nome de entrada, descrição, campo selecionado 1. Em seguida, salve o canal na parte inferior.
  4. Clique na opção API Keys, copie a API Key, iremos utilizá-la no programa.

Etapa 10: Resultado

Resultado
Resultado
Resultado
Resultado
Resultado
Resultado

Você pode ver os dados do nó 0 e do nó 1 na tela, embora estejam a 2 quilômetros de distância.

Faça login em sua conta ThingSpeak e clique no canal que você criou, você pode ver os dados de temperatura e umidade carregados.

O gráfico field1 e os gráficos field2 são os dados de umidade e temperatura do nó Lora 0, e o gráfico field3 e o gráfico field4 são os dados de umidade e temperatura do nó Lora 1.

Recomendado: