上司離着席検知システムの作り方
お疲れ様です。高橋です。
上司離着席検知システムの作り方は下記の通りです。
必要な部品と価格
必要な部品は下記の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)
以上、よろしくお願い致します。
関連記事
-
満員電車内でのオナラと検知 #4
お疲れ様です。高橋です。 硫化水素センサーが到着しました。結構前に到着していたの …
-
満員電車内でのオナラと検知 #2
お疲れ様です。高橋です。 最近なんだか忙しかったので、なかなか物が作れませんでし …
-
電子オルゴール 回路図
お疲れ様です。高橋です。 電子オルゴールの回路図を書いてみました。 実体配線図よ …
-
4桁7セグLEDを基板に実装
お疲れ様です。高橋です。 昨日に引き続き今日も奇跡的に早く帰宅する事が出来たため …
-
上司の離着席状態をクラウドに飛ばし、スマホで見れるようにした。
お疲れ様です。高橋です。 前回ブレッドボード上に構築した上司離着席検知システムで …
-
Pro Mini互換機でFF2戦闘音楽を使ったYMZ動作試験
お疲れ様です。高橋です。 電子オルゴールの最終形をイメージしてブレッドボード上で …
-
Arduino Pro MiniでLチカしてみた
お疲れ様です。高橋です。 最近ずっと忙しく、平日はもちろん、土日も疲労のため何も …
-
電子オルゴール 動作試験
お疲れ様です。高橋です。 前回「電子オルゴール基板実装 #2 ~ワイヤストリッパ …
-
電子オルゴール 基板実装 #1
お疲れ様です。高橋です。 Pro Mini互換機を贅沢に使った電子オルゴールの仮 …
-
【完成】PCからシリアル通信でEEPROM書き込み
お疲れ様です。高橋です。 PCからシリアル通信を介して楽曲データをEEPROMに …
- PREV
- 上司離着席検知システムの開発
- NEXT
- 上司離着席検知システムと空巣検知