ワイヤレスライトスイッチマニピュレーター
コンポーネントと消耗品
> |
| × | 2 | |||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
アイデア
だから私は眠りにつくと決めたら起き上がるのが好きではありません。時々私は眠りにつく前に読書をしたいだけで、ライトをつける必要があります。そこで、このライトスイッチマニピュレーターを作ることにしました。
これには他にもいくつかの影響があることに気づきました:
- 短すぎてスイッチに到達できない子供
- 移動が制限されている人
プロジェクト
このプロジェクトは、主に433 MHzRFボードが相互に通信することに基づいています。時にはこれはかなりの偉業になることがあります。コードがうまく機能しない場合は、Slave_servo.inoでこれらの値を変更してみてください:
const unsigned int upperThreshold =70; //上限しきい値constunsigned int lowerThreshold =50; //下限しきい値
- Master_Remote.inoは、送信機を使用してArduinoに接続します
- Slave_Servo.inoはレシーバーと同じArduinoを使用します
配線
このための配線は非常に簡単です。このリンクの画像と「Schematics」の下の画像を使用してください。
<図>注
- ボタンは送信機と同じArduinoにあり、サーボは受信機と同じArduinoにあります。
ウォールマウント
壁へのサーボのマウントに関しては、3Dプリンターへのアクセスが必要になります。サーボマウントはOpenSCADでモデリングされているため、穴の位置を変更する必要がある場合があります。穴のパラメータを変更できるように、OpenSCADファイルを含めました。初心者向けにmhacks_lightswitchv4.stlを印刷することをお勧めします。
印刷したら、サーボを固定し、マウントをスイッチに接着します(これは、コマンドストリップのような単純なもので行うことができます。または、本当に気に入っている場合は、瞬間接着剤を使用します(これはお勧めしません)。
最終プロジェクト
これが最後のプロジェクトです(私はこれをMhacksと呼ばれるオンラインハッカソンに提出しました)。
セットアップをより永続的にするために、Arduinoケースを印刷することをお勧めします。このケースは本当にうまくいきます。コマンドストリップを使用して、ブレッドボードと同様に壁に取り付けることができます。
今後の展開
- 2つのArduinoではなく、ESP8266ベースのボードを使用してサーボを制御します
- サーボをより雄弁に埋め込むライトスイッチカバーを作成します
- 音声制御できるようにAlexaコードを開発する
コード
- Slave_Servo.ino
- Master_Remote.ino
Slave_Servo.ino Arduino
#define rfReceivePin A0 // RFレシーバーピン=アナログピン0#define ledPin 13 //オンボードLED =デジタルピン13#includeサーボサーボ; unsigned int data =0; //受信したデータを格納するために使用される変数constunsigned int upperThreshold =70; //上限しきい値constunsigned int lowerThreshold =50; //下限しきい値voidsetup(){pinMode(ledPin、OUTPUT); Serial.begin(9600); Servo.attach(9); } void loop(){data =analogRead(rfReceivePin); //アナログピン0でデータをリッスンしますif(data lowerThreshold){digitalWrite(ledPin、HIGH); // HIGH信号を受信した場合は、LEDをオンにしますSerial.println(data); Servo.write(90); }}
Master_Remote.ino Arduino
#define rfTransmitPin 4 // RF送信機ピン=デジタルピン4#define buttonPin 2 #define led 13 void setup(){//セットアップコードをここに配置して、1回実行します:pinMode(rfTransmitPin、OUTPUT); pinMode(buttonPin、INPUT); pinMode(led、OUTPUT); Serial.begin(9600);} int buttonState =0; void loop(){//メインコードをここに配置して繰り返し実行します:buttonState =digitalRead(buttonPin); if(buttonState ==HIGH){// LEDをオンにします:digitalWrite(rfTransmitPin、HIGH); digitalWrite(led、HIGH); Serial.println( "transmit"); delay(10); } else {// LEDをオフにします:digitalWrite(rfTransmitPin、LOW); digitalWrite(led、LOW); Serial.println( "no"); }}
カスタムパーツとエンクロージャー
mhacks_lightswitch_hpXQkie6X4.scad Arduinoケース
thingsiverse.comのCADファイル 回路図
製造プロセス