Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85

Componentes e Materiais

nRF24L01+ ×2
ATtiny85 ×1
Arduino UNO ×1
Capacitor Cerâmico 10nF ×1
Resistor de Filme de Carbono 22kΩ ×1
Diodo de Comutação 1N4148 ×1
Fonte de Alimentação 3.3V ×1
Soquete Adaptador nRF24L01+ (Opcional) ×1

Sobre o Projeto

Esta é a continuação do meu projeto anterior "Programando ATtiny85 com Arduino Uno". Com o ATtiny85 mais barato no lugar, busquei formas mais econômicas de transmitir dados de sensores, o que me levou ao nRF24L01+ — um transceptor RF de baixo custo e baixo consumo. Parecia a solução ideal, mas havia um problema: a limitação de pinos do ATtiny85. Não consigo conectar tanto o nRF24L01+ quanto o sensor nele. Buscando soluções, encontrei "controle nRF24L01+ com 3 pinos ATtiny85". Aqui explico como implementei.

Módulos

Há dois módulos: transmissor (ATtiny85 enviando dados) e receptor (Arduino Uno recebendo via nRF24L01+). Utilizo a biblioteca RF24 (tmrh20.github.io/RF24/). Siga as instruções lá para adicioná-la à Arduino IDE. Não entrarei em detalhes sobre a RF24, pois sua documentação é excelente.

Transmissor

O transmissor envia um número incrementado a cada segundo. O ATtiny85 transmite via nRF24L01+ usando apenas 3 pinos. Sigo as instruções de Ralph Doncaster para implementação.

Componentes do Transmissor

Carregue o código abaixo no ATtiny85 (consulte meu projeto anterior se precisar saber como).

Código do Transmissor (sender.ino)

#define CE_PIN 3
#define CSN_PIN 3 // Configuração de 3 pinos: mesmo pino para CE e CSN
#include "RF24.h"

RF24 radio(CE_PIN, CSN_PIN);
byte address[11] = "SimpleNode";
unsigned long payload = 0;

void setup() {
  radio.begin();
  radio.setAutoAck(1);
  radio.setRetries(15,15);
  radio.openWritingPipe(address);
}

void loop(void){
  payload++;
  radio.write(&payload, sizeof(unsigned long));
  delay(1000);
}

Conexões do Transmissor

Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85 Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85 Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85

Ao conectar a fonte, o transmissor inicia o envio da sequência numérica a cada segundo.

Receptor

O receptor recebe os dados do transmissor e exibe no Monitor Serial.

Componentes do Receptor

Código do Receptor (receiver.ino)

#define CE_PIN 7
#define CSN_PIN 8
#include <SPI.h>
#include "RF24.h"

RF24 radio(CE_PIN, CSN_PIN);
byte address[11] = "SimpleNode";
unsigned long payload = 0;

void setup() {
  Serial.begin(115200);
  radio.begin();
  radio.setAutoAck(1);
  radio.setRetries(15,15);
  radio.openReadingPipe(1, address);
  radio.startListening();
}

void loop(void){
  radio.stopListening();
  radio.startListening();
  radio.read(&payload, sizeof(unsigned long));
  if(payload != 0){
    Serial.print("Got Payload ");
    Serial.println(payload);
  }
  delay(1000);
}

Conexões do Receptor

Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85 Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85

Importante: Vcc deve ser sempre 3.3V. Em alguns clones de Arduino Uno, o pino 3.3V pode não fornecer corrente suficiente, fazendo o nRF24L01+ não funcionar. Soluções recomendadas:

  1. Use uma fonte 3.3V separada
  2. Adicione capacitor de 10µF entre Vcc e GND no próprio módulo
  3. Use um Soquete Adaptador nRF24L01+

Testando

Com transmissor e receptor prontos: ligue o transmissor, conecte o Arduino Uno ao PC, abra o Monitor Serial (115200 baud). Deverá ver os payloads recebidos a cada segundo.

Tornando Permanente

Com conhecimentos básicos de solda, montei em placa perfurada (perfboard).

Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85 Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85 Transmissão Eficiente de Sensor Sem Fio com 3 Pinos usando nRF24L01+ e ATtiny85

Este módulo demonstra como usar o nRF24L01+ com apenas 3 pinos do ATtiny85, liberando os demais para leitura de sensores. Feedbacks e sugestões são bem-vindos!

Esquemáticos (Arquivos Fritzing)

Processo de manufatura

  1. Circuito com Chave: Guia Prático para Circuitos Elétricos Básicos
  2. O Rolo de Massa: Das Origens Etruscas à Arte Moderna
  3. Como Ler Temperatura com DS18B20 no Raspberry Pi 2
  4. Medição de Temperatura no Raspberry Pi com Sensores Maxim 1‑Wire e Bridge I2C DS2482
  5. Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
  6. Posture Pal com Walabot – Monitoramento de Distância em Tempo Real para Evitar Dor no Pescoço e Costas
  7. Construa um Reconhecedor de Dígitos no Raspberry Pi com TensorFlow e OpenCV
  8. Primeiros Passos com TJBot: Construa, Configure e Controle por Voz seu Próprio Robô de IA
  9. Construa um Segway Auto-Equilibrado com Raspberry Pi
  10. Estendendo GoPiGo v2 no Windows 10 IoT Core para Raspberry Pi 3