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

Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам

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

nRF24L01+ × 2
ATtiny85 × 1
Arduino UNO (для программирования ATtiny85 и как приёмник) × 1
Керамический конденсатор 10 нФ × 1
Углеродный резистор 22 кОм × 1
Диод 1N4148 × 1
Источник питания 3.3 В × 1
Адаптер-сокет для nRF24L01+ (опционально) × 1

О проекте

Продолжение проекта «Программирование ATtiny85 с помощью Arduino Uno». Ищу дешёвый способ передачи данных с датчиков — нашёл nRF24L01+, недорогой трансивер с низким потреблением. Проблема: у ATtiny85 мало выводов, не хватает на nRF24L01+ и датчик одновременно. Решение — управление nRF24L01+ всего тремя пинами ATtiny85 (идея Ralph Doncaster).

Модули

Два модуля: передатчик (ATtiny85 + nRF24L01+) и приёмник (Arduino Uno + nRF24L01+). Используется библиотека RF24 (добавить в Arduino IDE).

Передатчик

Отправляет увеличивающееся число каждую секунду, используя только 3 пина ATtiny85.

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

Прошейте ATtiny85 кодом sender.ino (как прошивать — см. предыдущий проект).

Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам
Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам
Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам

При подаче питания передатчик начинает отправлять последовательность чисел каждую секунду.

Приёмник

Принимает данные и выводит в Serial Monitor.

Компоненты:

Загрузите код receiver.ino в Uno.

Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам
Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам

Важно: Питание nRF24L01+ строго 3.3 В. На некоторых клонах Arduino 3.3 В не даёт достаточно тока. Решения:

  1. Отдельный стабилизатор 3.3 В
  2. Конденсатор 10 мкФ между VCC и GND на модуле
  3. Использовать адаптер-сокет с встроенным стабилизатором

Для теста: включите передатчик, подключите Uno к ПК, откройте Serial Monitor (115200 бод). Должны появляться принятые числа.

Делаем устройство постоянным

Собрал на монтажной плате (perfboard).

Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам
Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам
Эффективная беспроводная передача данных с nRF24L01+ и ATtiny85 по 3 пинам

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

Код

Передатчик (sender.ino)

#define CE_PIN 3
#define CSN_PIN 3  // 3-пиновая схема: CE и CSN на одном пине
#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);
}

Приёмник (receiver.ino)

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

Схемы (Fritzing)

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

  1. Цепь с переключателем: практическое руководство по базовым электрическим цепям
  2. Валёк для теста: от этрусских истоков к современному мастерству
  3. Как считывать температуру с DS18B20 на Raspberry Pi 2
  4. Измерение температуры на Raspberry Pi с датчиками Maxim 1-Wire и мостом DS2482 I2C
  5. Точный мониторинг температуры в серверной на Raspberry Pi
  6. Posture Pal с Walabot — мониторинг расстояния в реальном времени для предотвращения боли в шее и спине
  7. Распознавание рукописных цифр на Raspberry Pi с TensorFlow и OpenCV
  8. Начало работы с TJBot: сборка, настройка и голосовое управление ИИ-роботом
  9. Сборка самобалансирующегося Segway на Raspberry Pi
  10. Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3