工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

SomfyDuino:Arduino Nanoで作るUSB-Somfy IOアダプター

必要な部品と材料

部品数量備考
Arduino Nano R31USBコネクタ付きなら他のボードでも可。SoftSerialも可
フラットケーブル(7芯)1シュリンクチューブで整理
Somfy IOリモコン(GX037等)11ch/5chどちらでも可

必要な工具

プロジェクト概要

着想

リビングのロールシャッターを自作ホームオートメーションシステムに組み込みたく、メーカー純正のクラウドハードウェアを買わずに済むよう、Arduino NanoでUSB-Somfy IOアダプターを自作しました。市販のIOリモコンを分解して接続するだけで動作しました。

必要なもの

配線は添付図参照。リモコンはArduinoから給電(送信時約20mA)するため、電池は外してください。

コードについて

Raspberry Pi等に接続する場合、Serial.printデバッグ出力を削除すると通信がシンプルになります。コマンド送信形式はコード内にコメントで記載しています。

※1chリモコンで検証。5chリモコンも基本レイアウトは同じですが、SELECTボタンでチャンネル切替はできませんでした(効果なし、悪影響もなし)。

ソースコード

// SomfyDuino by Bjoern Foldenauer 05/2017
int progPin = 8, upPin = 12, downPin = 10, myPin = 11, selectPin = 9, ledPin = 13;
bool 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("Commands: u=UP, d=DOWN, m=MY, p=PROG, s=SELECT");
  Serial.println("1-9: hold time x100ms, r: repeat count++, e: EXECUTE");
  Serial.println("Example: u5e (regular UP), ud9993e (3sec UP+DOWN)");
  pinMode(progPin, OUTPUT); pinMode(upPin, OUTPUT); pinMode(downPin, OUTPUT);
  pinMode(myPin, OUTPUT); pinMode(selectPin, OUTPUT); pinMode(ledPin, OUTPUT);
  digitalWrite(progPin, HIGH); digitalWrite(upPin, HIGH); digitalWrite(downPin, HIGH);
  digitalWrite(myPin, HIGH); digitalWrite(selectPin, HIGH); digitalWrite(ledPin, LOW);
}

void loop() {
  while (Serial.available() == 0) delay(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' && incomingChar <= '9') holdTime += (incomingChar - '0') * 100;
    if (incomingChar == 'r') repeatSend++;
    if (incomingChar == 'e') somSend();
  }
}

void somSend() {
  Serial.print("Pressing: ");
  for (int i = 0; i <= repeatSend; i++) {
    if (upPress) { digitalWrite(upPin, LOW); Serial.print("up "); }
    if (downPress) { digitalWrite(downPin, LOW); Serial.print("down "); }
    if (myPress) { digitalWrite(myPin, LOW); Serial.print("my "); }
    if (progPress) { digitalWrite(progPin, LOW); Serial.print("prog "); }
    if (selectPress) { digitalWrite(selectPin, LOW); Serial.print("select "); }
    digitalWrite(ledPin, HIGH);
    Serial.print("for "); Serial.print(holdTime); Serial.println(" ms");
    delay(holdTime);
    digitalWrite(progPin, HIGH); digitalWrite(upPin, HIGH); digitalWrite(downPin, HIGH);
    digitalWrite(myPin, HIGH); digitalWrite(selectPin, HIGH); digitalWrite(ledPin, LOW);
    delay(holdTime);
  }
  upPress = downPress = myPress = progPress = selectPress = false;
  holdTime = 0; repeatSend = 0;
  Serial.println("done.");
}

回路図・配線写真

SomfyDuino:Arduino Nanoで作るUSB-Somfy IOアダプター SomfyDuino:Arduino Nanoで作るUSB-Somfy IOアダプター SomfyDuino:Arduino Nanoで作るUSB-Somfy IOアダプター

製造プロセス

  1. Raspberry Pi 3とPubNubでリモート気象監視
  2. LIRCでプロフェッショナルなRaspberry Piユニバーサルリモコンを構築
  3. LIRCなしでRaspberry PiにIRリモコンを接続 - Python UARTアプローチ
  4. リモート心拍数監視システム:AWS IoTアラート付き
  5. Raspberry PiとHologramでSMS制御スマートAC電源スイッチを構築
  6. ROObockey:精密照準アシスト付きリモコンストリートホッケーロボット
  7. クラウド監視:リアルタイム資産管理のためのリモート制御システム
  8. モダン産業におけるリモート生産制御の5つの主要メリット
  9. PLCnextデバイスでgrpcurlを用いた安全なリモートgRPCアクセス
  10. 製造効率を高めるリモート監視のトップ3メリット
  11. 先進IoTアップグレードでリモート監視システムを強化