上司離着席検知システムの作り方
お疲れ様です。高橋です。
上司離着席検知システムの作り方は下記の通りです。
必要な部品と価格
必要な部品は下記の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)
以上、よろしくお願い致します。
関連記事
-
YMZシールドの作成 #1
お疲れ様です。高橋です。 実体配線図を書き起こしておいたYMZシールドの半田付け …
-
赤外線リモコンをケースに格納
お疲れ様です。高橋です。 先日作ったATtiny13Aの赤外線リモコンを、ケース …
-
抵抗が焼けた – Arduinoで赤外線リモコン
お疲れ様です。高橋です。 今日の実験中、抵抗が焼けてしまいました。 なんか異臭が …
-
耳コピを簡単にするミキサー構想
お疲れ様です。高橋です。 私が普段耳コピをする時は、iPhoneで音楽を鳴らしな …
-
webからUSBカメラ+Raspberry Pi
お疲れ様です。高橋です。 The Internetから、RaspberryPiの …
-
FM音源YM2203をArduinoで鳴らしたい #1
お疲れ様です。高橋です。 きっかけ 4月から現在に掛けてのコロナな最近、会社のと …
-
bluetoothモジュールHC-06とAndroid
お疲れ様です。高橋です。 先日AliExpressで購入したbluetoothモ …
-
100均で買ったボリュームコントロール付きステレオ延長コードを、バブ型スピーカーに搭載してみた。
お疲れ様です。高橋です。 先日作ったバブ型スピーカーですが、実は裏側がとても汚い …
-
シフトレジスタLED付きのYMZ294回路をFritzingに起こしてみた。
お疲れ様です。高橋です。 ユニバーサル基板で作ったYMZボードと、音階LED及び …
-
ブレッドボード上のYMZ294をユニバーサル基板化してみたが。
お疲れ様です。高橋です。 ArduinoからYMZを鳴らしているブレッドボードが …
- PREV
- 上司離着席検知システムの開発
- NEXT
- 上司離着席検知システムと空巣検知