head

2015年12月24日木曜日

ENC28J60+ATmega328P版、IoT型電光掲示板(10)

前回の[IoT型電光掲示板]記事の続編となります、
有線LANのENC28J60の組み合わせで、
低コストのIoTガジェット 検討したいと思います。

[概要]
HTTPになりますが、前回のWiz550io版と比較して低コスト、
流れとしては
ATmega328側の定期タイマ起動で
クラウド側から表示用のデータ取得する。
M2M側はUART経由で、LEDマトリクス裏側のMCUに
UTF-8文字に対応したコードを送信し、LED表示の制御行う。

*) 今回のコンテンツは、下記となってます。
固定文字
時刻
日付

#動画
https://youtu.be/tsLy-xCakkU



#配線等
ENC28J60+Atmega328 (IoTデバイス側)
前回のENC28J60の記事と同様、SPI通信
http://knaka0209.blogspot.jp/2015/10/enc28j60-2.html

LEDマトリクス
前回の、掲示板製作編と同様
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

基板は、
[PCB基板に実装]編に記載。
http://knaka0209.blogspot.jp/2015/12/matrix-9.html

#code
ARDUINO SDK 1.0.5

マトリクス(version 2/ マルチバイト対応) のリポジトリに追加してます。
https://github.com/kuc-arc-f/dot_matrix_v2

ATmega328P-ENC28J60 : HTTP 取得処理
https://github.com/kuc-arc-f/dot_matrix_v2/tree/master/arduino/matrix_enc28_1

php : HTTP配信処理 (クラウド側に配置)
https://github.com/kuc-arc-f/dot_matrix_v2/tree/master/php/http_enc28_1

mbed: LEDマトリクス制御ドライバ
https://github.com/kuc-arc-f/dot_matrix_v2/tree/master/mbed/dot_matrix_v2_6


# まとめ
LAN通信速度は高速では無いのですが、取得データ量が少ない為。
取得間隔のタイマ値、表示文字数(LED 横スクロール表示の時間)
のバランスを、ある程度調整できれば。
表示系のデバイスとしては使える範囲かと思いました。

今回の配信コンテンツは、
外部クラウドサービス連携可能なWi550io版より少なく
WebAPI/RSSの配信機能はありませんが、
増やす方向で検討したいと思います。

#関連の記事
ENC28J60+ATMega328P でIoT製作、Lチカも
http://knaka0209.blogspot.jp/2015/10/enc28j60-2.html

IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

PCB基板に実装してみました。IoT型電光掲示板(9)
http://knaka0209.blogspot.jp/2015/12/matrix-9.html


# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


2015年12月23日水曜日

PCB基板に実装してみました。IoT型電光掲示板(9)

前回の[IoT型電光掲示板]記事の続編となります、
LED dot matrixをPCB基板に実装してみました。

[概要]
海外の[PCB Prototyping]サービス (ELECROW さん)に、基板を発注し。
入荷したので配線してみました。

発注に関しては、事前にEAGLE(電気系CAD)で、回路/配置パターンを
設計しておき、CAM系ファイル生成(ガーバーファイル/Gerber_file)
添付して 製作依頼ができたので、手続き面ではカンタンなイメージでした。

*)少し縦方向が大きくなり、
小型化の設計は次回の課題としたいと思います。
*) IoT側の構成は前回と同じ、
Wiz550io +MQTT配信で、
LEDマトリクス制御ドライバ(mbedファーム)も同じ

*)動作的に前回と同じ(時刻/ニュース配信等)の為、
 動画は省略しております。

# 概観
1) 基板の図
左:正面、主に部品の実装側
右:裏面 (ハンダづけする面)


レイアウト的には、
上から
ピンヘッダ(6ピン) :電源/UART
MCU : LPC114FN28 (28ピン)
LED マトリクス (16ピン 、上8下8)
空きスペースに、抵抗8個

横連結を前程にし、マトリクス幅= 37.9 mm以下に
基板の幅をした為、縦長サイズとなってます。

2)組み立て後の、裏面 (2連結で動作中の物)



# EAGLE 回路図 -- EAGLE Light /7.5.0

配置パターン図 (brdファイル)


[参考PDF]
配置(GNDベタ前)
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/pcb/pdf/dot_matrix_1C_noGND_brd.pdf
回路図
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/pcb/pdf/dot_matrix_1C.pdf

*) EALGLE関係は下記の記事参考させて頂きました。
[電子回路]Eagleで回路図を書く(基本編)
http://make.bcde.jp/category/51/


# 発注 Elecrow
10pcs- 2 layer PCB

PCB Size : 5cm Max * 10cm Max
個数: 10pcs
Total : 12.90 [USD]
送料 : 6.34 [USD]
合計(送料込み): 19.24 [USD]


*) 5cm角で、10ドル以下でしたので、
小型の基板が設計できれば お得ですね。
*)今回は、paypalで支払い。
*) 約17日後で入荷しました、
 輸送に時間がかかるみたいです(海外ですと)
 他記事みても、20日前後とか記載されてましたので
 少し早めに到着した感ありました。

# 発注の流れ
# paypalのアカウントの準備(支払い可能な状態)

#ELECROWのアカウントの作成(配達先住所/連絡先)

#事前に設計を完了しておく

# DRU(Eagle Design Rule)のチェックを完了させる
*)上の[10pcs- 2 layer PCB]ページの [Eagle Design Rule]リンクから取得

# CAM関係ファイルの生成、必要ファイルをzipで圧縮
*)上の[10pcs- 2 layer PCB]ページの [Eagle CAM file]リンクから取得

# [発注画面] で登録する

*) 発注関係は 下記の記事参考させて頂きました。
[電子回路]プリント基板を格安に発注
http://make.bcde.jp/category/53/

# まとめ
基板メーカさま/EAGLEさま のおかげでなんとか完成できた感あります。
今回、初めて基板の発注に挑戦してみました (しかも海外企業)
ド素人感覚ですと、
設計段階で、基板の配線パターン細かく(間隔が10mil 程度の部分も多く)
正常に動作するかは 不安が残りましたが,
組み立て後に 問題なく動作てきて、安心しました。
これまでは ユニバーサル基板等に、
大量に配線(ポリウレタン線)を、事前にカットし
図面見ながら 1箇所づつ
配線する作業に時間もかかっていましたが、
専用回路のPCB基板だと、部品を差し込んで
ハンダづけ する事に注力し、大幅に組立て時間短縮できました。

#関連の記事
IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

# 関連まとめ [IoT な電子工作まとめ]

2015年12月19日土曜日

マルチバイト(日本語)表示も追加しました。IoT型電光掲示板(8)



前回の[IoT型電光掲示板]記事の続編となります、
マルチバイト(日本語)が表示できるように、全体的に修正してみました。

[概要]
クラウド側から、UTF-8文字をMQTTで送信し、
M2M側(MCU間の通信)は、16進数のUTF-8文字コードを送信
前回までの、
英数文字等に加えて、
ひらがな/カタカナ/記号/英数 文字の表示が可能
漢字(8 bit フォント)は、LPC1114のROM容量 上限を超えた為。
保存できませんでした。(次回の課題としたいと思います。)

*1) 通信データ増加の為、LEDマトリクスは最大2個目を上限
 スクロール表示遅延の為、3個目の送信処理を削除してます。
*2) 収集系プロセスは前回の天気/ニュースの記事と仕組みは同じ

# 動画
https://youtu.be/UP-hdZMoZrQ
*) マトリクス後ろ側の[ツリー飾り]は、
今回のデバイス制御と あまり関係ありません。

# Code
1) Fontライセンス:
今回 fontデータ(8 bit pattern)は、
「美咲フォント」を使用させて頂きました。(感謝です)
*) Font ライセンスについては、下記ポリシーに従う事としてます。
http://www.geocities.jp/littlimi/misaki.htm

2) UTF-8から、8ビットパターン変換
ADUINO系LCD制御の、utf-8関連のページを参考させて頂きました。
http://www2s.biglobe.ne.jp/~mt_home/arduino/glcd_k/index.htm

3)配信系プロセス、全角文字への変換(python)
半角文字(英数)を、全角に変換して送信、
zenhanライブラリを使用。半角文字はMQTT配信しない仕様です。
>sudo pip install zenhan

4) GitHub
https://github.com/kuc-arc-f/dot_matrix_v2
 a) UART通信速度= 9600 です。
 b) MQTT, Topicは、Pub側、Sub側で合わせる必要があります。
 c)2台以上デバイスを接続する場合、
  Sub側でクライアントIDを重複しないように注意も必要です。

[mbed] LEDマトリクス制御 部分/UART通信(M2M側)
[arduino] IoT-デバイス側
[mqtt_pub ] python -MQTT配信機能(PUB)、クラウド, LAN内ブローカ側に配置。
https://github.com/kuc-arc-f/dot_matrix_v2/blob/master/mqtt_pub/matrixPub_8nwt/matrixPub_8nwt.py

#まとめ
MCU側(各マトリクス裏側)のROM容量の制限で
漢字の変換は、実装できませんでしたが。
今後も、より高性能なマイコンを探して
機能を拡張できたら良いかと思います。


#関連の記事
IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

Install mosquitto (over websockets) on Raspberry PI 2
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html

時刻/天気/ニュースのMQTT配信機能も追加してみました。LED Dot Matrix
http://knaka0209.blogspot.jp/2015/12/matrix-6.html

# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


2015年12月6日日曜日

年末飾りLEDも追加、Ichigojam連携(2) LED Dot Matrix


前回の、電光掲示板の続編となります
年末飾りぽいガジェットも検討してみました。
Ichigojamと接続し、100均LEDとクリスマスツリー
を追加

[概要]
飾り部分は 材料費= 200円程度(8連LED+ツリー)で、
かなり見た目は楽しくなった気がします。

飾り用LED(8連)を改造して、
IchigoJamからBASICで点滅制御する、配線を追加してます。

LEDマトリクスは、前回は青系2連結でしたが、
赤LEDに変更しています。
( クリスマスぽい雰囲気にあわせた感じです。 )

*) 結果的には、もともと点滅表示のLEDの為、
 LED点灯時間をBASICで制御するタイミングより
 ichigoの電源(VCC)から、直結するほうがキレイでした。
 改造内容として、電池使わずに Ichigojam電源から、電源供給し
 飾り用LED(8連)を点灯させる程度の内容かと思います。

#動画
https://youtu.be/1nbo2hio7hQ

# 材料
8連LED(色=ゴールド) / 100円 (ダイソーさん)
Batterry Type / Decoration Lights (CHAMPAGNE GOLD)

クリスマスツリー(小さめ) / 100円 (ダイソーさん)

#配線
#飾り用LED(8連)
1)電池式100均LED(ゴールド)の
電池ボックス内の配線を、ニッパで切断し
ピンヘッダに、電源/GNDハンダづけしておく。
2) 裏側のdot matrix電源供給用のミニ版ブレボの
空きスペースに、ichigoからLED/GNDを結線


# dotMatrix側
電光掲示板(1)と、同じ。
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

#Basic (参考程度で, basicよく理解してません、、)


=== Update: 2015-12-07 ===
# 補足

制御とは関係ないのですが、
100均のゴールドLEDと、別の色
カラー(4色、同じく8連/点滅式)も購入していました。
これは改造してないのですが、電池で電源投入して
壁ぎわに配置しただけですが,飾りとしては良さげでした。
*)部品としても。何かに使えそうです。
LED8個使えて、100円は安いですね。

==========================


#関連の記事
Ichigojam連携してみました、電光掲示板(LED Dot Matrix)
http://knaka0209.blogspot.jp/2015/11/matrix-5.html

IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

黄色(LED Dot Matrix + LPC1114FN28)も追加。IoT型電光掲示板(2)

ニュース(タイトル)の配信機能も追加しました。電光掲示板(4)
http://knaka0209.blogspot.jp/2015/11/matrix-4.html

# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html



2015年12月5日土曜日

時刻/天気/ニュースのMQTT配信機能も追加してみました。LED Dot Matrix



前回の[IoT型電光掲示板]記事の続編となります、
時刻/天気/ニュースの自動配信を検討してみました。

[概要]
配信コンテンツが、複数混在するため、
ニュースのみ、先頭に記号[!]を追加
収集系プロセスは前回の天気/ニュースと同じ
動作的には、
時刻、天気、ニュース(1件) の繰り返し(永久ルーチン)
*) ニュースRSSの指定件数分、Loop


# 動画


https://youtu.be/i_5Q06qKYHg

# 準備
#収集系 -- 前回の記事を参考
天気
http://knaka0209.blogspot.jp/2015/11/matrix-3.html

ニュース
http://knaka0209.blogspot.jp/2015/11/matrix-4.html

# Github
https://github.com/kuc-arc-f/dot_matrix_1/tree/master/mqtt_pub_2/matrixPub_7nwt

# 配信系プロセス
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/mqtt_pub_2/matrixPub_7nwt/matrixPub_7nwt.py


# まとめ
今回は
前回までの 1種類の配信でなく、
複数の種類のコンテンツを混ぜる事で、さまざまコンテンツを
表示できるように修正しました。
今後のコンテンツの追加 (機能面も) 検討したいと思います。


#関連の記事
IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

Install mosquitto (over websockets) on Raspberry PI 2
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html


# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


2015年11月29日日曜日

LPC810のオンラインコンパイラで書込み編、Lチカも


NXP社のLPC810M02FN8 の書込み的な内容です。

[概要]
LPC810M02FN8
以前購入していた、マイコンで
使用方法が不明で放置ぎみでしたが
少し時間取れたので調べてみました。
結果として、オンラインコンパイラで使用できそうです。
使う理由としては、安価で, ATTinyなどAVR系のMCU(ほぼ同じサイズ)
と比較してRAM多めなので、使える場面はありそうです。

[仕様]
ARM Cortex-M0 32bit マイコン
30 MHz
ROM 4KB
RAM: 1KB
DIP8
GPIO6

短所:
ADCが無い。アナログ入力が不明でした。

長所:
安い(80円で購入)
小型, 8pin

# オンラインコンパイル
1) Platform= NXP LPC800-MAX を選択
このままビルドすると、NGみたいなので


2) va009039 さんの、プロジェクトをインポートします。
https://developer.mbed.org/users/va009039/code/lpc810_helloworld/

3) 機能の実装は、main.cppに追加、必要なファイル追加で
可能と思います。

# 書込み
1) 方法はいろいろありそうです、とりあえず Hex形式に変換しました。

bin2hex が一般的みたいですが、
win7の場合、下記に記載されている[HEXファイルツール] を使用しました。
https://developer.mbed.org/users/ytsuboi/notebook/getting-started-with-mbed-lpc1114-ja/

[DL先] http://home.att.ne.jp/wind/room_mario/soft/soft.html
GUI1でも操作可能みたいですが、コマンドラインで変換
lpc810_helloworld_LPC812.bin の場合。
HexTool lpc810_helloworld_LPC812.bin /B lpc810_helloworld_LPC812.hex /H

[lpc810_helloworld_LPC812.hex] が出力されます

2) 書込みTOOL, [Flash Magic], UART-シリアルアダプダでPCから書込み
http://www.flashmagictool.com/

秋月さんのページの、[LPC810書込みの例、参考資料]
http://akizukidenshi.com/catalog/g/gI-07191/
に従って配線し、書込みます。
5番ピンを7番ピン(GND)に結線すると、ISPモード(書込み可能)
になるようです。


[step1]
Com port: シリアルアダプダのPORT
Baud Rate : 9600

[step2]
[Erase all Flash+Code Rd Prot] にチェック入れる

[step3]
Hex File 指定

[Start]押す

# 概観
8pinで、かなり小さいですね。


# まとめ
ROMも少ないので、増えないように注意が必要ですね、
RAMも消費しないように工夫すれば、小型なので活躍できるかもしれません。

# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html



2015年11月28日土曜日

Ichigojam連携してみました、電光掲示板(LED Dot Matrix)


前回の、電光掲示板の続編となります
Ichigojamと接続して、文字を表示してみます、

[概要]
ネット接続の機能は、無いのですが、
Ichigojamのbasicで、文字の設定ができるので、
ファームの書換必要なく、文字の変更可能です。

今回は、専用モニタを購入してなかった為、
事前に、pcからUART経由でbasicを転送保存 0番ファイル(SAVE 0)しておき、
自動起動(電源投入時にボタン(BTN)押す)で、
マトリクスに、文字シリアル送信してます

*)連続稼動時は、PCに接続していません。

UART通信速度=115200
文字数を固定で、10文字としています。

#動画

#配線
電光掲示板(1)と同じ。
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

#Basic

# マトリクス制御ドライバ (mbed ファーム), Ichigojam用
https://github.com/kuc-arc-f/dot_matrix_i

*) テストしたのは、マトリクス横2連結までです。

#関連の記事
IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

黄色(LED Dot Matrix + LPC1114FN28)も追加。IoT型電光掲示板(2)
http://knaka0209.blogspot.jp/2015/11/matrix-2.html

ニュース(タイトル)の配信機能も追加しました。電光掲示板(4)
http://knaka0209.blogspot.jp/2015/11/matrix-4.html


# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html

2015年11月27日金曜日

ニュース(タイトル)の配信機能も追加しました。電光掲示板


前回の[IoT型電光掲示板]記事の続編となります、
外部のニュースサイトRSS(英語)を解析し、デバイス側に配信する仕組みを追加しました。

[概要]
pythonのHTTPライブラリ(requests)を使用し、RSS取得、解析
MQTT経由でPubします。
IoT側の仕組みは前回と同じ

# 動画

# 準備
1) python HTTP ライブラリ (requests)
pip install requests

2) mysql DB作成し、一時保存用のTABLEを作成しておきます。
========================
CREATE TABLE IF NOT EXISTS t_news (
  id int(11) NOT NULL AUTO_INCREMENT,
  title   text DEFAULT NULL,
  created datetime DEFAULT NULL,
  modified datetime DEFAULT NULL,
  PRIMARY KEY ( id )
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=248 ;
========================


# Github
https://github.com/kuc-arc-f/dot_matrix_1/tree/master/mqtt_pub_2

1) タイトルの10件程を配信
2) 各100文字を配信
*) 表示ドライバ側の制限で、各文節20文字程度に分割送信。

# 収集系プロセス
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/mqtt_pub_2/getNews/getNews.py

ニュースRSS解析、DB登録

# 配信プロセス
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/mqtt_pub_2/matrixPub_6n/matrixPub_6n.py

DBからデータ取得、MQTT-PUB配信
SUBは、デバイス側(ATmega328)から実行されます。

# まとめ
他のRSSサイトなども応用し、便利な使い方ができるか
検討したいと思います。


#関連の記事
IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

Install mosquitto (over websockets) on Raspberry PI 2
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html

MQTT 活用編。IoT型スイッチ Arduino EtherNet
http://knaka0209.blogspot.jp/2015/10/mqtt-2.html


# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html

2015年11月26日木曜日

天気予報の配信機能を追加しました。電光掲示板

前回の [ IoT型電光掲示板 ] 記事の続編となります、
外部の天気予報APIデータ(英語)をデバイス側に配信する仕組みを追加しました。

[概要]
天気予報APIアクセス用のpythonライブラリを使用し、MQTT経由でPubし
IoT側の仕組みは前回と同じ


broker: LAN上の RasPi 2
Pub: python の配信プロセス
Sub : IoTデバイス

# 動画

# 準備
1) python ライブラリ (Yahoo! Weather)
sudo apt-get install python-pywapi

2) mysqlでDB作成し、 一時保存用のTABLE を作成しておきます。
========================
CREATE TABLE IF NOT EXISTS t_wdat (
  id int(11) NOT NULL AUTO_INCREMENT,
  CITY   text DEFAULT NULL,
  COND text DEFAULT NULL,
  TEMP_H int(11) DEFAULT NULL,
  TEMP_L int(11) DEFAULT NULL,
  created datetime DEFAULT NULL,
  modified datetime DEFAULT NULL,
  PRIMARY KEY ( id )
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=248 ;
========================


# Github

https://github.com/kuc-arc-f/dot_matrix_1/tree/master/mqtt_pub

# 収集系プロセス
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/mqtt_pub/getWdat/getWdat.py

定期間隔で、天気APIデータ取得、DB登録します。
テストは tokyo (地域 ID )を指定
===
#tokyo
result = pywapi.get_weather_from_yahoo('JAXX0085')

# 配信プロセス
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/mqtt_pub/matrixPub_4w/matrixPub_4w.py

DBから天気予報データ取得し、MQTT配信(Pub)実行します。

# まとめ
今回は、
pythonの天気ライブラリのおかげで、カンタンに配信機能を実装できました。
クラウド側APIを利用すると、ガジェット的な表示でも。
応用できると便利ですね。

# 参考の記事
http://azunobu.hatenablog.com/entry/2015/05/10/144818

#関連の記事
IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)
http://knaka0209.blogspot.jp/2015/11/matrix-1.html

WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

Install mosquitto (over websockets) on Raspberry PI 2
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html

MQTT 活用編。IoT型スイッチ Arduino EtherNet
http://knaka0209.blogspot.jp/2015/10/mqtt-2.html


# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html





2015年11月23日月曜日

IoT な電子工作まとめ #IoT

=========================================
IoT/ M2M 関連をメインに、DIYな電子工作、
IoTガジェット的なコンテンツを全般に掲載したいと思います。
=========================================


IoT型電光掲示板 (LED Dot Matrix + LPC1114FN28)



天気予報の配信機能を追加しました。電光掲示板

ニュース(タイトル)の配信機能も追加しました。電光掲示板

時刻/天気/ニュースのMQTT配信機能も追加してみました。

Ichigojam連携してみました、電光掲示板(LED Dot Matrix)

年末飾りLEDも追加、Ichigojam連携(2) LED Dot Matrix

マルチバイト(日本語)表示も追加しました。IoT型電光掲示板(8)

PCB基板に実装してみました。IoT型電光掲示板

PCB基板(第二版)に実装してみました。IoT型電光掲示板(11)

ENC28J60+ATmega328P版、IoT型電光掲示板(10)

ドットマトリクス+ esp8266モジュール

天気RSSの表示、マトリクスでIoT



表示系デバイス関連
7セグLEDでデジタル温度計、IoTも

7セグ4桁LEDで 時計/デジタル温度計、IoTも

8mm RGB LED (OST4ML8132A)+LPC1114FN28 お試し編

RGB LED ランプも追加、デジタル温度計

デジタル温度計/時計 + RGB LED ランプ (おまけ編)

RGB LED  +LPC810 小型ランプ

RGB LED  +LPC1114FN28版 RGBランプ (おまけ編)

PCB基板実装編、デジタル温度計 ( 7セグ- 2桁 )

PCB基板実装、時計/温度 ( 7セグ-4桁 )

Deep Sleep 設定編

OLED+ BME280で、天気情報の表示

esp8266で、温湿センサー シールド風の基板

I2C ADC MCP3425で、アナログ入力編

Deep Sleepで OLED(有機EL)+DHT11 (電池駆動)

Deep Sleepで、7セグ+ LM60BIZ センサー、電池駆動

5V DC/DCコンバータで、esp8266 電源供給。

Moisture Sensor(Soil Humidity Hygrometer Sensor) お試し編。

Deep Sleepで、LCD AQM0806+LM60BIZセンサ

OTA お試し編


esp8266 +MCU 連携

試作レビュー編。mkuBord-44

SoftwareSerial受信、MQTT連動サンプル等を追加しました。 mkuBoard-44

少し小さめ。 アナログ最大4ピン 基板の試作してみました [mkuBoard-45]

アナログ+OLED(SSD1306) 作例を追加しました。 mkuBord-45

Moisture Sensor+ OLED(SSD1306) deepSleep mode, with Atmega328P [ mkuBoard-44 ]

NTP Clock(OLED) + analog Sensor(LM60BIZ) with ATmega328P (BETA version)

DeepSleep ,NTP Clock(OLED) + analog Sensor(LM60BIZ) with ATmega328P

Analog Sensor(Moisture / Temperature) +NTP Clock , with ATmega328P [ mkuBoard-44 ]

dht11 Sensor +NTP Clock , with ATmega328P  [mkuBoard-44]

Cheap ,RGB LED +Sensor +deepSleep, with Atmega328P

TFT LCD(ILI9341)+アナログセンサ

Cheap, NOKIA 5110+ Analog Sensor


Alexa + esp8266 関係

Alexa + IoT (esp8266) お試し編

Alexa + IoT (esp8266) Custom Skillの追加 (1)

Alexa + IoT (esp8266) Custom Skill(2) IoT連携


esp32 関係
ESP32 組立て編

ESP32 +OLED お試し編

ESP32, Deep Sleep テスト

ESP32 電力測定 ,3V3 2A

ESP32 電力測定 ,3V3 1.5A



Raspberry Pi 連携

Raspberry Pi 連携、電光掲示板

その他
LPC810M02FN8のオンラインコンパイラ活用、Lチカも

MQTT 関連



# 関連まとめ[ アグリな電子工作 開発者向けまとめ ]

黄色(LED Dot Matrix + LPC1114FN28)も追加。IoT型電光掲示板(2)



前回の 赤LED IoT型電光掲示板と似ていますが
色の異なるLED Dot Matrix( 別の型式 )を入手して、組み合わせてみました。

[概要]
LED側の仕組み、回路、ドライバ(マトリクス制御ファーム)
そのまま使い、
IoT側の仕組みも同じ、(前回のMQTTでWiz550io+ ATmega328P版)


# 部品 - 黄色
黄色ドットマトリクスLED 8x8ドット OSL641501-AY / 200[en]

LPC1114FN28 マイコン/ 180[en]
ピンソケット /抵抗 100ohm/ 配線など

# 部品 - 青色 (青は少し高めでした)
青色ドットマトリクスLED 8x8ドット OSL641501-AB / 300[en]

LPC1114FN28 マイコン/ 180[en]
ピンソケット /抵抗 100ohm/ 配線など

*) 調達ミスで[緑]を入手した為、動画は緑も使用しています。
予定では青を2連結の予定でした。

*) 関連URL/version 等は、執筆時点を記載しています

# 黄色 -概観、動画


# 青系(青緑) -概観、動画




# まとめ
コモン方向が同じ(Row側)であれば、同じFW( ファーム )で色の異なるLED型式
の組み合わせも可能となり、基盤側 ( ピンソケ+MCU ) が少なくても、
LED差し替える事により、色の変更が可能でした。
*) LED足をハンダづけする場合は別


#関連の記事
WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

Install mosquitto (over websockets) on Raspberry PI 2
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html

MQTT 活用編。IoT型スイッチ Arduino EtherNet
http://knaka0209.blogspot.jp/2015/10/mqtt-2.html


# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


2015年11月19日木曜日

IoT型電光掲示板の製作、MQTT活用 (WIZ550io版)


LED Dot Matrix (8x8) をIoTデバイスと組み合わせて、小型の電光掲示板
的なガジェット風のデバイスを検討してみたいと思います 

[概要]
IoT側の仕組みは、前回のMQTTでWIZ550io版
そのまま使い、周辺デバイス(ディスプレイ側)にLEDマトリクス
をUART経由で接続、文字を送信します。
クラウド上のweb画面や、定期送信プロセスから、リアルタイムに
文字の送信ができるように設計します。

LED マトリクス側:
Row側アノードコモンを選択してます。 横方向に連結
横スクロール表示
http://akizukidenshi.com/catalog/g/gI-05163/


[MQTT 構成]
broker : LAN上のmosquitto
publish(Pub) : IoT device
subscribe(Sub) : Browser Chrome

*)今回は、外部brokerの再接続が遅い時があり、自前(LAN上の)のMQTTサーバ
 環境にpub/subしてます。
 (クラウド上に設定すれば、外出先から表示内容の設定も可能のはずです。)

*) 関連URL/version 等は、執筆時点を記載しています

# 動画
https://youtu.be/xbA193WpA_Y

# pub (web画面)

表示する文字を入力し、pubします。

# 部品
赤色ドットマトリクスLED 8x8ドット OSL641501-ARA / 200[en]

LPC1114FN28 マイコン/ 180[en]

抵抗 100 ohm
ピンソケット 26P (8+ 8+ 10)
配線(ポリウレタン線 0.29mm )など

共通基盤(各マトリクスに電源供給etc)
ブレボ(ミニ) / 130[en]
コンデンサ 1000MF
*) 電源供給が足りる場合は、コンデンサは不要と思います。

# pin配線
正面から見て、
マトリクスの[突]目印を
左下に向けた配置を基準にしてます。

基盤を使わずに
マトリクス裏側に、マイコンをダイレクト配線

表面側にマイコン実装しない為、
裏側から見て、LPCのピン配置が逆になる点も
注意が必要です。



*) 電源、GND, UART 以外
[matrix] - [LPC1114]
1 (anode) -  dp26
2 (anode) -  dp25
3 (Cathode)- dp1
4 (Cathode)- dp2
5 (anode)  - dp27
6 (Cathode)- dp28
7 (anode)  - dp18
8 (anode)  - dp17

9 (anode)  - dp14
10(Cathode)- dp11
11(Cathode)- dp10
12(anode)  - dp9
13(Cathode)- dp6
14(anode)  - dp5
15(Cathode)- dp4
16(Cathode)- dp13

*) IoT側とのUART配線
ATmega328-TXを LPC-RX(1台目)
LPC-TX(1台目) - LPC-RX(2台目)
LPC-TX(2台目) - ATmega328-RX

# pinout - LPC1114FN28
# 配線 - 裏側の図
ゴチャゴチャとした配線ですね、、
*) 配線を細めにした為、マイコンが空中で フラつく為。
対策も検討したいところです




# コード関連
1) Fontライセンス:
今回 fontデータ(8 bit pattern)は、作成しておらず
検索した、関連プロジェクトを参考にしております。
Font ライセンスについては、下記ポリシーに従う事としてます。

https://developer.mbed.org/users/Sim/code/FontTest3/
http://www.geocities.jp/littlimi/misaki.htm

2) 表示可能な文字は、
英数文字
一部の記号:ASCII コード表の下記範囲の記号の一部
開始コード=0x20
終了コード=0x7A

*) 送信する最大文字数= 20文字(半角)
*)今回は、日本語は対象外です

3) Repository:  Github
https://github.com/kuc-arc-f/dot_matrix_1

[/mbed] mbed(LEDマトリクス制御ドライバ): bin形式
[/arduino] arduino: IoT側MQTT通信、マトリクス文字送信
[/test] テスト用
web画面: pub機能(文字送信用)


# テスト、文字、時刻の自動配信(Pub)
配信スクリプト追加してみました。 (paho-mqtt python)

Git:
https://github.com/kuc-arc-f/dot_matrix_1/blob/master/test/python/matrix2_R.py

[動画]
https://youtu.be/5lUYyEFhZlk

===== update : 2015-11-22 ====
# ブレボ版の配線図の追加
# テストの図

===== update : 2015-11-23 ====
# 配線図 - ユニバーサル基盤(C タイプ): 1個目 - 左寄せ(正面から見て)
1) 抵抗:全て表面側に実装。
上側: LED-PIN= 9,12,14 は、LED下 (LPCの上側に)
下側: LED-PIN= 1,2,5,7,8  LPCの右側
2) LED足16本は、ピンソケ(上=8本、下=8本)に装着し、
ピンソケをU基盤に実装する。

*) 左寄せ にするのは、2個目のLED右側面を密着させる為です。






# まとめ
1個目は、ブレボなどに配線して、動作確認後
同様の結線を
ユニバーサル基盤や、上記のようなダイレクト配線
で組み立てる。みたいな手順が確実かもしれません

# 参考の記事
http://playground.arduino.cc/Main/DirectDriveLEDMatrix

http://kousaku-kousaku.blogspot.jp/2008/07/arduinoled.html

http://www.geocities.jp/bokunimowakaru/diy/arduino/matrix_led.html

https://developer.mbed.org/users/Sim/code/FontTest3/

http://fukuno.jig.jp/822


#関連の記事
WIZ550io+ATMega328で IoT製作、MQTTも
http://knaka0209.blogspot.jp/2015/10/wiz550io-1.html

Install mosquitto (over websockets) on Raspberry PI 2
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html

MQTT 活用編。IoT型スイッチ Arduino EtherNet
http://knaka0209.blogspot.jp/2015/10/mqtt-2.html

# 関連まとめ [IoT な電子工作まとめ]
http://knaka0209.blogspot.jp/2015/11/iot-matome.html



2015年10月30日金曜日

MQTT アプリ実装編、paho-mqtt (python版)


以前の、センサ値のweb版リアルタイム表示に加えて
過去データの表示方法も検討したいと思います。

paho-JS版のリアルタイム表示は、便利なのですが。
過去データを表示するには、別途実装が必要かと思います。

今回は、
Subscribe 側サーバに、paho-python ライブラリを使用し、
mysql データベースに書きこみます。
サーバ環境は、前回 LAN上に構築した mosquitto(websockets版)

IoTデバイス側は、以前の wiz550io版
約2秒間隔で、センサ値を送信

# 準備 ライブラリ等
paho-mqtt python
sudo pip install --upgrade paho-mqtt

Mysql ライブラリ
sudo apt-get install python-mysqldb

# db作成し、登録用のテーブル作成しておきます。

# Sub側の処理
paho-mqtt (python) の sub.py を拡張して、実装していきます

pythonの常駐プロセスを起動しておき、pubデータを監視

Git:
https://github.com/kuc-arc-f/python-mqtt-sub-2

起動方法:
python sub2db.py

# pub/subのルール等
今回は下記としてます。
pub: デバイスに対して、1個の  Topicを割り当てる
例)
item/sensor-1 : 1台目
item/sensor-2 : 2台目
item/sensor-3 : 3台目

sub: topic範囲を指定する(対象のデバイス分)
item/#

*)web側のsubは、1台毎 topic(1 topic)を指定する。

# db登録
https://github.com/kuc-arc-f/python-mqtt-sub-2/blob/master/python-mqtt-sub-2/sub2db.py

on_message (イベントハンドラぽい)に、db処理を追加。
=======================
def on_message(client, userdata, msg):
clsSen= com_sensor.sensorClass()
print("on_message:topic=" + msg.topic+" ,pay="+str(msg.payload))
clsSen.saveSensor( msg.topic, str(msg.payload))
=======================

# テスト
python側常駐プロセスがsubすると、DB登録されます。

*) phpmyadmin で確認。
*) 別のクライアントIDで、前回のwebリアルタイム表示も可能(ログ)


登録側のデバイス( 参考 )



#まとめ
*) MQTT経由でDB登録まで完了できたので、表示系の実装はカンタンかと思います。
*) 短い周期のデータ書込みで、接続デバイス数が多ければ
  DB負荷も重たいので、工夫が必要かと思います。
  pubする間隔と長くすると、リアルタイム性が低くなるため注意も必要
*) クラウド側に設定すると、同様に過去データ取得/リアルタイム表示可能

# 関連の記事
mqtt 準備
http://knaka0209.blogspot.jp/2015/10/mqtt-1.html

wiz550 デバイス
http://knaka0209.blogspot.jp/2015/10/wiz550io-2.html

mosquitto(websockets版)
http://knaka0209.blogspot.jp/2015/10/mqtt-3.html

# 開発者向けのまとめ記事
http://knaka0209.blogspot.jp/2015/04/agri.html



2015年10月29日木曜日

Install mosquitto (over websockets) on Raspberry PI 2


以前に、準備編でapt-getでの mosquitto 関連のインストール記事を記載しましたが
今回は、LAN上に自前でMQTT サーバ (websocket対応)環境を構築したいと思います。
対応方法を調査しましたが 結構面倒な為。メモです
ソース取得して、コンパイル必要です。

OS: Linux (debian wheezy), Raspberry PI 2

[MQTT]
mosquitto 1.4.2
port MQTT: 1883
port Websocket : 8080

*) 既存のmosquittoを削除後、インストールしています。
*) 試しにLAN上にインストールする為、MQTT アカウントの認証を省略しています。

# 1)関連パッケージ
$ sudo apt-get update
$ sudo apt-get install build-essential python quilt devscripts python-setuptools python3
$ sudo apt-get install libssl-dev
$ sudo apt-get install cmake
$ sudo apt-get install libc-ares-dev
$ sudo apt-get install uuid-dev
$ sudo apt-get install daemon

# 2) libwebsockets
$ wget http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.4-chrome43-firefox-36.tar.gz
$ tar zxvf libwebsockets-1.4-chrome43-firefox-36.tar.gz
$ cd libwebsockets-1.4-chrome43-firefox-36
$ mkdir build
$ cd build
$ cmake ..
$ sudo make install
$ sudo ldconfig
$ cd

# 3) mosquitto 1.4.2
$ wget http://mosquitto.org/files/source/mosquitto-1.4.2.tar.gz
$ tar zxvf mosquitto-1.4.2.tar.gz
$ cd mosquitto-1.4.2

config.mk 修正します。
WITH_WEBSOCKETS:=no
[修正後]
WITH_WEBSOCKETS:=yes
$ make

===update 2015-10-29 =====
$ sudo make install
$ sudo ldconfig

# 4) mosquitto.conf ,setting
ホームに、mosquitto.conf を作成 (下記の内容)

######
pi@raspberrypi:~$ more mosquitto.conf
listener 1883

listener 8080 127.0.0.1
protocol websockets
######

# 5) rebootします。

# 6) mosquitto起動。
pi@raspberrypi:~/work/mosquitto-1.4.2$ pwd

/home/pi/work/mosquitto-1.4.2

*) 今回は、src フォルダで起動。
src/mosquitto -c ~/mosquitto.conf  -d

mosquitto_sub が動作しない場合がありました。
*)共有ライブラリの設定で解決しました。
===update 2015-10-29 =====
/usr/local/sbin/mosquitto -c ~/mosquitto.conf  -d



*) 起動後は Sub/Pub できました、
ブラウザからのアクセスも可能。(paho-js)

# 参考の記事
http://www.xappsoftware.com/wordpress/2015/05/18/six-steps-to-install-mosquitto-1-4-2-with-websockets-on-debian-wheezy/comment-page-1/

# 関連の記事
http://knaka0209.blogspot.jp/2015/10/mqtt-1.html

# 開発者向けのまとめ記事
http://knaka0209.blogspot.jp/2015/04/agri.html


2015年10月27日火曜日

WIZ550io+ Arduino Pro miniで、MQTT活用

前回のATMega328版と似ていますが
有線LANモジュール[ WIZ550io ]、Arduino Pro mini 3.3V の構成で
IoTデバイス検討したいと思います。


[概要]
前回の ATMega328+有線LAN 構成よりは、高めですが
小型のマイコンボード(Pro mini)との組み合わせとしてます。

テストは、MQTT- arduino EtherNet版のリレー制御
と似ていますが、スイッチ画面はwebで作成し
LEDのON/OFF としています。

[MQTT 構成]
broker : test.mosquitto.org
publish(Pub) : Chrome Android
subscribe(Sub) : IoT device


*) 前回と同様、テスト用の broker(MQTT Server), pahoのJSライブラリ等
を使用。

*) 関連URL/version 等は、執筆時点を記載しています

# 部品
arduino Pro mini 3.3V / 1243 [en]
WIZ550io v1.1 有線LANモジュール/ 1944[en]

降圧 3.3レギュレータ / 100[en]
470 マイクロF コンデンサ
マイクロUSB(メス) / 200[en]
# 配線


[Wiz550io] - [ Pro mini ]
MOSI - D11
MISO - D12
SCLK - D13
SCSn - D10

3V3 - 3V3
GND - GND
D7 に、LED接続

# 準備編
arduino-adk 1.6.5

以前のatmega328 編 と同様の為、詳細は省略します。

W5500 EtherNet
mqtt-arduino
ライブラリの追加が必要

# code
macアドレスは、wiz550 基盤に記載されていたアドレスに
書き換えました。

*) topic は、web側と合わせる事が必要です。
atmega328 編 と同様じの為、詳細は省略します。

# テスト
web画面( chrome Android )から、ON/OFF操作します。

ON 押すと、LED点灯します。
OFF押すと、消灯。

# センサ値のPublish も試してみました。
前回と同じスケッチ
表示: chrome Android
A0 に光センサ追加。



# 参考の記事
arduino-mqtt - lib

paho-mqtt javascript

# 関連の記事
MQTT 活用編。IoT型スイッチ Arduino EtherNet

# 開発者向けのまとめ記事

2015年10月22日木曜日

WIZ550io+ATMega328で IoT製作、MQTTも

有線LANモジュール[ WIZ550io ]、ATMega328P-PU の構成で
低価格なオリジナルのIoTデバイス検討したいと思います。

[概要]
WIZnet社製W5500を搭載したモジュール。SPI通信
100BaseTXで、性能的には高そうです。
前回の ENC28J60 有線LANよりは、高めですが
他の部品コストを下げて、低価格の構成できればと思います。

と似ていますが、スイッチ画面はwebで作成し
LEDのON/OFF としています。

[MQTT 構成]
broker : test.mosquitto.org
publish(Pub) : Chrome Android 
subscribe(Sub) : IoT device

*) 前回と同様、テスト用の broker(MQTT Server), pahoのJSライブラリ等
を使用。

*) 関連URL/version 等は、執筆時点を記載しています

# 部品
WIZ550io v1.1 有線LANモジュール/ 1944 [en]
atmega328P-PU (ブートローダ書き込み済) / 360 [en]
降圧 3.3レギュレータ / 100[en]
470 マイクロF コンデンサ
マイクロUSB(メス) / 200[en]

# 配線

[WIZ550io] - [atmega328]
MOSI - D11
MISO - D12
SCLK - D13
SCSn - D10

3V3 - 3V3
GND - GND

# 準備
arduino-sdk 1.0.5

# W5500 ライブラリの追加
https://github.com/Wiznet/WIZ_Ethernet_Library
README に従って、ライブラリ追加します。
https://github.com/Wiznet/WIZ_Ethernet_Library/blob/master/README.md

*)上記の追加後、webClient等のサンプルを実行して
正常に通信できる事を確認したほうが、良いかもしれません。

# mqtt ライブラリの追加 (pubsubclient-2.3)
http://knolleary.net/arduino-client-for-mqtt/
[pubsubclient-2.3.zip] が直接インポートできませんでした、
下記の対策行いました。

[pubsubclient] の名前でフォルダ作成しておきます
pubsubclient-2.3.zip 解凍し、
src 内のファイルを上記の [pubsubclient]にcopy
examples を[pubsubclient]にcopy

zip圧縮し、SDK から[Add Library]
([スケッチ]-[ライブラリを使用]-[Add Library])

# atmegaの下記書込みは、前回の記事を参考
http://knaka0209.blogspot.jp/2015/10/ATmega328-1.html

マイコンボード = ATMega328P/ Int.8MHz
書込装置= arduino as ISP

# code
macアドレスは、基盤に記載されていたアドレスに
書き換えました。

スケッチは、前回の MQTT - arduinon EtherNet
と同じ。詳細は省略します。

*) MQTT - topic は、web側と合わせる事が必要です。

# テスト
web画面( chrome Android )から、ON/OFF操作します。
ON 押すと、LED点灯します。
OFF押すと、消灯。


# センサー値のPublish追加しました。( MQTT )
上段はmqtt - Sub版でしたが、
Publish版でセンサー値の送信追加してみました。(約 2秒間隔)
表示版は、前回と同様の paho-JSライブラリで表示(ロギングのみ)
A0 に光センサー追加。


# code : Arduino SDK
topic を、web側とあわせます。

*) web表示側のコードは前回とほぼ同じの為、省略

# web 画面


# ケースも作成してみました。DIY編

加工は側面に穴あけ。だけですが、、
ドリル工具、精密ニッパで穴サイズを調整。

# 材料
プラケース / 100[en]
*) 100均さまで探したケース(ハガキ用らしい)
少し大きめでしたw (基盤に対して)

# 反対側の図
 手作業での穴あけが、ギザギザでいまいち。


# http センサ値の送信も追加しました。
上段での、MQTT 通信に加えて、http 送信機能も追加しました。

# code : arduino SDK
WIZ550io_arduino_http_1.ino

サンプルの webClient を参考に実装しています。
*) sdk :[ファイル]- [スケッチの例] -[EtherNet]-[webClient]
macアドレスは、wiz550io 基盤に記載されたアドレスを入力。


# BaaS に転送して、センサ値の保存

# グラフの描画も


# まとめ
正直、
開発ボード使用して(UNOとか) 開発したほうが はるかに楽です。
抵コスト化等で、複数製作する場合は検討しても良い構成。
MQTT経由のスイッチ応答性は速くて、
使える範囲かと思います。

# 参考の記事
arduino-mqtt - lib

paho-mqtt javascript

# 関連の記事
MQTT 準備編。Arduino EtherNet, paho-MQTT(over WebSocket)
http://knaka0209.blogspot.jp/2015/10/mqtt-1.html

MQTT 活用編。IoT型スイッチ Arduino EtherNet

ATmega328P-PU に、スケッチを書き込む (ARDUINO as ISP)

# 開発者向けのまとめ記事


2015年10月20日火曜日

MQTT 活用編。IoT型スイッチ Arduino EtherNet

[概要]
前回の MQTT準備 の続編となります、
デバイス側からのPublishと逆のパターンで、
デバイス側からSubscribeし、web画面からのPubデータ(スイッチのON/OFF)
を受信
ONの場合、リレー回路をON、LED(12V)を点灯
OFFの場合、リレー回路をOFF、LEDをOFF
クラウド経由で、周辺デバイスの ON/OFFのスイッチ機能を
実装してみます。

[MQTT 構成]
broker : test.mosquitto.org
publish(Pub) : Chrome Android
subscribe(Sub) : IoT device

*) 少し高めの電圧流す為、ご注意下さい。
*) 前回と同様、テスト用の broker(MQTT Server), pahoのJSライブラリ等
を使用。

*) 関連URL/version 等は、執筆時点を記載しています

# 部品
今回は、LED側の電源を
DCアダプタ (19V 程度)を使用。
降圧レギュレータで、12Vまで下げて電源供給しています。
*)入出力コンデンサは、レギュレータに付属のもの
*) 12V出力側周辺に、ヒューズ等追加したほうが
良さそうですが、短時間のテストの為 直結しています。

リレーモジュール 5V
LED 12V / 80[en]
降圧レギュレータ 12V / 100[en]
抵抗 1,100 ohm (1000 + 100)
DCジャック -メス (DIP, 内径= 2.1mm)
DCアダプタ -19V(1200 mA)
*) 部品箱で適当に探した電源、おそらくPC用

*)その他、マイコン周辺は前回と同様。

# 配線
LEDは、リード線(アノード / カソード) に電線をハンダづけ
リレー出力端子は、小さい為、電線をハンダづけ
してます。

# web スイッチ操作画面
chrome Android
カンタンな ON/OFF操作のみ実装。


# code

#arduino-sdk , mqtt_arduino_relay_2.ino
arduino-adk 1.6.5
前回と同様、mqttライブラリが必要
スケッチの例 -[PubSubClient] - [mqtt_basic]
を参考にしました

Topicを適当に決めて、Pubしてみます
char mTopicIn[]="test-topic-1020A/relay";

D7に、リレー配線しておきます。




# web スイッチ画面
paho-mqtt JS版使います。
mqttws31.js, jquery 読み込み

# JS : mqtt-pub-sample-2-app.js
mqtt-publishの実装


# html : mqtt-pub-sample-2.htm
スイッチ操作画面

# テスト
web スイッチ画面から、
ON 押すと、LED点灯します。
OFF押すと、消灯。

# まとめ
web画面のON/OFF操作から 1秒弱で、
デバイスが動作しました。
リアルタイム操作としては、ある程度使える範囲かと思います。
室内のスマホ等から ON/OFFしてみると、あまりインパクトないのですが
クラウド経由の為、外出先からでも同じ動作になるはずです。
(ネット接続可能な場合)


# 参考の記事
arduino-lib
http://knolleary.net/arduino-client-for-mqtt/

paho-mqtt javascript
http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/

# 関連の記事
http://knaka0209.blogspot.jp/2015/10/mqtt-1.html

# 開発者向けのまとめ記事
http://knaka0209.blogspot.jp/2015/04/agri.html


2015年10月13日火曜日

ENC28J60+Arduino Pro mini(3.3V) でIoT製作、(番外編)


前回の [ ENC28J60+ATmega328 ] 記事の続編となります
sparkfun の[ Arduino Pro Mini 328 - 3.3V/8MHz ]を接続して
格安でオリジナル仕様のIoTデバイス製作を検討してみました。

[概要]
[ATmega329P]の構成より高額な為、価格面では
おすすめできる構成ではないので、番外編としてます。
ボードのサイズが
小型で、3.3V仕様のArduino 互換としては、少し安め(9.95 USD)
の機種かと思います。
*) 海外通販だと4ドル前後でもありそうです。海賊版?

Microchip 社の[ENC28J60] EtherNet Controller の対応モジュール
有線LANで、10 base-T と速度は遅めですが、
マイコン連携できる通信デバイスとしては、格安かと思います。
[Arduino Pro Mini - 3.3V ](30 pin) 接続して、
クラウド連携し、Lチカ(LED制御)までテストしてみたいと思います。


*) 関連URL,部品価格は執筆時点です。

# IDE 環境
ARDUINO SDK 1.6.5
UART経由で、書込み。
*) UART - シリアルモジュール使いました。


# 電源まわり
ベース電源= 3.3V 仕様
入力:マイクロUSB(5V /1A)
降圧 3.V3レギュレータで, 3.3Vに下げる。

# 部品
Arduino Pro Mini - 3.3V / 1243 [en] (スイッチサイエンスさん)
ENC28J60 イーサネットモジュール 950[en] (aitend さん)
電解コンデンサー 470マイクロ F   / 10[en] (秋月電子さん)
絶縁ラジアルリード型積層セラミックコンデンサー0.1μF50V (1個当たり)
 10[en] (秋月電子さん)
3.3Vレギュレータ-降圧 / 100[en]
マイクロUSB - メス / 200[en]

#ボードのサイズ
性能が異なる為、サイズ比較する意味はないのですが
AVR系なマイコン 並べてみました。

左から
Pro mini/ ATmega328/ ATtiny85/ ATtiny861

片側= 12 pin程度で、ATmega328Pより
長編方向は短い

# 配線 - レイアウト

基盤上に
[Reset]ボタン
MCU上側にLED(電源投入後に点灯する)
*) ピンヘッダは付属してない為、別途入手して
 ハンダづけ必要あります。(30 pin)

sparkfunの回路図を参考にしました。

上部の、IOピンは6P
GND, GND, VCC, RX, TX DTR
に接続されているようで、基板から電源供給している場合は、
右3P, 
RX, TX DTR を結線すれば、スケッチ転送はできそうです。

30 PIN
右=12 pin,左=12 pin,上= 6 pin
(Reset を下にした時)

下記の配線
[ENC28J60] - [Pro mini]
SCK - D13
SO - D12
SI - D11
CS - D8

VCC,GND を結線
D7 にLED 配線


# Code, HTTP受信と Lチカ
[Arduino Uno] 接続版と同じ、詳細は省略します。
http://knaka0209.blogspot.jp/2015/10/enc28j60-1.html

# スケッチ書込み
[ツール]-[ボード]- Arduino Pro or Pro Mini
を選択

[プロセッサ]- ATmega328 (3.3V, 8MHz)

シリアルポート設定済みを確認

書込みます。



#テスト : クラウド連携して、LEDの ON/OFF
クラウド側から、LED点灯時間を取得し、レスポンス解析、時間を 数値型に変換、
LED=ON, OFFするタイミング監視、LED =OFF


*)
電源投入後の60秒前後は、TCP受信処理が失敗する場合がありました
LAN側が安定するまで、少し時間がかかるのかもしれません。

*) デバック時に、ログ見る場合は
[UART-シリアル変換]モジュールを、Pro mini側 - UART(TX/RX)に
クロスで結線すると通信できます。

# DIY的にケース作成してみました。(仮の)
材料: ケース(100均で, 2個で100[en] 。食品保存用 )
ドリル工具と、精密ニッパ 側面に穴あけ。
電源、LAN ケーブールを通します。

上面からの図

*) LANモジュールが大きめの為、少し大きめのケースを選びましたが。
全体的のコンパクト化も検討が必要と思いました



#参考の記事
https://www.sparkfun.com/products/11114

# 関連の記事
ENC28J60+ARDUINO でIoT製作 (テスト編)
http://knaka0209.blogspot.jp/2015/10/enc28j60-1.html

ENC28J60+ATMega328P でIoT製作
http://knaka0209.blogspot.jp/2015/10/enc28j60-2.html


# 開発者向けのまとめ記事
http://knaka0209.blogspot.jp/2015/04/agri.html


google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social