2016年4月29日金曜日

Johnny-Fiveでマイコン制御4 - GPS

○使用部品

出力形式がNMEA(NMEA 0183)、ボーレート9600bpsのGPSモジュールなら、同じように使えるかと思われます。

○GPS制御用端子
Arduino TX、RX、3.3V、GND
Raspberry Pi 1、6、8、10

○基本回路/プログラム
◇Arduino
・配線
モジュール
Arduino
RX
10
TX
11
VCC
3.3V
GND
GND

・プログラム

◇Raspberry Pi
Raspberry Piでは、Johnny-Fiveを使ってGPSと通信することができないため、代替えの方法を紹介します。

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

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

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

・配線
モジュール
Raspberry Pi
RX
8
TX
10
VCC
1
GND
6
※物理的なピン番号で表記しています。

・プログラム


 

Johnny-Fiveでマイコン制御3 - Wiiヌンチャク

  




○使用部品
Wiiヌンチャク

○Wiiヌンチャク制御用端子
Arduino A2、A3、A4、A5
Raspberry Pi 3、4(または2)、5、6

○基本回路/プログラム
◇Arduino
・配線
アダプタ
Arduino
-
A2
+
A3
d
A4
c
A5

◇Raspberry Pi
・配線
アダプタ
Raspberry Pi()
-
6
+
4
d
3
c
5
※物理的なピン番号で表記しています。
 
・プログラム


APIの詳細は、Arduinoのプログラムを参照してください。

2016年4月28日木曜日

Johnny-Fiveでマイコン制御2 - LCD

○使用LCD
・パラレル接続
1602 16x2 Character LCD Display Module Blue Blacklight
・I2C接続
waves 1602 IIC/I2C/TWI LCD液晶 モジュール Arduino 青


○LCD制御用端子
Arduino 0~13
Raspberry Pi(※) GPIO04~026

※Model A+/B+/Raspberry Pi 2/ Raspberry Pi 3/Raspberry Pi Zero

○基本回路/プログラム

★パラレル接続
◇Arduino
・配線
 

・プログラム

◇Raspberry Pi
・配線
 

・プログラム




I2C接続
Arduino
・配線
モジュール
Arduino
GND
GND
VCC
VCC
SDA
A4
SCL
A5
 ・プログラム

◇Raspberry Pi
・配線
モジュール
Raspberry Pi()
GND
6
VCC
2
SDA
3
SCL
5
※物理的なピン番号で表記しています。

・プログラム




2016年4月27日水曜日

Johnny-Fiveでマイコン制御1 - サーボモーター

○サーボモーター制御用端子(PWM出力端子)
Arduino 3、5、6、10、11
Raspberry Pi(※) 12、32、33、35
※Model A+/B+/Raspberry Pi 2/ Raspberry Pi 3/Raspberry Pi Zero

○基本回路/プログラム

◇Arduino
・配線
・プログラム


◇Raspberry Pi
・配線


・プログラム

※オプション、APIはArduinoのプログラムを参照してください。


○PWMパルス幅の設定
 ArduinoとRaspberry Piでは、PWMの周期が異なるため、サーボモーターの回転角度が違ってきます。調整する方法はないかと調べてみると、「pwmRange」オプションでPWMのパルス幅を調整できることが分かりました。

・オプション書式
pwmRange:[最小パルス幅, 最大パルス幅]

・プログラム(Raspberry Pi用)


 サーボモーターの種類にもよりますが、規定のままではArduinoでも回転角度がズレる場合があるので、必要に応じて、「pwmRange」オプションで調整してください。



2016年4月25日月曜日

ArduinoとESP8266ではじめる IoTプログラミング

本書は、ESP8266とArduinoを使用して、無線化IoTシステムを構築するための基礎を解説しています。

2016年4月19日火曜日

kindle本 無料で試すIoTプラットフォーム-JavaScript偏(Arduino/Raspberry Pi対応)

 既刊の「ArduinoとJavaScriptではじめるIoTプログラミング」と「Raspberry PiとJavaScriptではじめるIoTプログラミング」の続編です。 ハードウェアデバイスにArduinoとRaspberry Piを、開発言語にJavaScript(Node.js)を使用し、無料で利用できるIoTプラットフォームの「M2X」「ThingSpeak」「thethings.iO」「carriots」「dweet.io」の基本的な使い方を解説しています。

2016年4月7日木曜日

ubidots ESP8266ライブラリ

 ubidotsのESP8266ライブラリを使えるように書き換えてみました。


※画像はデータ取得の例です。

 動作確認したESP8266、ESP-WROOM-02のファームウェアのバージョンは以下です。

AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0


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

ESP8266ライブラリをダウンロードします。
②ArudinoIDEを起動します。
③[スケッチ]→[ライブラリをインクルード]→[.ZIP形式のライブラリをインストール]を選択します。
④ダウンロードしたESP8266ライブラリのZIPファイルを選択し、[開く]をクリックします。


○ボーレートの設定
 SoftwareSerialを使用しているので、ESP8266のボーレートを9600bpsに設定する必要があります。

 ボーレートを9600bpsに設定するには、次のATコマンドを入力します。

  AT+UART_DEF=9600,8,1,0,0

 元の115200bpsに戻すには、次のATコマンドを入力します。

  AT+UART_DEF=115200,8,1,0,0
 
 「AT+UART_DEF」の書式は、次のとおりです。

  AT+UART_DEF=<ボーレート>, <データビット数>,<ストップビット>, <パリティ>,<フロー制御>


 PCとESP8266の接続方法、端末ソフトの設定は、以下の記事を参照してください。
Arduino+ESP8266でIoT

 ESP-WROOM-02(スイッチサイエンス)の場合は、次の表のように配線します。

GNDGND
EN10kΩ抵抗経由で3.3V
RST10kΩ抵抗経由で3.3V
TXDシリアル変換ケーブル白
RXDシリアル変換ケーブル緑
VCC3.3V



○ArudinoとESP8266の接続

 ArudinoとESP8266を次のように接続します。

ArduinoESP8266
D2TXD
D3RXD
3.3VVCC
3.3VCH_PD
GNDGND


 ESP-WROOM-02の場合は、次のように接続します。

ArduinoESP-WROOM-02
D2TXD
D3RXD
GNDGND

 VCCは3.3V電源(Arudinoの3.3Vではドライブ不可)、EN、RSTは、10kΩ抵抗経由で3.3Vに接続します。


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


 その他の使い方は、README、サンプルを参照してください。



2016年4月6日水曜日

Arduino+ESP8266でIoT-ubidots偏

 今回は、Arduino+ESP8266で、ubidotsにデータを送信するプログラム(スケッチ)を書いてみました。

 ubidotsのデータソース(Source)、変数(Variable)の作成方法については、以下記事を参照してください。

Arduino+ubidotsでセンサー・データをリアルタイムで可視(グラフ)化する



<SSID>には、WiFiのSSIDを、<Password>にはWiFiのパスワードを入力します。
<Token>にはTokenを、<Variable ID>にはVariable IDを入力します。
Tokenは、ubidotsのメニューのユーザー名をクリックし、「API Credentials」を選択すると、確認できます。



 ubidotsには、ESP8266のライブラリが用意されていますが、そのライブラリは、まったく使い物になりませんでした。

2016年4月2日土曜日

Arduino+ESP8266でIoT-IFTTTのMakerにデータをPOST

 今回は、Arduino+ESP8266のIoTデバイスから、IFTTTのMakerにデータをPOST(送信)するプログラム(スケッチ)を作成してみました。IFTTTにデータをPOSTできれば、Googleドライブに記録したり、Twettrにつぶやくことも簡単にできるので、やれることに幅が広がります。

  IFTTTのMakerの作成方法は、「IFTTTを使ってセンサー・データをGoogleドライブ(スプレッドシート)に記録する(Arduino編)」を参照してください。


※「Arduinojson」をインストールしてください。


 <SSID>にはWiFiのSSIDを、<Password>にはWiFiのパスワードを入力します。

 <key>にはIFTTTのMakerのkeyを、<EventName>には、IFTTTのEventの名前を入力します。



 










 46行目の「dat["value1"] =  "<value>";」の<value>には、送信するデータを指定します。
 データは、value1、value2、value3の3つを送信することができます。必要に応じて、value2、value3を指定します。


 たとえば、Arudinoで計測した温度データを送信するプログラム(スケッチ)は、次のようになります。