Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

nRF24L01 + с 3 контактами ATtiny85

Компоненты и расходные материалы

nRF24L01 +
× 2
ATtiny85
× 1
Arduino UNO
× 1
Керамический конденсатор - 10 нФ
× 1
Углеродный пленочный резистор - 22 кОм
× 1
переключающий диод - 1n4148
× 1
Источник питания - 3v3
× 1
nRF24L01 + адаптер гнезда
Необязательно
× 1

Об этом проекте

Это было бы продолжением моего предыдущего проекта Programming ATtiny85 с Arduino Uno. Теперь с более дешевым ATtiny85 я искал более дешевые способы передачи данных с датчиков. Это привело меня к nRF24L01 + дешевому, маломощному радиопередатчику. Мне это показалось лучшим решением. Но была одна проблема - ограничение количества выводов в ATtiny85. Не могу подключить одновременно nRF24L01 + и датчик в нем. Так что я искал решения и наткнулся на «регулятор nrf24l01 + с 3 контактами ATtiny85». Здесь я расскажу, как я это реализовал.


Модули

Здесь будет два модуля - передатчик и приемник. Передатчиком будет ATtiny85, отправляющий некоторые данные, а приемником будет Arduino Uno, получающий данные через nRF25L01 +. Я использую библиотеку RF24 (http://tmrh20.github.io/RF24/). Следуйте приведенным там инструкциям и добавьте его в Arduino IDE, прежде чем начать с этого. Я не буду подробно рассказывать о RF24, так как по нему есть очень хорошая документация.


Передатчик

Передатчик каждую секунду передает увеличивающееся число. ATtiny85 отправит данные через nRF24L01 +, используя только 3 контакта. Я следую инструкциям Ральфа Донкастера по его реализации.

Необходимые компоненты:

  • ATtiny85
  • nRF24L01 +
  • Керамический конденсатор - 10 нФ
  • Углеродный пленочный резистор - 22 кОм
  • Переключающий диод - 1n4148

Загрузите приведенный ниже код в ATtiny85 (обратитесь к моему предыдущему проекту «Программирование ATtiny85 с Arduino Uno, если хотите знать, как это сделать»)

sender.ino

Соедините компоненты, как показано ниже

Когда источник питания подключен, передатчик будет отправлять последовательность чисел каждую 1 секунду.

Получатель

Приемник принимает данные, отправленные передатчиком, и полученные данные можно увидеть в Serial Monitor.

Необходимые компоненты:

  • Arduino Uno
  • nRF24L01 +
  • nRF24L01 + адаптер розетки (необязательно)

Загрузите приведенный ниже код в Uno

Receiver.ino

Соедините компоненты, как показано ниже


Если это не ясно, обратитесь к файлу fritzing, приложенному к этому проекту. Обратите внимание, что Vcc всегда должен быть 3 на 3. В некоторых клонах Arduino Uno питание 3v3 может не иметь достаточного тока, что приводит к тому, что nRF24L01 + не работает. Для решения этой проблемы рекомендуется любой из следующих способов.

  1. Используйте отдельный блок питания 3v3.
  2. Добавьте конденсатор 10 мкФ между Vcc и Gnd в самом модуле.
  3. Используйте адаптер розетки nRF24L01 +


Теперь, когда передатчик и приемник готовы, пришло время проверить. Убедитесь, что питание передатчика включено. Подключите Arduino Uno к ПК и откройте последовательный монитор в arduino ide. Он должен работать, как показано ниже

Сделать это навсегда

Имея небольшие познания в пайке, я сделал его постоянным, используя перфорированную плату.

Это более простой модуль, демонстрирующий, как nRF24L01 + и как мы можем использовать только 3 контакта ATtiny85 для его подключения, чтобы остальные контакты были доступны для чтения данных датчика. Отзывы / предложения приветствуются.

Код

  • Передатчик
  • Получатель
Передатчик C / C ++
 #define CE_PIN 3 # define CSN_PIN 3 // Поскольку мы используем конфигурацию с 3 контактами, мы будем использовать один и тот же контакт для CE и CSN # включая RF24 Radio (CE_PIN, CSN_PIN) "RF24.h"; адрес байта [11] ="SimpleNode"; беззнаковая длинная полезная нагрузка =0; void setup () {radio.begin (); // Запускаем радио radio.setAutoAck (1); // Убедитесь, что autoACK включен radio.setRetries (15,15); // Максимальная задержка между попытками и количеством попыток radio.openWritingPipe (address); // Запись по адресу устройства 'SimpleNode'} void loop (void) {payload ++; radio.write (&payload, sizeof (беззнаковое длинное)); // Отправляем данные в 'Receiver' каждую секунду с задержкой (1000);} 
Получатель C / C ++
 #define CE_PIN 7 # define CSN_PIN 8 # include  #include "RF24.h" RF24 radio (CE_PIN, CSN_PIN); байтовый адрес [11] ="SimpleNode"; unsigned long payload =0; void setup () {Serial.begin (115200); radio.begin (); // Запускаем радио radio.setAutoAck (1); // Убедитесь, что autoACK включен radio.setRetries (15,15); // Максимальная задержка между попытками и количеством попыток radio.openReadingPipe (1, address); // Запись по адресу устройства 'SimpleNode' radio.startListening ();} void loop (void) {radio.stopListening (); radio.startListening (); radio.read (&payload, sizeof (длинное беззнаковое)); if (payload! =0) {Serial.print ("Получены данные"); Serial.println (полезная нагрузка); } delay (1000);} 

Схема

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

Производственный процесс

  1. Схема с переключателем
  2. Скалка
  3. Считать температуру с помощью DS18B20 | Raspberry Pi 2
  4. Измерение температуры с помощью RASPBERRY PI
  5. Мониторинг температуры с помощью Raspberry Pi
  6. Приятель осанки с Walabot
  7. Распознавание цифр AI с помощью PiCamera
  8. Начало работы с TJBot
  9. Создание сегвея с Raspberry Pi
  10. GoPiGo v2 с Windows IoT