Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85

Komponen dan Perlengkapan

Tentang Proyek Ini

Ini akan menjadi lanjutan dari proyek saya sebelumnya Memprogram ATtiny85 dengan Arduino Uno. Sekarang dengan ATtiny85 yang lebih murah, saya mencari cara yang lebih murah untuk mentransmisikan data sensor. Itu membawa saya ke nRF24L01+ transceiver RF yang murah dan hemat daya. Ini tampaknya menjadi solusi yang lebih baik bagi saya. Namun ada satu masalah, keterbatasan jumlah pin pada ATtiny85. Saya tidak dapat menghubungkan baik nRF24L01+ maupun sensor padanya. Jadi saya mencari solusi dan menemukan "nrf24l01+ control with 3 ATtiny85 pins". Di sini saya membahas bagaimana saya mengimplementasikannya.

Modul

Akan ada dua modul di sini: pengirim dan penerima. Pengirim akan menjadi ATtiny85 yang mengirim beberapa data dan penerima akan menjadi Arduino Uno yang menerima data melalui nRF24L01+. Saya menggunakan perpustakaan RF24 (https://tmrh20.github.io/RF24/). Ikuti petunjuk yang diberikan di sana dan tambahkan ke Arduino IDE sebelum memulai dengan ini. Saya tidak akan menjelaskan banyak tentang RF24 karena ada dokumentasi yang sangat baik tentang itu.

Pengirim

Pengirim mengirimkan nomor yang bertambah setiap detik. ATtiny85 akan mengirim data melalui nRF24L01+ menggunakan hanya 3 pin. Saya mengikuti petunjuk yang diberikan oleh Ralph Doncaster untuk mengimplementasikannya.

Komponen yang diperlukan adalah

Unggah kode di bawah ke ATtiny85 (lihat proyek saya sebelumnya Memprogram ATtiny85 dengan Arduino Uno jika Anda ingin tahu caranya)

sender.ino

Hubungkan komponen seperti yang ditunjukkan di bawah ini

Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85
Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85
Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85

Saat sumber daya terhubung, pengirim akan mulai mengirim urutan angka setiap 1 detik.

Penerima

Penerima menerima data yang dikirim oleh pengirim dan data yang diterima dapat dilihat di Serial Monitor.

Komponen yang diperlukan adalah

Unggah kode di bawah ke Uno

receiver.ino

Hubungkan komponen seperti yang ditunjukkan di bawah ini

Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85
Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85

Jika ini tidak jelas, lihat file fritzing yang dilampirkan dengan proyek ini. Perhatikan bahwa Vcc harus selalu 3v3. Pada beberapa klon Arduino Uno, daya 3v3 mungkin tidak memiliki arus yang cukup yang mengakibatkan nRF24L01+ tidak bekerja. Salah satu metode di bawah ini disarankan untuk mengatasi ini

  1. Gunakan sumber daya 3v3 terpisah
  2. Tambahkan kapasitor 10uF antara Vcc dan Gnd pada modul itu sendiri.
  3. Gunakan nRF24L01+ Socket Adapter

Dengan pengirim dan penerima siap, saatnya untuk menguji. Pastikan suplai daya ke pengirim ON. Hubungkan Arduino Uno ke PC dan buka serial monitor di arduino ide. Ini seharusnya bekerja seperti di bawah ini

Membuatnya Permanen

Dengan pengetahuan sedikit saya dalam soldering, saya membuatnya permanen menggunakan perfboard.

Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85
Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85
Transmisi Sensor Nirkabel 3-Pin Efisien dengan nRF24L01+ dan ATtiny85

Ini adalah modul yang lebih sederhana untuk menunjukkan bagaimana nRF24L01+ dan bagaimana kita dapat menggunakan hanya 3 pin ATtiny85 untuk menghubungkannya sehingga pin yang tersisa tersedia untuk membaca data sensor. Masukan/Saran dipersilakan.

Kode

PengirimC/C++
#define CE_PIN 3 #define CSN_PIN 3 //Since we are using 3 pin configuration we will use same pin for both CE and CSN #include "RF24.h" RF24 radio(CE_PIN, CSN_PIN); byte address[11] = "SimpleNode"; unsigned long payload = 0; void setup() { radio.begin(); // Start up the radio radio.setAutoAck(1); // Ensure autoACK is enabled radio.setRetries(15,15); // Max delay between retries & number of retries radio.openWritingPipe(address); // Write to device address 'SimpleNode' } void loop(void){ payload++; radio.write( &payload, sizeof(unsigned long) ); //Send data to 'Receiver' ever second delay(1000); } 
PenerimaC/C++
#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(); // Start up the radio radio.setAutoAck(1); // Ensure autoACK is enabled radio.setRetries(15,15); // Max delay between retries & number of retries radio.openReadingPipe(1, address); // Write to device address 'SimpleNode' 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); } 

Skema

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

Proses manufaktur

  1. Rangkaian dengan Saklar: Panduan Praktis tentang Rangkaian Listrik Dasar
  2. Gilas Adonan: Dari Asal Usul Etruria hingga Kerajinan Modern
  3. Cara Membaca Suhu dengan DS18B20 pada Raspberry Pi 2
  4. Pengukuran Suhu Raspberry Pi dengan Sensor 1-Wire Maxim dan Jembatan I2C DS2482
  5. Pemantauan Suhu Akurat di Lemari Server dengan Raspberry Pi
  6. Posture Pal dengan Walabot – Pemantauan Jarak Waktu Nyata untuk Mencegah Nyeri Leher & Punggung
  7. Membangun Pengenali Angka Tangan Raspberry Pi dengan TensorFlow & OpenCV
  8. Memulai dengan TJBot: Bangun, Konfigurasikan, dan Kendalikan dengan Suara Robot AI Anda
  9. Membuat Segway Swanderir Mandiri dengan Raspberry Pi
  10. Memperluas GoPiGo v2 pada Windows 10 IoT Core untuk Raspberry Pi 3