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

SomfyDuino IO

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

Arduino Nano R3
× 1
Плоский кабель
× 1
Somfy IO Remote
× 1

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

Паяльник (универсальный)

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

Идея

Привет,

Я просто попытался подключить USB-адаптер к Somfy IO с Arduino Nano, чтобы установить свои рольставни в гостиной. Я хотел подключиться к своей системе домашней автоматизации, сделанной своими руками, без необходимости получать какое-либо облачное оборудование от исходного поставщика - и привет! ЭТО РАБОТАЛО - с помощью простого пульта ввода-вывода.

Вам нужно:

  • Пульт Somfy IO Remote - я использовал GX037.
  • Подойдет практически любой Arduino с USB-разъемом, но программный последовательный порт тоже работает.
  • Плоский кабель с семью жилами и термоусадочный шланг для аккуратной упаковки.

Электромонтаж согласно приложениям. Пульт дистанционного управления питается от Arduino - он потребляет около 20 мА при отправке, так что все должно быть в порядке. Поэтому не забудьте вынуть аккумулятор.

По поводу кода:

Если вы хотите подключить все приспособление, например, к RPi, вы можете рассмотреть возможность удаления всех элементов Serial.print - гораздо проще общаться с Arduino, если он просто слушает и отключается.

Как отправлять команды объясняется в коде.

Удачи - комментарии приветствуются!

Ура,

Бьорн

P.S. - Я использовал одноканальный пульт. Он в основном использует ту же схему, что и 5-канальный пульт, но некоторые детали (например, дополнительные светодиоды) отсутствуют. Интересно, будет ли он перескакивать на разные каналы при срабатывании SELECT. Я еще не пробовал, потому что просто рад, что у меня есть один канал, но я буду держать это в курсе

P.P.S. только что проверил - кнопка выбора, к сожалению, теперь действует - каналы не меняет, но и пульт не портит.

Код

  • Серийный номер для Somfy
Последовательный к Somfy Arduino
 // SomfyDuino // Бьорн Фолденауэр // 05 / 2017int progPin =8; int upPin =12; int downPin =10; int myPin =11; int selectPin =9; int ledPin =13; логическое upPress =false; логическое downPress =false; логическое myPress =false; логическое progPress =false; логическое selectPress =false; unsigned long holdTime =0; int repeatSend =0; char incomingChar; void setup () {Serial.begin (9600); Serial.println («SomfyDuino 0,71»); Serial.println («Бьорн Фольденауэр»); Serial.println ("-----"); Serial.println ("принимает одиночные последовательные символы, например:"); Serial.println («u - приготовьтесь нажать ВВЕРХ»); Serial.println («d - приготовьтесь нажать ВНИЗ»); Serial.println («m - подготовиться к нажатию My»); Serial.println («p - подготовиться к нажатию PROG»); Serial.println ("s - подготовиться к нажатию SELECT"); Serial.println («r - увеличить количество отправлений на единицу»); Serial.println («любая цифра X - увеличить время удержания на X * 100 мс»); Serial.println ("e - Execute! Выполняет определенное нажатие (несколько кнопок) и удерживание"); /erial.println (""); Serial.println ("Пример:обычный UP:u5e"); Serial.println ("3 секунды ВВЕРХ / ВНИЗ:ud9993e"); Serial.println ("5 секунд ПРОГ:p999995e"); Serial.println (""); pinMode (progPin, ВЫХОД); pinMode (upPin, ВЫХОД); pinMode (downPin, ВЫХОД); pinMode (myPin, ВЫХОД); pinMode (ledPin, ВЫХОД); pinMode (selectPin, ВЫХОД); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, HIGH); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW);} void loop () {while (Serial.available () ==0) {задержка (50); } // ждем, пока не поступит последовательная команда if (Serial.available ()> 0) {incomingChar =Serial.read (); Serial.println (incomingChar); if (incomingChar =='u') {upPress =true;} if (incomingChar =='d') {downPress =true;} if (incomingChar =='m') {myPress =true;} if (incomingChar =='p') {progPress =true;} if (incomingChar =='s') {selectPress =true;} if (incomingChar =='1') {holdTime + =100;} if (incomingChar =='2') {holdTime + =200;} if (incomingChar =='3') {holdTime + =300;} if (incomingChar =='4') {holdTime + =400;} if (incomingChar =='5') {holdTime + =500;} if (incomingChar =='6') {holdTime + =600;} if (incomingChar =='7') {holdTime + =700;} if (incomingChar =='8') {holdTime + =800;} if (incomingChar =='9') {holdTime + =900;} if (incomingChar =='r') {repeatSend ++;} if (incomingChar =='e') {somSend ();}}} void somSend () {Serial.print ("Нажатие:"); для (int я =0; я <=repeatSend; я ++) {если (upPress) {digitalWrite (upPin, LOW); Serial.print ("вверх");} if (downPress) {digitalWrite (downPin, LOW); Serial.print ("вниз");} если (myPress) {digitalWrite (myPin, LOW); Serial.print ("мой");} если (progPress) {digitalWrite (progPin, LOW); Serial.print ("prog");} if (selectPress) {digitalWrite (selectPin, LOW); Serial.print ("выбрать");} digitalWrite (ledPin, HIGH); Serial.print («для»); Serial.print (время удержания); Serial.println ("мс"); задержка (holdTime); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, HIGH); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW); задержка (holdTime); } upPress =false; downPress =false; myPress =false; progPress =false; selectPress =false; holdTime =0; repeatSend =0; Serial.println ("готово.");} 

Схема

Нет документа.


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

  1. Удаленный мониторинг погоды с помощью Raspberry Pi
  2. Универсальный пульт дистанционного управления Raspberry Pi
  3. Использование ИК-пульта дистанционного управления с Raspberry Pi без LIRC
  4. Удаленный монитор сердечного ритма
  5. Raspberry Pi / Hologram SMS Controlled AC Power Switch
  6. ROObockey:робот для уличного хоккея с дистанционным управлением и прицеливанием
  7. Облачный мониторинг, система удаленного управления
  8. 5 преимуществ дистанционного управления производством
  9. Удаленный gRPC с помощью grpcurl
  10. 3 основных преимущества удаленного мониторинга