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

Умный беспроводной выключатель света: Arduino-контроллер для удаленного управления

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

Необходимые инструменты и станки

Программное обеспечение и онлайн-сервисы

О проекте

Идея

Автор не любит вставать, когда уже ложится спать. Иногда хочется почитать перед сном, не вставая за выключателем. Также устройство полезно:

Проект

Основа — связь по 433 МГц между двумя Arduino. Если код работает нестабильно, подстройте пороги в Slave_servo.ino:

const unsigned int upperThreshold = 70;
const unsigned int lowerThreshold = 50;

Подключение

Схема простая: кнопка на стороне передатчика, сервопривод на стороне приемника. Подробности на фото и в разделе «Схемы».

Умный беспроводной выключатель света: Arduino-контроллер для удаленного управления

Настенное крепление

Для крепления сервопривода к выключателю нужен 3D-принтер. Модель в OpenSCAD (файл mhacks_lightswitchv4.stl) — можно подправить положение отверстия. Крепится на командо-ленты (command strips) или суперклеем (не рекомендуется).

Итоговый проект

Устройство представлено на онлайн-хакатоне Mhacks. Для постоянной установки можно напечатать корпус для Arduino и закрепить всё на командо-лентах.

Перспективы развития

Код

Slave_Servo.ino (приемник + сервопривод)

#define rfReceivePin A0
#define ledPin 13
#include 
Servo servo;
unsigned int data = 0;
const unsigned int upperThreshold = 70;
const unsigned int lowerThreshold = 50;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  servo.attach(9);
}

void loop() {
  data = analogRead(rfReceivePin);
  if (data < upperThreshold) {
    digitalWrite(ledPin, LOW);
    Serial.println(data);
    servo.write(0);
  }
  if (data > lowerThreshold) {
    digitalWrite(ledPin, HIGH);
    Serial.println(data);
    servo.write(90);
  }
}

Master_Remote.ino (передатчик + кнопка)


#define rfTransmitPin 4
#define buttonPin 2
#define led 13

void setup() {
  pinMode(rfTransmitPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}

int buttonState = 0;
void loop() {
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    digitalWrite(rfTransmitPin, HIGH);
    digitalWrite(led, HIGH);
    Serial.println("transmit");
    delay(10);
  } else {
    digitalWrite(rfTransmitPin, LOW);
    digitalWrite(led, LOW);
    Serial.println("no");
  }
}

3D-модели и схемы

OpenSCAD-файл крепления: mhacks_lightswitch_hpXQkie6X4.scad. Корпус для Arduino на Thingiverse. Схемы в разделе «Schematics».

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

  1. Создание потрясающей системы Ambilight для монитора на Arduino
  2. Беспроводная передача данных по магнитному полю на Arduino с 3D-сенсором Infineon
  3. Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
  4. Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
  5. Собираем свой Tamagotchi на Arduino: цифровой питомец своими руками
  6. USB-BLE MIDI-адаптеры на Arduino: беспроводное подключение инструментов к iOS
  7. Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом
  8. Умный водяной пистолет с датчиком движения на Arduino Nano
  9. Сборка надежного таймера обратного отсчета на Arduino с 7-сегментным дисплеем SparkFun
  10. Arduino Sunflower: электронный подсолнух, следящий за солнцем