スキップしてメイン コンテンツに移動

投稿

2016の投稿を表示しています

IoTデバイス用のお手軽サーバリリース!

手軽にIoTデバイスのステータス管理ができるWebサーバをGitHubで公開しました。 https://github.com/nyampass/iot-srv Herokuへのデプロイボタンがあり、デプロイを用意にしています。Heroku Redisに保存します。 Herokuアプリが一つだけなら24時間動かしたとしても無料枠に収まる範囲かと思います。(ただHeroku Redisの無料枠に収まるかは使い方次第です。) HTTPロングポーリングに対応していて、ステータス変更時のJavaScriptコードの実行、ステータスの可視化も対応しています。 IoTデバイスからHTTP経由での状態の変化に対してリアルタイムに対応させたい場合というケースは経験上わりとありまして、そのための対策としてHTTPロングポーリングでステータスの変化を知る仕組みがあるのが特徴です。 ある程度検証も終わりましたので、今後 コワーキングスペースHaLake として、小学生向けのプログラミング教室として Halake Kit を使ったレッスンをしてますのでそこでも利用しつつ、かつ教室ではマインクラフトとModとしてComputerCraftも題材として使っていますので、マインクラフトの世界と現実世界をつなげるサービスとしても利用予定です。(ComputerCraft上でLua言語が記述できHTTPアクセスが可能ですので、iot-srvとの連動が容易です。)

Fabbotかんなちゃんのハック方法

先日、コワーキングスペースHaLakeにて行われました「FabBotかんなちゃんで遊ぼう!IoT勉強会」で、半日かけてFabbotかんちゃんをハックしてみましたのでその方法を簡単にまとめてみます。 もともとついていないセンサーをArduinoに取り付けた場合、Raspberry Piと繋がるPCからどのようにセンサー情報を取得できるかという方法を試しましたが、センサー以外にもカスタマイズの参考になるかと思います。 Arduinoへのセンサー取り付け ArduinoからRaspberry Piへのセンサーデータ送信 Raspberry Piのサーバ対応 Raspberry Piと繋がるPCからのArduinoのセンサーデータ取得 という手順で進めます。 Arduinoへのセンサー取り付け 今回使用しましたのは圧力センサーで、適当に空いていたGPIO8番ピンを利用し、10kΩの抵抗をGNDと繋ぎましたが、この辺はよくある取り付けですので省略します。 この時点で正しくセンサーの値が取れるかをArduino IDEで確認しています。 void setup() {   Serial.begin(9600);   pinMode(8, INPUT); } void loop() {   Serial.println(analogRead(8)); } (後で気付きましたが、analogRead関数を使っており、圧力センサーですのでアナログピンに刺すところでしたが、上記のコードのまま試し、圧力センサーに触れていない時は0で、触れた場合に高い数値が返ってきていましたので気づきませんでした。) ArduinoからRaspberry Piへのセンサーデータ送信 FabbotかんちゃんのArduino部分にかかれていたのはもともとこちらのコードでした。 https://github.com/FabLabKannai/fabbot/tree/master/arduino/fabbot_sketch_command このコードに8番ピンの値を返すコマンドを追加すれば、Arduino部分のセンサー取得はできるようになります。 プログラムの後半にあるswitch文に対

BLE Nanoを使ったマインクラフトの松明リモート制御

ニャンパスでは普段、ウェブサービスやスマートフォンアプリ開発をやりつつ、コワーキングスペースHaLakeを越谷市レイクタウンにて運営していることから、IoT勉強会開催や、小学生へプログラミングを教えたりしてます。 プログラミング教室では、最近マインクラフトをつかってComputerCraftというModを導入し、遊んでもらってるんですが、何かマインクラフトでもIoT的なことをやりたいというところから、Amazonで売っていたマイクラの松明を改造してみましたのでその共有です。 改造に利用したのはこちらの松明。 この松明を改造している様子は、下記の様な感じで、写真に写っているニャンパス社員の河野くんがこの辺ガッツリ対応いただきました。 意外と一番苦労したのは松明を空けるところで、松明の中身がどのように組んであるかが分からず当たりをつけてカッターで切ってみるという方法を取りました。 開けてみての構造は、写真を見ていただくと分かりますが、LEDのある頭部は金属のフレームで囲まれていますので、側面の接着剤のある部分を繰り返して切れ目を入れていけくことで空けることが出来ました。側面同士をつないでいるツメも切ることになり、この辺はどれくらい真似される方がいるか分かりませんが自己責任でお願いします。 BLE Nano自体のプログラムはmbedを使うと、そのサンプルとして SampleControls works with the BLEController iOS/Android Appというプロジェクトの雛形から始めると参考になります。 このプロジェクトではすでに、BLEの読み書きそれぞれのプロファイルが用意されていますので、この挙動を今回の場合は、以下のように変更しました。 電源が入ったかどうか分かるよう、起動時に0.5秒、松明を点滅させる 起動時以下のコードで点灯させています。 PWM = 1.0; wait_ms(500); PWM = 0.0; BLEとしてPWMの値を受け取り、以下のコードで松明のLEDを制御 サンプルコード自体がPWMのデータ受信を行っていますので、GPIOのピンを調整するくらいですみます。ここを松明のLEDと繋ぎ明るさを調整できるようになります。 あとは如何ようにでも松明を制御で

ESP8266で書き込めない時に対処したこと

ESP8266のチップで書き込めなかった問題が起こり、それについての対処を参考になる可方がいるかもということでブログにもメモとして残しておきます。 書き込みで失敗したケースとしては、 スイッチサイエンスさんのESP-WROOM-02ピッチ変換済みモジュール《シンプル版》 へのシリアル通信での書き込みができなかった問題 Over The Air(OTA)の機能を使うコードを、同じくESP-WROOM-02に対して転送するも、更新の途中でクラッシュし、書き込みが失敗するという問題 の二つです。 OTAまで使って書き込もうとしている背景は、ニャンパスとして Robip というプログラミング学習環境を作っていて、そのツールの中でWi-Fi経由での書き込み機能を対応することでスマートフォン、タブレットなどでのビジュアルプログラミングしたものが、OTA経由で電子工作のプログラミングができるようという機能があり、いくつかのESP8266を積んだモジュールへのサポートを増やそうとしたところ(ようはRobipとしての対応デバイスを広げたかった)上記の書き込みできない問題にぶつかりました。 Facebookのこちらに書いたことの詳細版です。 ESP-WROOM-02への書き込み出来ない問題 もともと、HaLake KitというコワーキングスペースHaLakeオリジナル基板は、ESP8266を積んでいますので、この書き込みツールとしてClojureで書いた robip-tool というのを用意していました。 このツールであればHaLake Kitには書き込めていたのですが、ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》ですと最初の書き込みの段階で失敗することが分かりました。 そこで世界中で人気のESP8266ですので、色んなバージョンの書き込みツールがありまして、書き込みに成功するツールを探す旅が始まりました。 その際には、シンプル版だけでなく、HaLake Kit、ESPr Developer(ESP-WROOM-02開発ボード)、ESP-WROOM-02ピッチ変換済みモジュール《フル版》でも試して、全てで動くツールを検証しました。 途中、Go言語で書きなおしてみたりいろいろテストもしたのですが、結果的に全て

最新IoT製品の体験スペース「TECH LAB」で、HaLakeボードの展示開始!

ニャンパス株式会社が、越谷レイクタウンにてコワーキングスペースをスタートさせてから1年3ヶ月が経ちました。 毎週日曜は、コワーキングスペース会員の方へ、プログラミング教室をスタート。ビジュアルプログラミングのScratchと、Arduinoを使ったレッスンを小学生、社会人の方向けにレッスンさせていただくようになりました。 (ちなみに、プログラミング教室への参加だけでなく、HaLake会員特典として会員の方にプログラミングをマンツーマンで教えるというオプションも付いています。) 昨年の夏は都内およびHaLakeにて、数回Arduinoの電子工作を学ぶプログラミングイベントを開催したのですが、これからプログラミングを学ぼうという方がネックになるのは環境構築だと痛感。その問題を解決して、プログラミングをもっと気軽に楽しんでもらえるようなものは作れないかなと考えるようになりました。 その後、プログラミングを小学生向けにレッスンしていく中でどういったパーツが楽しんでもらえるかがわかってきたこと、HaLake会員の鈴木さんが基板を設計できるというところから、あれよあれよというまにHaLake独自のプログラミングを学ぶためのガジェット、HaLakeボードが完成しました。 HaLakeボード ESP8266を積み、マイクロUSB経由で給電、プログラムの転送ができ、9軸センサー、赤外線送受信、タクトスイッチがついています。ガチャガチャのケースに収まるようになっており、HaLake会員のプログラミングレッスンを受けられる方に無償提供中 またHaLakeでは、定期的にIoT勉強会・もくもく会を開催しているのですが、その勉強会中に、ESP8266ってWifi経由でプログラムを転送できる!と気づいたことから、PCがない環境でも、スマートフォン・タブレットからプログラムの転送ができれば学習のハードルは下がり、さらにボードに書き込むためのプログラムもサーバ上で作ることができるなら、環境構築の手間もほとんどなくなる!という発想から、クラウドでのプログラミング環境として「Robip」というプロジェクト名での開発も昨年12月からスタートしました。結果的にScratchのようにブロックを組み合わせたものがWifi経由でHaLakeボードに転送される開発環境となっています。