上司離着席検知システムの作り方
お疲れ様です。高橋です。
上司離着席検知システムの作り方は下記の通りです。
必要な部品と価格
必要な部品は下記の4種類です。
Arduino Pro Mini(互換機も可) – 秋月価格: 1,400円 * 2個 = 2,800円
2.4GHz帯無線モジュール – aitendo価格: 390円 * 2個 = 780円
IR測距センサ – 秋月価格: 450円
LED(赤と青) – aitendo価格: 3円 * 2個 = 6円
合計 4,036円
日本で買うとこのような価格となります。
AliExpress参考価格
中国のECサイト AliExpress で購入すると・・・
Arduino Pro Mini互換機 AliExpress価格: 200円 * 2個 = 400円
2.4GHz帯無線モジュール – AliExpress価格: 131円 * 2個 = 262円
IR測距センサ – AliExpress価格: 511円
LED(赤と青) – AliExpress価格: 1円 * 2個 = 2円
合計 1,175円
となります。IR測距センサーはSHARP製だからなのか、秋月で購入したほうが安く済みます。
IR測距センサだけを秋月で購入した場合、1,114円となります。
日本の価格の27%。驚異的な価格競争力です。
中国の物の安さは、バカな物を気楽に少量だけ作ろうとする人にとっては、とてもありがたい。
無線モジュールnRF24L01のピン配置
回路図
クライアント側
サーバ側
スケッチ
クライアント側
#include <SPI.h> #include <Mirf.h> #include <nRF24L01.h> #include <MirfHardwareSpiDriver.h> #define IR_SOKKYO_PIN 1 void setup() { Mirf.spi = &MirfHardwareSpi; Mirf.init(); Mirf.setRADDR((byte *)"serv1"); Mirf.payload = sizeof(unsigned long); Mirf.config(); } void loop() { const byte irChakuseki = 10; const byte irRiseki = 20; byte sendData[Mirf.payload]; if (!Mirf.isSending() && Mirf.dataReady()) { Mirf.getData(sendData); Mirf.setTADDR((byte *)"clie1"); int val = AnaToCm(IDSread()); if (val != 0) { sendData[0] = irChakuseki; } else { sendData[0] = irRiseki; } Mirf.send(sendData); } } int IDSread() { long ans ; int i ; ans = 0 ; for (i = 0 ; i < 100 ; i++) { ans = ans + analogRead(IR_SOKKYO_PIN) ; } return ans / 100 ; } int AnaToCm(int analogValue) { if (analogValue < 85 ) return (0) ; if (analogValue >= 470) return (10) ; if (analogValue >= 260) return (20) ; if (analogValue >= 165) return (30) ; if (analogValue >= 126) return (40) ; if (analogValue >= 105) return (50) ; if (analogValue >= 85 ) return (60) ; return (-1) ; }
サーバ側
#include <SPI.h> #include <Mirf.h> #include <nRF24L01.h> #include <MirfHardwareSpiDriver.h> #define CHAKUSEKI 3 #define RISEKI 2 void setup() { pinMode(CHAKUSEKI, OUTPUT); pinMode(RISEKI, OUTPUT); Mirf.spi = &MirfHardwareSpi; Mirf.init(); Mirf.setRADDR((byte *)"clie1"); Mirf.payload = sizeof(unsigned long); Mirf.config(); digitalWrite(CHAKUSEKI, LOW); digitalWrite(RISEKI, HIGH); } void loop() { const byte irChakuseki = 10; const byte irRiseki = 20; unsigned long time = millis(); byte recvData[Mirf.payload]; Mirf.setTADDR((byte *)"serv1"); Mirf.send(recvData); while (Mirf.isSending()) { } while (!Mirf.dataReady()) { if ((millis() - time) > 1000 ) { return; } } Mirf.getData(recvData); if (recvData[0] == irChakuseki) { digitalWrite(CHAKUSEKI, HIGH); digitalWrite(RISEKI, LOW); } else { digitalWrite(CHAKUSEKI, LOW); digitalWrite(RISEKI, HIGH); } delay(1000); }
参考サイト
きむ茶工房ガレージハウス – 赤外線測距モジュールで物体の距離を測ってみます(1/2)
以上、よろしくお願い致します。
関連記事
-
-
ブレッドボード上のYMZ294をユニバーサル基板化してみたが。
お疲れ様です。高橋です。 ArduinoからYMZを鳴らしているブレッドボードが …
-
-
音階LED仮組み
お疲れ様です。高橋です。 先日設計し直した音階LEDを、B型基板上に部品を載せて …
-
-
Arduino電源ON/OFF機
お疲れ様です。高橋です。 Arduinoを使っている時、特に2個とか複数同時に使 …
-
-
aitendoで買った375円のバックライト付きI2C LCDで文字を表示してみた。
お疲れ様です。高橋です。 ちょっと前にaitendoで買ったバックライト付きのL …
-
-
LPC810をSCC/PSGにする
お疲れ様です。高橋です。 出会い ImpactDrillさんのサイトの「LPC8 …
-
-
赤外線リモコンをケースに格納
お疲れ様です。高橋です。 先日作ったATtiny13Aの赤外線リモコンを、ケース …
-
-
マウスの位置座標を使った電子楽器を作ってみた。
お疲れ様です。高橋です。 先日分解したマウスを使って、位置座標の取り出しと、取り …
-
-
耳コピミキサー 試作
お疲れ様です。高橋です。 iPhoneから流す音と電子ピアノから流す音を合成する …
-
-
ArduinoIDE1.6.4+ATTiny13Aで赤外線リモコン
お疲れ様です。高橋です。 先日実験したArduinoで赤外線リモコンの問題点、そ …
-
-
MIDI INの実験
お疲れ様です。高橋です。 Arduino+YMZをMIDI化するための第一歩の実 …
- PREV
- 上司離着席検知システムの開発
- NEXT
- 上司離着席検知システムと空巣検知