2016年5月22日日曜日

Digispark 開発環境のセットアップ

 Digisparkは、超小型のArduino互換ボードです。
 
 Amazonだと、500円程度(ぼったくり価格でも販売されているので注意)、AliExpressなら200円以下で購入できます。

今回は、Digisparkの開発環境を、Windows10PCにセットアップする方法を説明します。
※Arduino IDEはインストール済のこととします。

○ドライバーのインストール
 次のように操作して、ドライバーをインストールします。
Digisparkのドライバー(micronucleus-2.0a4-win.zip)をダウンロードします。
②ダウンロードしたZIPファイルを解凍し、32ビット環境なら「DPinst.exe」、64ビット環境なら「DPinst64.exe」を実行します。
③「ユーザーアカウント制御」ダイアログボックスが表示されたら、[はい]をクリックします。
④「デバイスドライバのインストルウィザード」の[次へ]をクリックします。
 
⑤[完了]をクリックします。
 

⑥[スタート]ボタンを右クリックして、「デバイスマネージャー」を選択し、デバイスマネージャーを起動します。
DigisparkをUSBポートに挿入し、次の図ように認識されることを確認します。
 

 約5秒後に、リムーブされます。これは仕様なので気にしないでください。ブートローダーのバージョンによっては、認識とリムーブを一定間隔で繰り返す場合もあります。確認が終わったらDigisparkは取り外しておいてください。

○ボードマネージャのインストール
 次のように操作して、ボードマネージャをインストールします。
①Arduino IDEを起動します。
②[ファイル]→[環境設定]を選択します。
 

③「追加のボードマネージャのURL」に次のURLを入力し、[OK]ボタンをクリックします。
 
※複数のボードマネージャのURLを指定する場合、「,」で区切って入力するか、右側のボタンをクリックし、表示されたウィンドウに行単位で入力します。
 

④[ツール]→[ボードマネージャ]を選択します。
 

[タイプ]から「提供された」を選択し、「Digistump AVR Boards」をインストールします。
 

⑥[ツール]→[ボード]→[Digispark(Default- 16.5mhz)]を選択します。
 

⑦[ツール]→[書込装置]→[Micronucleus]を選択します。
 


○スケッチの書き込み
 スケッチを書き込むには、次のように操作します。

Digisparkは取り外しておきます。
②[ファイル]→[スケッチの例]→[Digispark_Examples]→[Start]を選択します。
③[スケッチ]→[マイコンボードに書き込む]を選択します。
④コンパイルが終わり、「Plug in device now...(will timeout in 60 seconds)」と表示されたら、DigisparkをUSBポートに接続します。
 

 書き込みが終了すると、「Micronucleus done. Thank you!」と表示されます。
 


2016年5月21日土曜日

ESP8266でIoT - Adafruit IO偏

  Adafruit IOでESP8266のWiFiモジュールをIoTデバイスに使用する方法を説明します。

※「ESP8266でIoT - 開発環境のセットアップ」の手順で開発環境をセットアップ済のこととします。

○準備
Adafruit IO+Arduino+MQTTでIoT‐センサー・データの収集」の「③Adafruit IOの準備」の手順でアカウントを作成します。
②「Adafruit MQTT Library」(Adafruit_MQTT_Library-master.zip)をダウンロードします。
③Arudino IDEを起動します。
④[スケッチ]→[ライブラリをインクルード]→[.ZIP形式のライブラリをインクルード]を選択します。
⑤ダウンロードしたZIPファイル「Adafruit_MQTT_Library-master.zip」を選択し、[開く]をクリックします。

○プログラム 

・データの送信
 Adafruit IOにデータを送信するプログラムは、次のように書きます。


・データの取得
 Adafruit IOからデータを取得するプログラムは、次のように書きます。

 LEDを制御するためのフィード、ブロックの方法については、「Adafruit IO+Arduino+MQTTでIoT‐デバイスの制御」の「③Adafruit の準備」を参照してください。
 LEDは、GPIO5に接続します。
 


ESP8266でIoT - M2X偏

 M2X でESP8266のWiFiモジュールをIoTデバイスに使用する方法を説明します。

※「ESP8266でIoT - 開発環境のセットアップ」の手順で開発環境をセットアップ済のこととします。

○準備
①「Arduino+M2XでIoT」の「②M2Xの準備」の手順でデバイスとストリームを作成します。
「AT&T's M2X Android Client」ライブラリをダウンロードします。
③ダウンロードしたZIPファイルを解凍し、「M2XStreamClient」フォルダをArduino IDEのライブラリフォルダ(「Users\<ユーザー名>\Documents\Arduino\libraries」)にコピーします。

○プログラム(スケッチ)
 M2Xにデータを送信するプログラムは、次のように書きます。

2016年5月20日金曜日

ESP8266でIoT - IFTTT偏

  IFTTTのMaker用のライブラリも書いてみました。


○ライブラリのインストール
  IFTTTのMaker用のライブラリをインストールするには、次のように操作します。
※「ESP8266でIoT - 開発環境のセットアップ」の手順で開発環境をセットアップ済のこととします。

ESP8266 IFTTT Maker library(IFTTT-esp-master.zip)をダウンロードします。
②Arduino IDEを起動します。
③[スケッチ]→[ライブラリをインクルード]→[.ZIP形式のライブラリをインクルード]を選択します。
④ダウンロードしたZIPファイル「IFTTT-esp-master.zip)」を選択し、[開く]をクリックします。

○プログラム(スケッチ)
 ※プログラムを書込む際には、GPIO0をLowにします。

 IFTTTのMakeにデータを送信するプログラムは、次のように書きます。

 データは最大3つ送信できます。データはString型で指定する必要があります。

 IFTTTのMakerについては、以下の記事を参照してください。

ESP8266でIoT - dweet.io偏

   ubidotsのライブラリをベースに、dweet.ioのライブラリを書いてみました。


 使用には、ArduinoJson libraryが必要になります。

○ライブラリのインストール
 dweet.ioのライブラリをインストールするには、次のように操作します。
※「ESP8266でIoT - 開発環境のセットアップ」の手順で開発環境をセットアップ済のこととします。

dweetESP8266 library(dweet-esp-master.zip)をダウンロードします。
②Arduino IDEを起動します。
③[スケッチ]→[ライブラリをインクルード]→[.ZIP形式のライブラリをインクルード]を選択します。
④ダウンロードしたZIPファイル「dweet-esp-master.zip」を選択し、[開く]をクリックします。

○プログラム(スケッチ)
 ※プログラムを書込む際には、GPIO0をLowにします。 

・1つのデータの送信
 dweet.ioに1つのデータを送信するプログラムは、次のように書きます。


 dweet.ioのデータはキーと値の組み合わせで送信します。キー(Key)、値(ValまたはValue)は、String型で指定してください。 たとえば、キー「action」、値「on」のデータを送信するには「client.add(”action”, "on")」と指定します。数値の場合、String型に変換して指定します。

・複数データの送信
 dweet.ioに複数のデータ(最大5つ)を送信するプログラムは、次のように書きます。



・データの取得
 dweet.ioからデータを取得するプログラムは、次のように書きます。

 getDweet関数の第2引数keyには、取得したいデータのキーを指定します。たとえば、キー「action」のデータを取得するには、「getDweet(THIG_NAME, "action")」と指定します。



ESP8266でIoT - ubidots偏

 ubidotsには、ESP8266単体をIoTデバイスにするためのライブラリが用意されています。ドキュメントでは、NodeMCU用とされていますが、ESP8266チップを使用したWiFiモジュールのほぼすべてで使用できます。
 

○準備
①「ESP8266でIoT - 開発環境のセットアップ」の手順で開発環境をセットアップします。
②「Arduino+ubidotsでセンサー・データをリアルタイムで可視(グラフ)化する」の「①ubidotsの準備」の手順でubidotsのデータソース(Source)、変数(Variable)を作成します。

○ライブラリのインストール
 ubidotsのライブラリをインストールするには、次のように操作します。

UbidotsMicroESP8266 library(ubidots-nodemcu-master.zip)をダウンロードします。
②Arudino IDEを起動します。
③[スケッチ]→[ライブラリをインクルード]→[.ZIP形式のライブラリをインクルード]を選択します。
④ダウンロードしたZIPファイル「ubidots-nodemcu-master.zip」を選択し、[開く]をクリックします。

○プログラム(スケッチ)
 ※プログラムを書込む際には、GPIO0をLowにします。 

・1つのデータの送信
 ubidotsに1つのデータを送信するプログラムは、次のように書きます。



・複数のデータの送信
 ubidotsに複数のデータ(最大3つ)を送信するプログラムは、次のように書きます。



・データの取得
 ubidotsからデータを取得するプログラムは、次のように書きます。


 <variable ID>にはvariable IDを、<TOKEN>にはubidotsのTOKENを、<ssid>にはWiFiのSSIDを、<password>にはWiFiのパスワードを入力します。

ESP8266でIoT - 開発環境のセットアップ

 今回は、ESP8266単体をIoTデバイスとして使用するために、「 Arduino core for ESP8266 WiFi chip」という開発環境をインストールする方法を説明します。
 「 Arduino core for ESP8266 WiFi chip」は、Arduino IDEにESP8266 チップのサポートを追加すします。Arduinoの機能とライブラリを使用して、ESP8266を単体で動かすプログラム(スケッチ)を作成できます。

○「Arduino core for ESP8266 WiFi chip」のインストール
 Arduino IDEに「 Arduino core for ESP8266 WiFi chip」をインストールするには、次のように操作します。
Arduino IDE(1.6.9)はインストール済のこととします。

①[ファイル]→[環境設定]を選択します。
 

②「追加のボードマネージャのURL」に次のURLを入力し、[OK]ボタンをクリックします。
 
※複数のボードマネージャのURLを指定する場合、「,」で区切って入力するか、右側のボタンをクリックし、表示されたウィンドウに行単位で入力します。
 

③[ツール]→[ボードマネージャ]を選択します。
 

④[タイプ]から「提供された」を選択し、「esp8266 by ESP8266 Community」をインストールします。
 


○ESP-WROOM-02用の設定
 ESP-WROOM-02用に設定するには、次のように操作します。

①[ツール]→[ボード]→[Generic ESP8266 Module]を選択します。
2016052007.png

②[ツール]メニューから、各項目を次のように設定します。

Flash Mode:DIO
Flash Frequency:40MHz
CPU Frequency:80MHz
Flazh Size:4M(3M SPIFFS)
Upload Speed:115200
 
※シリアルポートには、PCとESP-WROOM-02ボードを接続しているポートを指定してください。


2016年5月14日土曜日

IchigoJam+MixJuiceでIoT

  MixJuiceは、IchigoJam用のWiFiネットワークボードです。
 今回は、IchigoJamとMixJuiceを使って、IoTデバイスを構築してみました。IoTプラットフォームにはdweet.ioを使用します。
 具体的には、IchigoJamに接続した温度センサー(TMP36)の計測データを、dweet.iにポストして、そのデータをブラウザで受信してGoogleゲージで可視化します。

○MixJuiceの作成
 MixJuiceの中身はESP-WROOM-02です。ファームウェアも公開されているので、自作することができます。手元にESP-WROOM-02があったので、とりあえずブレッドボードベースで作成してみました。

・必要なモノ

・ツール・ファームウェアのダウンロード
 以下のツール、ファームウェアをダウンロードし、任意のフォルダに解凍しておきます。
  MixJuiceファームウェア(「DOWNLOAD」をクリック)

※rarファイルを解凍するためのツール「7-Zip」のダウンロードはこちらから。

・ESP-WROOM-02の配線

GPIO0 Low(GND)
GPIO2 High(3.3V)
GPIO15 Low(GND)
EN 10kΩで3.3Vにプルアップ
RST 10kΩで3.3Vにプルアップ
TXD シリアル変換ケーブルRXD(白)
RXD シリアル変換ケーブルTXD(緑)


・ファームウェアの書き込み
 次のように操作してMixJuiceのファームウェアを書き込みます。
①FLASH DOWNLOAD TOOLSを起動します。
②COMポート(COM PORT)とボーレート(BOAUDRATE)を設定します。
③「Download Path Config」のいずれかの入力ボックスの右にある[...]ボタンをクリックします。
④MixJuiceファームウェア「MixJuice.bin」を選択し、[開く(O)]ボタンをクリックします。
⑤ADDRに「0x00000」と入力し、左のチェックをオンにします。
⑥その他を次のように設定します。

CristalFreq :26M
SPI SPEED :40MHz
SPI MODE :QIO
FLASH SIZE:32Mbit

 
※この図では「Download Path Config」に「「MixJuice.bin」」以外の項目が入力されていますが、無視してください。

⑦[START]ボタンをクリックします。

 なお ESP-WROOM-02の規定のファームウェアへの書き換え、アップデート方法については、ここを参照してください。

○回路の配線

MixJuice IchigoJam
TXD   RXD
RXD   TXD

 MixJuice(ESP-WROOM-02)の「GPIO0」はHigh(3.3V)に設定します。

 温度センサー(TMP36)は、次のように配線します。
 

○アクセスポイントへの接続
 次のように操作して、アクセスポイント(WiFiルーター)に接続します。
①IchigoJamとMixJuiceの電源をオンにします。
②「?"MJ APC ssid password"」と入力します。ssidにはアクセスポイントのSSIDを、passwordにはアクセスポイントのパスワードを入力します。

○プログラム
・データ送信
 IchigoJamで、次のBASICプログラムを入力します。


・データ受信用HTML
 テキストエディタで、次のHTMLコードを入力します。

 BASICプログラム中の「dweet.io/dweet/for/ichigojam?val=」とHTMLコード中の「var thingName = "ichigojam"」の「ichigojam」にデータを送受信するための固有名で、同じ名前を指定します。これは、任意の名前を指定できます。

○動作の確認
 動作を確認するには、次のように操作します。
①IchigoJamでプログラムを実行します。
②ブラウザでデータ受信用HTMLを開き、[接続]ボタンをクリックします。
 

MP3モジュールの制御 - IchigoJam偏

 IchigoJamは、プログラミン言語にBASICを採用しているボードマイコンです。今回は、このIchigoJamでMP3モジュールを制御してみました。

○使用部品

・その他必要なモノ

○配線
MP3
IchigoJam
RX
TXD
TX
RXD
VCC
CN5の1ピン
GND
CN5の5ピン

 

○プログラム



 キーボードの方向キーの上下でボリュームのアップダウン、方向キーの左右で前曲/次曲への移動となっています。プログラムの制限が1KBなので、イコライザーなど他の機能を追加するには、プログラムを少し工夫する必要があります。


2016年5月10日火曜日

Johnny-Fiveでマイコン制御5 - 超音波距離センサー

○使用部品

○超音波距離センサー制御端子
Arduino 0~13、A0~A5
Raspberry Pi(※) GPIO04~026

○基本回路/プログラム

◇Arduino
・PingFirmataのインストール
 Arduinoで以下の超音波距離センサーモジュールを使用するには、「PingFirmata」を書き込む必要があります。

・SR04 or HCSR04
・SRF05
・Parallax Ping
・SeeedStudio Ultrasonic Range
・Grove - Ultrasonic Ranger

 「PingFirmata」のソースをコピーして、Arduino IDEから書き込んでください。

・配線
 

・プログラム
http://johnny-five.io/examples/proximity-hcsr04/(デジタル入力端子使用の場合)
http://johnny-five.io/examples/proximity-hcsr04-analog/(アナログ入力端子使用の場合)

◇Raspberry Pi
Raspberry Piでは、Johnny-Fiveを使って超音波距離センサーモジュールを制御することができないため、代替えの方法を紹介します。

・「r-pi-usonic」と「math-statistics」モジュールのインストール
 次のように操作して、「r-pi-usonic」と「math-statistics」モジュールをインストールします。
①ターミナルを起動し、作業用のフォルダに移動します。
②「npm install r-pi-usonic math-statistics [Enter]」と入力します。

・配線
 

・プログラム


 

2016年5月2日月曜日

MP3モジュールの制御 Rasberry Pi&Node.js偏

秋月で購入したMP3モジュールを、Rasberry PiのGPIOに接続して、Node.jsで制御してみました。
 

※Raspberry Pi 3では動作しません。

○下準備
・シリアルコンソールの無効化
 次のように操作して、シリアルコンソールを無効に設定します。
①[Menu]→[設定]→[Raspberry Piの設定]を選択します。
②「インターフェイス」タブを選択し、シリアルを無効に設定し、[OK]をクリックします。

・「serialport」「socket.io」モジュールのインストール
 次のように操作して、「serialport」と「socket.io」モジュールをインストールします。
①ターミナルを起動し、作業用のフォルダに移動します。
②「npm install serialport socket.io[Enter]」と入力します

○配線
モジュール
Raspberry Pi
RX
8
TX
10
VCC
4(または2)
GND
6

○プログラム
・サーバー
 次のJavaScriptコードを入力し、「mp3.js」と名前を付けて作業用フォルダに保存します。


・クライアント
 次のHTMLコードを入力し、「index.html」と名前を付けて作業用フォルダに保存します。


○動作の確認
 次のように操作して、動作を確認します。
①ターミナルを起動し、作業用フォルダに移動します。
②「sudo node mp3.js」と入力します。
③ブラウザで「http://localhost:3000」にアクセスします。
④各ボタンをクリックし、動作を確認します。