Posts on IoT

SparkFunのSEN-11345をcpm単位で空間線量を返すように修正してみる。ついでに、OSXでmakeする環境整備も。

電子工作ではおなじみのSparkFunが出しているガイガーカウンター、SEN-11345。すごく気になる…。 コンパクトなガイガーミュラー菅には、LND712を使用している上、ArduinoでおなじみのATMega328を搭載しているんですよね。以下のArduino Pro Miniと動作周波数も同じです。 Arduino Pro Mini 328 3.3V 8MHzposted with カエレバ スイッチサイエンス Amazonで購入楽天市場で購入 というか、このArduino Pro Mini、以前庭先の自動水やり機を作った時の余りが手元にあるんですよね。 でもって、Geiger Counter用コードがGithubにpushされていると。 ハード構成は色々違うはずですが、このGeiger Counter用コードがArduino Pro Miniで動くのか試してみたくなりました。 OSXでMakeする Arduinoのソフトウェアは基本的にArduino IDEで開発するので、Geiger Counterのように素でMakeする環境はちょっとハードル上がります。 個人的には、マウスでボタン押してソフトウェア書き込みするより、全ての作業がコマンドラインで完結している方がやりやすい。 でもOSXのターミナルでMakeするには、色々と下準備が必要です。 Arduino IDEをインストールする avrコマンドへのパスを通す Arduino Pro Mini上で動作させるためのMakefile修正 cpm単位で値を返すようにGeiger Counterのソースコードを修正する これで、OSX上でMakeできる上、make programコマンドでボードへのソフトウェア書き込みもできてしまいます。…

Raspberry Pi Zeroセットアップでするべき事4つ。

raspbianインストール手順は公式ページにあるので、そちらを参照するとして…。 実際に使える状態に持っていくためにすべき事をまとめておきます。 X起動をやめる 独立電源でスタンドアロンで働いてもらうので、重い&消費電力デカイXは不要。 Raspberry Pi ZeroのMini HDMIを適当なディスプレイに繋いで起動して、ターミナルから以下のコマンドを実行し、再起動すると、めでたくXを無効にできます。 $ sudo systemctl set-default multi-user.target $ sudo reboot 以前は/etc/initrdの設定を変更していたはずですが、今後は組みこみLinuxも軒並みsystemdになっていくんですかね。 キーボードレイアウトを日本語109に変更する 英語101キーボードを使っている人には関係ないですが、自分は日本語109キーボードを使っているので、設定しないと記号入力がとても不便。 以下のようにします。 $ sudo dpkg-reconfigure keyboard-configuration 使っているキーボードそのものズバリな機種はもちろん存在しないので、適当にDellとかのJapaneseキーボードを選択してやると、ちゃんと動作します。 ネットワーク(無線LAN)に繋ぐ Zeroという名の通り、Zeroには何も付いてません。Raspberry Pi 1/2/3には普通にあったEthernetポートですら…。 ということで、後々楽チンな無線LANを設定します。 生産終了しちゃってますが、バッファロー製のwli-uc-gnという無線LANドングルは、何も追加インストールせずに動作しました。 BUFFALO Air Station NFINITI…

XBeeよりTWE-Liteを選ぶべき理由?を3つほど。

XBeeの類似製品にTWE-Lite(トワイライト)があるんですが、これはZigbee認証を受けていないみたいですね。 Zigbee認証済み製品は、こちらで検索できるんですが、TWE-Liteはヒットせず。 ZigBeeアライアンスが認定した製品が正式なZigBeeであり、市場では802.15.4部分のみを利用した製品や準拠しただけの非認定製品に対してZigBeeの表現が用いられる事がある。 ZigBeeの名称はZigBeeアライアンスの商標 by Wikipedia どうりで、TWE-Lite公式ページでもZigbee準拠と書いてないわけだ…。 XBeeとの相互通信は無理ってことかな。試してないけど。 でも、それを補って余りある長所が、TWE-Liteにはありそうです。以下、XBee比での利点を挙げてみます。 ファームウェアをプログラミングできる C言語でユーザアプリケーションを書くためのSDKが用意されていて、各イベントに応じた自前のコールバック関数を登録できます。 詳しくは公式のプログラミング情報に記載されていますが、概略はこんな感じ。 cbAppColdStart() 電源投入時に呼び出し cbAppWarmStart() スリープ復帰時に呼び出し cbToCoNet_vMain() メインループ。各種センサーの情報を定期的に送信する処理はここに書くことになるんでしょうね。 cbToCoNet_vRxEvent() 無線パケット受信時に呼び出し cbToCoNet_vTxEvent() 無線パケット送信完了時に呼び出し cbToCoNet_vNwkEvent() MAC層やネットワーク層の各種イベント通知。外部からのwake upピンlow/highはここで受けるんだろうか?ドキュメント読まないと分かりませんが…。 cbToCoNet_vHwEvent() ペリフェラルの割り込み処理の遅延実行部。割り込み処理後に呼び出される…ということは、wake…

スマホから電源スイッチのリモート操作を可能にするシステムをDIYしよう。

サーバ管理経験者なら、これって意外と夢だったりしませんかね? パソコンの電源スイッチをリモート(自宅の外)からON/OFF操作する。 これ、意外と簡単にできちゃいます。電子工作経験とRaspberry Piみたいな小型低消費電力サーバと、低消費電力無線機能付きマイコンXBeeが2つあれば。 XBeeを使ってできること こちらに概要を書いていますが、Arduinoほどの自由度はありません。 でもXBee自身が結構な数のI/Oを持つ上、ADCもあったりするので、ちょっとしたことならXBeeだけで出来てしまいます。今回のようなリレー操作なら超簡単。 とあるピンにリモートで0か1を指定して、それがそのままリレーのON/OFFに変換されるというだけでの仕組みです。 そんなシステムの構成 それなりにシーケンス図を書いてみるとこうなります。 PC電源をON/OFFするには、マザーボードの電源スイッチ端子をショートさせればいいので、リレーを使います。 リレー制御は3.3V highにできるGPIOがあれば十分なので、XBeeのdigital I/O操作APIを叩くだけというお手軽さ。 設定やら構築やらの手順 RaspberryPi + XBee Coordinatorの組み立てと設定 RaspberryPiがWebサーバとして動作して、ユーザはブラウザ経由でXBee Coordinatorを操作することになります。 家庭菜園リモート監視の記事のCoordinatorの設定とRaspberry Pi側のサーバ環境構築を参考にXBeeとRaspberryPiを設定してみてください。 この辺も整理しないと・・・。 小型リレーボードキットLK-RB1 + XBee Routerの組み立てと設定 お手軽にリレーを使えるようにしたキットがあります。小型リレーボードキットLK-RB1です。 エレキット 小型リレーボードキット (5V用) LK-RB1posted with…

手軽にIoTしたいなら、XBeeがオススメです。

IoTといえば、何かしらのセンサーから収集したデータをクラウドサーバに溜め込んで、何かしらのサービスを提供することですよね。 センサーデータを送受信するのに一番手軽なのはUART。RS232C経由のシリアルデータです。でもこれは当然有線なので、ケーブル長やレイアウトを考える必要があり、不便極まりない。 ということで、これを低消費電力性を実現しながら無線化したのが、XBeeという製品です。ざっくり言うとそんな感じ。 XBee活用事例 XBeeを活用したスマートアグリカルチャーの研究事例が、既にあったりします。検索すると他にも色々出て…こないんですよね。そんなに流行ってないのかな。結構便利なのに。 スマートアグリカルチャー(賢い農業)へのXBee活用事例。https://t.co/0PcQLjINVd— takashi ando (@takashi7ando) 2016年7月21日 どこで手に入る? アンテナ形状ごとにバリエーションありますが、ZBシリーズで揃えれば通信規格は同じなので、普通に相互通信が可能です。 個人的には省スペースなPCBタイプ(基盤内部にアンテナを内蔵している)がオススメ。 XBee ZB(S2C) / PCBアンテナ型posted with カエレバ スイッチサイエンス Amazonで購入楽天市場で購入 XBee ZB(S2C) / ワイヤアンテナ型posted with カエレバ スイッチサイエンス Amazonで購入楽天市場で購入 どうやって使う?…