Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85

Komponenten und Zubehör

nRF24L01+ Modul × 2
ATtiny85 × 1
Arduino UNO (zum Programmieren des ATtiny85) × 1
Keramikkondensator 10 nF × 1
Kohleschichtwiderstand 22 kΩ × 1
Schaltdiode 1N4148 × 1
3,3 V Spannungsquelle × 1
nRF24L01+ Socket Adapter (optional) × 1

Projektbeschreibung

Dieses Projekt baut auf dem vorherigen „Programming ATtiny85 with Arduino Uno“ auf. Ziel: Sensordaten mit minimaler Hardware per Funk übertragen. Der nRF24L01+ ist ein günstiger, stromsparender 2,4-GHz-Transceiver. Das Problem: Der ATtiny85 hat nur 5 I/O-Pins – zu wenig für nRF24L01+ (normal 5 Pins: SPI + CE + CSN) und Sensor gleichzeitig. Lösung: 3-Pin-Betrieb des nRF24L01+ (CE und CSN auf einem Pin, MISO wird nicht benötigt).

Module

Zwei Module: Sender (ATtiny85 + nRF24L01+) sendet alle Sekunde einen Zählerwert; Empfänger (Arduino UNO + nRF24L01+) gibt empfangene Daten am Serial Monitor aus. Verwendet wird die RF24 Library (in Arduino IDE installieren).

Sender (Transmitter)

Bauteile: ATtiny85, nRF24L01+, 10 nF Kerko, 22 kΩ Widerstand, 1N4148 Diode, 3,3 V Quelle.

Code auf ATtiny85 flashen (siehe vorheriges Projekt für Programmier-Anleitung).

Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85
Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85
Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85

Bei Spannungsversorgung sendet der Sender jede Sekunde einen inkrementellen Zählerwert.

Empfänger (Receiver)

Bauteile: Arduino UNO, nRF24L01+, Socket-Adapter (optional).

Code auf UNO flashen.

Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85
Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85

Wichtig: nRF24L01+ muss mit 3,3 V versorgt werden. Der 3,3-V-Regler mancher Arduino-Klone liefert zu wenig Strom. Abhilfe:

  1. Separate 3,3-V-Quelle nutzen.
  2. 10 µF Kondensator zwischen VCC und GND am Modul.
  3. Socket-Adapter mit eigener Reglerstufe verwenden.

Test: Sender mit Strom versorgen, UNO per USB an PC, Serial Monitor (115200 Baud) öffnen → empfangene Zählerwerte sollten erscheinen.

Dauerhafte Ausführung (Perfboard)

Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85
Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85
Effiziente 3-Pin-Funkübertragung mit nRF24L01+ und ATtiny85

Das Modul demonstriert, wie nRF24L01+ mit nur 3 Pins am ATtiny85 betrieben wird, sodass die restlichen Pins für Sensoren frei bleiben. Feedback willkommen.

Code

Sender (Transmitter)

#define CE_PIN 3
#define CSN_PIN 3  // 3-Pin-Konfiguration: CE und CSN auf Pin 3
#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);
}

Empfänger (Receiver)

#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);
}

Schaltpläne (Fritzing)

Herstellungsprozess

  1. Schaltung mit Schalter: Praktischer Leitfaden zu grundlegenden elektrischen Schaltungen
  2. Das Nudelholz: Von etruskischen Ursprüngen bis zur modernen Handwerkskunst
  3. Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
  4. Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
  5. Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
  6. Posture Pal mit Walabot – Echtzeit-Entfernungsüberwachung gegen Nacken- und Rückenschmerzen
  7. Raspberry Pi Ziffernerkennung mit TensorFlow & OpenCV selbst bauen
  8. TJBot starten: Bauen, konfigurieren und per Sprache steuern
  9. Selbstbalancierenden Segway mit Raspberry Pi bauen
  10. GoPiGo v2 auf Windows 10 IoT Core für Raspberry Pi 3 erweitern