ラベル Amis の投稿を表示しています。 すべての投稿を表示
ラベル Amis の投稿を表示しています。 すべての投稿を表示

2016年6月18日土曜日

グラフ表示(Amis)

せっかく環境データをmysqlに放り込んでいるので、
グラフ表示できるようにしてみた。


jqplotを使うとなんとなくそれっぽく出来上がるから良いね!


2016年6月10日金曜日

やっと動くものになった(Amis)

今年に入ってから少しずつやっているAmis(http://continue-to-challenge.blogspot.jp/2016/02/amis.html)がようやく動くものになった。
いろいろ初めて/久しぶりのこともあり、随分と時間がかかってしまった。
でも
・基板切削 これ とか これ
・ARM向けのプログラム これ これ
・Linuxでのシリアル通信
・DD-wrtでphpを使う
・node.jsでGmailの送受信 これ
・LinuxでFIFO これ
・CSSフレームワークを使う
といろいろなことをやったものだ。

その他にもgitを使うようになったり、そのためにgogsインストールしたりと
随分開発環境も変化した。

 構成図

画面


しばらくエージングしてみよう。
センサーの変化でメールが来たり、WEBからハードが制御できるのは面白いね。

つづく

2016年5月2日月曜日

さぁ大型連休の中間点だ(imodela+eagleで基板切削)

GWの前半を使って、Amisの基板を切削した。
今度は、elecrowとかに発注してみたいけど、複数作るものではないので、切削で十分。

部品をハンダ付けするだけなので、作業自体は相当短縮できる。
ただし、GNDベタパターンなので、サーマルランドにしたとしても、容量の大きいハンダゴテが必要になった。


ユニバーサル基板の試作とはまた違った趣があって、いいですな。
まだ、光センサーの接続が残っているけど、まずはこんな感じで。
あとは、適当なケースに入れて、外部入力を接続すれば、最初の目的は達成できそう。
http://continue-to-challenge.blogspot.jp/2016/02/amis.html
これの赤外線出力以外を実現。

まだまだやりたいことがたくさんあるけど、GW中に完成できるかな・・・。

2016年4月29日金曜日

さぁ大型連休だ(久しぶりにimodelaで基板切削)

ずっとやりたかった基板切削。久しぶりに思い立った。
いろいろ忘れているので、また試行錯誤になってしまった。

今回はAmis用の基板を切削する。





基本的には過去の自分の投稿通りなのだか…
http://continue-to-challenge.blogspot.jp/2014/11/imodelaeagle.html
http://continue-to-challenge.blogspot.jp/2014/11/imodelaeagle_29.html

いくつかハマった点。
・eagleでベタパターンどうするんだっけ?
→ポリゴンを使う。名前をGNDにする。
http://www.piclist.com/images/www/hobby_elec/eagle32.htm

・未結線ってどうやって調べるんだっけ?
→Ratsnestボタンでウィンドウ左下に未結線数が出てくる
http://easylabo.com/2014/07/eagle/1609/
→で、結局どこなのさ? プラグインで表示可能
http://eeebaka.blog47.fc2.com/blog-entry-202.html

・ガーバーデータの出力ってどうやるんだっけ?
http://www.p-ban.com/gerber/eagle.html

そしてひたすら切削。。うるせーー

 久しぶりすぎて水平がとれていなかったらしい。
面だししなきゃOrz

2016年4月3日日曜日

AmisとCGIとの接続(名前付きパイプFIFO)

概要
webからの操作で、AmisボードのLEDを操作する準備として
Amisボードと通信するプログラムと、webでユーザー操作を受け持つcgiとの接続を検討した。

構成
dd-Wrt上のLighttpd(Port81)を使ってwebサーバーを立ち上げる
仮にAmiscommServer.cgi とする
Amisボードとの通信プログラムをAmis-Commとする

考え方は以下とか本を参考にした。
http://www.ncad.co.jp/~komata/c-kouza12.htm
C言語による実践Linuxシステムプログラミング

web側はまだ作成中

CSSフレームワークを使うとなんとなくそれっぽくできるから良いね。
foundation.js を使った。



2016年3月27日日曜日

node.jsでGmailの送受信

ようやく見えてきた

概要
やりたいことは、作成中のAmisの上位側にあたるサーバーの作成(AmisServerとする)
1.Amisからの通知を受けてGmailでメール送信を行う
2.Gmailでメール受信してAmisに通知する

この試作を作ってみた。

構成
巨人の肩に乗らせて頂き、node.jsを使ってみた。
inboxというライブラリが優秀なので、受信ほぼこのまま。
送信は別のライブラリがいるらしいが、ssmtpで送信する方法を試していたので、
今回はこっちを使用した。

必要なライブラリnpm install inbox
npm install iconv
npm install express

iconvが無いと文字化けする
expressはwebサーバーを簡易につくるために使用している

備考
エンコードがメールによって異なっていたりして、判別が微妙
yahooメールは iso-2022-jp?
gmailはbase64やquoted-printable??

送信はsendmail.shを呼び出しているだけ
実態はssmtpを呼び出しているだけ
来週にでもちゃんと作ろうOrz

参考
inbox使用方法
https://github.com/pipedrive/inbox
http://www.jonki.net/entry/2014/05/11/022046
http://liginc.co.jp/web/service/facebook/153850

VSCODEを使用したnode.jsのデバッグ方法
http://www.atmarkit.co.jp/ait/articles/1508/27/news020_2.html


以下ソースコード
app.js
 +ext-program.js
 +gmail-imap.js


2016年3月21日月曜日

AmisをARMボード(dd-wrtルーター)に移植できた

ようやく思い通りの動作になった。

原因は、気づけば大したことがないのだが、シリアル通信設定が間違っていた。

 stty -F /dev/ttyACM0 -a
speed 9600 baud;stty: /dev/ttyACM0
 line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -tostop -echoprt echoctl
echoke

これを修正して
 stty -F /dev/ttyACM0 -echo
実行してみると、問題なく動作した。
なので、プログラムを修正Orz.
newtio.c_lflag = ~ECHO;
これで目的の動作になった。

 その他
ドライバのクロスコンパイルのやり方らしきものを見つけた。
気になる。
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=70462

2016年3月20日日曜日

AmisをARMボード(dd-wrtルーター)に移植中

連休だけど、なかなか時間がとれない…。

ついにAmisをクロスコンパイルしてARMボードに移植しようと思う。

準備
以前にできたと思っていたOpenWrtのツールチェインではうまく行かなかった。
原因究明する気力もなくなったので、debianのEmdebian-toolを使うことにした。

http://continue-to-challenge.blogspot.jp/2016/01/arm.html

動的リンクができない。なんでかなー。LD_LIBRARY_PATHにLIBを指定してもだめ。
仕方がないので、とりあえずは静的リンクでやってみることにした。

debianにeclipseを入れて開発環境ごと移動した。不本意だが仕方ない。

eclipseでクロスコンパイルかつ静的リンク で生成する方法
忘れそうなので、メモ
(1)プロジェクトの設定で、CrossGCCを選択する
(2)CrossSettingのPrefixに「arm-linux-gnueabi-」を入力する
(3)Cross G++ LinkerのAll optionsに「static」を入力する



いざコンパイル
びっくりするくらいに何も問題なく成功したが、
実行してみると問題発生Orz
 シリアル通信がおかしい。PICマイコン側からErr応答しかされない。

なんでかなー。もう少しだと思ったのに。

その他
 なぜか、水曜日のカンパネラが頭から離れない。洗脳ソングですな。



2016年3月12日土曜日

もう少しでソフトは完成(Amis)

すこし時間がとれたので、しばらくできなかったAmisを少し完成に近づけた。

成果
今日はPICマイコンに接続されたセンサー類の情報をサーバーに保存する部分を作った。
やっていることは単純で、定期的にPICに対してセンサー類の測定値を要求し、
それをサーバーに送付するもの。
サーバー側ではそれをmysqlにぶち込んでおく。

センサー -i2c-> PIC -USB-> linuxPC1 -> http -> linuxPC2 -> mysql

ぶち込んだ結果がこれ、 温度・湿度・照度の順
照度はcdsのad変換値なので、lxではない(^^)まぁ目安として。

このソフトをdd-wrtが入っているルーターに移植すればソフトはほぼ完成!
ハードはどうしようか、また作るものちょっと面倒になってきたしな。
 
 その他
1.foundation(NW.js?)をすこし触り始めた
    linuxでguiソフト作るのが大変そうだから不精したいという後ろ向きな理由Orz
   Javaでもいいんだけど、せっかくなので、ね。

2.久しぶりに椎名林檎を聞いた。いいな。
 

2016年2月28日日曜日

見通しが立った(Amis)

今年に入ってから少しずつ試作進めてきたものが見通しが立ってきた。
他の人が手垢がつくほどやり尽くされているけど、
自分でやってみたかった。

概要
扉センサーや人感センサー、明るさ、温度・湿度センサーを監視して、
異常な場合にはメールで通知するというもの。それだけ。
汎用出力があるので、光や音で知らることもできる。
赤外線出力もつけるので、家に帰る前にエアコンつけたり、
長期不在時に在宅を装うこともできるはず。
一体に何に怯えているんだろうか・・・。
名付けてAmis(エイミス)フランス語で「ともだち」 。ぜんぜん関係ないね。

構成
ArduinoとかRaspberryPiとか使えば簡単なのはわかっている。
だがしかし、あえて、この構成にしたかったのだ。なんとなく。

[センサー類]-I2cなど-[PICマイコン]  -USB(CDC)-[linux(1)]-[linux(2)]

・センサー類
  ディジタル入力×5
  ディジタル出力×3
  明るさセンサー これはCdsの値をPICのADで読む
  温度・湿度センサー(HDC1000というやつ)秋月電子で売っていた I2C接続
http://www.tij.co.jp/product/jp/HDC1000
  赤外線出力

・PICマイコン
  PIC18F2455 余っていたので
  microchipのcdcサンプルを参考にした

・Linux(1)
  最寄りのルーター dd-wrtが入っている。リビングにある。
  これにUSB経由でPICマイコンを接続するもの。
  
・Linux(2)
  メール通知用 mageiaが入っている。
  ONUの近くにある。

進捗
 ・センサー類
   赤外線出力がまだ
   その他は、だいたいOK

 ・PICマイコン 
   ファームはだいたいOK
   基板起こす? 悩み中。

 ・Linux(1)
   PICとの通信プログラムは、開発環境ではOK
   あとはARMに移植できるか・・・!?

 ・Linux(2)
   メール通知するだけなので、ほぼOK
   ssmtpを使用

その他
  花粉がすごい。体がだるい。でも頑張るぞ!