2016年10月18日

IoT試作3

前回は、MCP3002 で2Chのアナログデータを取得したが、今回はMCP3208で8Chのアナログデータを取得し、諸々データの確認を行った。

Ardinoとの配線は、下記を参照。

161018_103900.jpg


161018_103920.jpg


Ardinoのコードは、上記サイトのものはうまく行かなかったので、SPIのソースをネット上で探し、それを元に作成。
8Chを20回読み込むのに、およそ7m秒ぐらい。

Delphiもちょっとした機能を確認しながら作成できるが、マイコンもArdinoのようなもので簡単に(最初は簡単でなかったけど)確認できるの便利である。



posted by しんくそふと at 16:40| Comment(0) | TrackBack(0) | 開発TIPS

2016年10月13日

IoT試作 2

前回と同じで、ポテンショメータ(ボリューム)2個の動きを、Androidでモニタ。

今回は、ESPr Developer(旧名:ESP-WROOM-02開発ボード) と、ADコントローラ MCP3002の組み合わせで、試作。
ESPr Developerなんで、通信は、Wi−Fiです。

ハードの配線は、上記組み合わせでの実例が、ネットに多数あったので、それを参照に作成。
基本は、3.3Vベースだと思うが、ESPr DeveloperのVOUTポート使って、5VでMCP3002とポテンションメータを使用。
VOUTポートは、ESPr Developerにあるけど、ESP-WROOM-02にはありません。

161013_100126.jpg

ESPr Developerは、アナログデータは1Chしか取得できないので、MCP3002を使って、2Ch取得。
Ch単位に20件ごと取得し、それぞれ平均した値を、送信する仕組みにしている(この処理で、0.1mSecほど)

Wi−Fi側は、UDPを使って、Android側は、100mSec単位でデータをリクエスト。時々データの欠損が出ている。
こういったケースで、ネット上では、UDPを使っているケースが多いが、TCPではダメなのかちょっと不明。後日TCPでも試してみようかと思う。


posted by しんくそふと at 10:37| Comment(0) | TrackBack(0) | 開発TIPS

2016年10月10日

ESPr Developer ファームウェアの書き込み

ESPr Developer(旧名:ESP-WROOM-02開発ボード) ファームウェアの書き込み

1.FLASH 押す
2.RESET 押す
3.RESET 離す
4.この状態(FLASH 押下)のまま、スケッチ書き込み。
5.FLASH 離す(書き込みが始まった時点で離してもよいみたい)
6.RESET 押す/離す




posted by しんくそふと at 09:53| Comment(0) | TrackBack(0) | おぼえ

2016年10月06日

IoT試作

Arduino + Bluetooth + Android(FireMonkey)で試作。

ポテンショメータ(ボリューム)の動きを、Arduinoで監視。
Bluetoothで送信。

161006_155345.jpg

Androidでモニタ。

161006_155441.jpg


ポテンショメータ(ボリューム)の位置に連動して画面が追随。
161006_155518.jpg

161006_155526.jpg

Arduino側で、データを送信する際、若干Delayを入れないと、Android側で、データがうまく受信できなくなるので、ほんの少し反応が送れた感じになるが、ポテンショメータの動きに合わせて、画面も追随できている。








posted by しんくそふと at 16:36| Comment(0) | TrackBack(0) | 開発TIPS

2016年10月05日

BDE ⇒ FireDAC変換 その4 (TFDMemTable活用)

BDE ⇒ FireDAC変換の前半部分で取り上げた、TADMemTable(XE5以降はTFDMemTable)使用部分の補足です。

古くからのプログラムでは、Paradoxを多々使用しているものがあります。
この場合、Paradoxには永続的にデータを保存する使い方と、一時的に使用する使い方の2種類があると思います。
後者のケースとしては、編集用にサーバーのデータをクライアントへ取り込み編集後サーバーへ戻すケースや、印刷時に直接サーバーデータをQueryなどで取り出したデータを使用しにくいく一旦Paradoxに取り込んで編集後、印刷出力という方法を使っている。

この場合、コンポーネントはTTableを使用している。このケースのFireDACへの変換には、TADMemTableが最適である。
具体的には、dfm書き換えで、TTableをTADMemTableに置き換えるだけです。(TTableについては、Field定義は事前に取り込んでおく必要はあります)
弊社の今までの実績では、LookupFieldやCalcFieldもそのままの定義、コードで使えます。また、イベントも変更無く使用可能です。

注意点としては、TADMemTableは、オンメモリで処理しますので、データの処理状況確認等が必要な場合は、必要なタイミングでSaveToFile()メソッドなどで、ファイルに出力することになります。

FDQueryで読み込んだデータは、
   FDMemTable.Data := FDQuery.Data;
でコピーできます。処理前は、FDMemTableは、Closeしておくことが必要です。

posted by しんくそふと at 09:18| Comment(0) | TrackBack(0) | Delphiマイグレーション