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

nRF24L01+ mit ATtiny85 3 Pins

Komponenten und Verbrauchsmaterialien

nRF24L01+
× 2
ATtiny85
× 1
Arduino UNO
× 1
Keramikkondensator - 10nF
× 1
Kohlenstoffschichtwiderstand - 22kΩ
× 1
Schaltdiode - 1n4148
× 1
Stromquelle - 3v3
× 1
nRF24L01+ Sockeladapter
Optional
× 1

Über dieses Projekt

Dies wäre die Fortsetzung meines vorherigen Projekts Programmierung von ATtiny85 mit Arduino Uno. Jetzt mit dem billigeren ATtiny85 suchte ich nach billigeren Möglichkeiten, die Sensordaten zu übertragen. Was mich zu nRF24L01+ brachte, einem billigen HF-Transceiver mit geringer Leistung. Das schien mir die bessere Lösung zu sein. Aber es gab ein Problem, die Beschränkung der Anzahl der Pins in ATtiny85. Ich kann nicht sowohl nRF24L01+ als auch den darin enthaltenen Sensor verbinden. Also habe ich nach Lösungen gesucht und bin auf "nrf24l01+ control with 3 ATtiny85 pins" gestoßen. Hier bespreche ich, wie ich es implementiert habe.


Module

Es werden hier zwei Module Sender und Empfänger sein. Der Sender wäre ein ATtiny85, der einige Daten sendet, und der Empfänger wäre Arduino Uno, der die Daten über nRF25L01 + empfängt. Ich nutze die RF24-Bibliothek (http://tmrh20.github.io/RF24/). Folgen Sie den dort gegebenen Anweisungen und fügen Sie es zur Arduino IDE hinzu, bevor Sie damit beginnen. Ich werde nicht viel über RF24 erklären, da es eine sehr gute Dokumentation dazu gibt.


Sender

Der Sender sendet jede Sekunde eine aufsteigende Zahl. Der ATtiny85 sendet die Daten über nRF24L01+ mit nur 3 Pins. Ich befolge die Anweisungen von Ralph Doncaster bei der Implementierung.

Die erforderlichen Komponenten wären

  • ATtiny85
  • nRF24L01+
  • Keramischer Kondensator - 10nF
  • Kohlenstoffschichtwiderstand - 22kΩ
  • Schaltdiode - 1n4148

Laden Sie den folgenden Code in ATtiny85 hoch (siehe mein vorheriges Projekt "Programmieren von ATtiny85 mit Arduino Uno", wenn Sie wissen möchten, wie)

sender.ino

Schließen Sie die Komponenten wie unten gezeigt an

Wenn die Stromquelle angeschlossen ist, beginnt der Sender alle 1 Sekunde mit dem Senden einer Zahlenfolge.

Empfänger

Der Empfänger empfängt die vom Sender gesendeten Daten und die empfangenen Daten können im Serial Monitor angezeigt werden.

Die erforderlichen Komponenten wären

  • Arduino Uno
  • nRF24L01+
  • nRF24L01+ Sockeladapter (optional)

Laden Sie den folgenden Code zu Uno hoch

empfänger.ino

Schließen Sie die Komponenten wie unten gezeigt an


Wenn dies nicht klar ist, beziehen Sie sich auf die Fritzing-Datei, die diesem Projekt beigefügt ist. Bitte beachten Sie, dass Vcc immer 3v3 sein sollte. Bei einigen Arduino Uno-Klonen hat die 3v3-Leistung möglicherweise nicht genug Strom, was dazu führt, dass nRF24L01+ nicht funktioniert. Eine der folgenden Methoden wird empfohlen, um dies zu beheben

  1. Verwenden Sie ein separates 3v3-Netzteil
  2. Fügen Sie im Modul selbst einen 10uF-Kondensator zwischen Vcc und Gnd hinzu.
  3. Verwenden Sie einen nRF24L01+-Sockeladapter


Wenn Sender und Empfänger bereit sind, ist es Zeit zum Testen. Stellen Sie sicher, dass die Stromversorgung des Senders eingeschaltet ist. Verbinden Sie das Arduino Uno mit dem PC und öffnen Sie den seriellen Monitor in Arduino ide. Es sollte wie folgt funktionieren

Dauerhaft machen

Mit meinen geringen Kenntnissen im Löten habe ich es mit Perfboard dauerhaft gemacht.

Dies ist ein einfacheres Modul, um zu demonstrieren, wie der nRF24L01+ und wie wir nur 3 Pins von ATtiny85 verwenden können, um ihn anzuschließen, damit die restlichen Pins zum Lesen von Sensordaten verfügbar sind. Rückmeldungen/Vorschläge sind willkommen.

Code

  • Sender
  • Empfänger
SenderC/C++
#define CE_PIN 3#define CSN_PIN 3 //Da wir eine 3-Pin-Konfiguration verwenden, verwenden wir denselben Pin für CE und CSN#include "RF24.h"RF24-Radio (CE_PIN, CSN_PIN); Byte-Adresse[11] ="SimpleNode";unsigned long payload =0;void setup() { radio.begin(); // Radio starten radio.setAutoAck(1); // Stellen Sie sicher, dass autoACK aktiviert ist radio.setRetries(15,15); // Maximale Verzögerung zwischen Wiederholungen und Anzahl der Wiederholungen radio.openWritingPipe(address); // Schreibe in die Geräteadresse 'SimpleNode'}void loop(void){ payload++; radio.write( &payload, sizeof(unsigned long) ); //Sende Daten an 'Empfänger' jede Sekunde Verzögerung (1000);}
EmpfängerC/C++
#define CE_PIN 7#define CSN_PIN 8#include #include "RF24.h"RF24-Funk(CE_PIN, CSN_PIN);Byte-Adresse[11] ="SimpleNode";unsigned long payload =0;void setup () { Serial.begin (115200); radio.begin(); // Radio starten radio.setAutoAck(1); // Stellen Sie sicher, dass autoACK aktiviert ist radio.setRetries(15,15); // Maximale Verzögerung zwischen Wiederholungen und Anzahl der Wiederholungen radio.openReadingPipe (1, Adresse); // Auf Geräteadresse 'SimpleNode' schreiben radio.startListening();}void loop(void){ radio.stopListening(); radio.startListening(); radio.read( &payload, sizeof(unsigned long) ); If (Nutzlast! =0) {Serial.print ( "Got Payload"); Serial.println (Nutzlast); } Verzögerung(1000);}

Schaltpläne

nRF24L01%2B(With%20Socket)%20Attiny85.fzz nRF24L01%2B%20Arduino%20Uno.fzz

Herstellungsprozess

  1. Schaltung mit Schalter
  2. Nudelholz
  3. Temperatur lesen mit DS18B20 | Raspberry Pi 2
  4. Temperaturmessung mit RASPBERRY PI
  5. Überwachen der Temperatur mit Raspberry Pi
  6. Posture Pal with Walabot
  7. KI-Ziffernerkennung mit PiCamera
  8. Erste Schritte mit TJBot
  9. Einen Segway mit Raspberry Pi bauen
  10. GoPiGo v2 mit Windows IoT