این ادامه پروژه قبلی من برنامه نویسی ATtiny85 با آردوینو Uno خواهد بود . اکنون با ATtiny85 ارزانتر، به دنبال راههای ارزانتری برای انتقال دادههای حسگر بودم. که من را به nRF24L01+ یک فرستنده و گیرنده RF ارزان و کم توان رساند. این راه حل بهتری برای من به نظر می رسید. اما یک مشکل وجود داشت، محدودیت در تعداد پین ها در ATtiny85. من نمی توانم هم nRF24L01+ و هم سنسور موجود در آن را وصل کنم. بنابراین من به دنبال راه حل ها بودم و با " کنترل nrf24l01+ با 3 پین ATtiny85 " مواجه شدم. در اینجا من در مورد چگونگی اجرای آن صحبت می کنم.
ماژول ها
در اینجا دو ماژول فرستنده و گیرنده وجود خواهد داشت. فرستنده یک ATtiny85 خواهد بود که مقداری داده را ارسال می کند و گیرنده Arduino Uno خواهد بود که داده ها را از طریق +nRF25L01 دریافت می کند. من از کتابخانه RF24 (http://tmrh20.github.io/RF24/) استفاده می کنم . دستورالعمل های داده شده در آنجا را دنبال کنید و قبل از شروع کار آن را به Arduino IDE اضافه کنید. من در مورد RF24 توضیح زیادی نخواهم داد زیرا اسناد بسیار خوبی در مورد آن وجود دارد.
فرستنده
فرستنده هر ثانیه یک عدد افزایشی را ارسال می کند. ATtiny85 داده ها را از طریق nRF24L01+ تنها با استفاده از 3 پین ارسال می کند. من دستورالعمل های داده شده توسط رالف دانکاستر را در اجرای آن دنبال می کنم.
اجزای مورد نیاز خواهد بود
- ATtiny85
- nRF24L01+
- خازن سرامیکی - 10nF
- مقاومت فیلم کربن - 22 کیلو اهم
- دیود سوئیچینگ - 1n4148
کد زیر را در ATtiny85 آپلود کنید ( اگر می خواهید بدانید چگونه به پروژه قبلی من برنامه نویسی ATtiny85 با آردوینو Uno مراجعه کنید)
اگر این واضح نیست به فایل فریتز پیوست شده با این پروژه مراجعه کنید. اگرچه بقیه پینهای nRF24L01+ 5 ولت تحمل دارند، همیشه باید برق 3v3 را به Vcc بدهید وگرنه به آن آسیب میرسانید.
هنگامی که منبع تغذیه متصل است، فرستنده شروع به ارسال دنباله شماره در هر 1 ثانیه می کند.
گیرنده
گیرنده داده های ارسال شده توسط فرستنده را دریافت می کند و داده های دریافتی را می توان در مانیتور سریال مشاهده کرد.
اجزای مورد نیاز خواهد بود
- آردوینو اونو
- nRF24L01+
- آداپتور سوکت nRF24L01+ (اختیاری)
کد زیر را در Uno آپلود کنید
قطعات را مطابق شکل زیر وصل کنید
اگر این واضح نیست به فایل فریتز پیوست شده با این پروژه مراجعه کنید. لطفا توجه داشته باشید که Vcc باید همیشه 3v3 باشد. در برخی از کلونهای آردوینو Uno، توان 3v3 ممکن است جریان کافی نداشته باشد که باعث میشود nRF24L01+ کار نکند. هر یک از روش های زیر برای حل این مشکل توصیه می شود
برای جزئیات بیشتر: nRF24L01+ با 3 پین ATtiny85