GAE+独自ドメインにSSLを設定するのにGoogle Appsが必要だったが
最近は違うようなので試してみました。
CSRを作るときにコマンドが必要だけど
サーバーに証明書を転送したり、設定ファイルを変更したりは必要なくて楽でした。
- url: /.* script: _go_app secure: always
住んでるマンションは「Bフレッツ マンションタイプ」だと思っていたら
いつの間にか「フレッツ 光ネクスト」になっていたらしい
「フレッツ 光ネクスト」が始まったころに切り替えるの大変ですみたいにNTTの人言ってたのに...
「Bフレッツ ハイパーファミリータイプ」、および「Bフレッツ マンションタイプ」の「フレッツ 光ネクスト」へのサービス移行について|フレッツ公式|NTT東日本
https://flets.com/news_release/service-migration.html
ということで「IPv6アドレスを用いたインターネット接続」が使えるみたいです。
公式サイト見てもよくわからないです
サービス概要 | OCN 「フレッツ光」対応 IPv6インターネット接続
http://service.ocn.ne.jp/ipv6/access/
接続機器とか買わなくてもYAMAHAのルーターはIPv6 PPPoEに対応しているので、
Web設定からIPv6 PPPoEを選んでIPv6用の接続情報を入れると、ルーティングしてくれます。
ただIPv4のDNS使うとAAAAレコードがフィルタされるようなので、
ルーターでDNSの問い合わせ先をIPv6優先にしておくと対応サイトはIPv6で接続してくれます。
ブラウザにインジケーター入れておくとIPv6対応サイトが分かって面白いです。
googleはだいたいIPv6でつながるのかな
今回使用したボードはこれです
FRISKケースに入るBL600基板 REBL600FR - ランニングエレクトロニクス
http://www.runele.com/ca1/24/p-r-s/
UART-USB変換ケーブルを使いました
UARTのピンをつけてもFRISKケースに入る
UwTerminalを使えばsmartBASICをコンパイルして転送とかできます
あとATコマンドを使って大体のことはできるみたい
ファームウェアバージョンを表示するときは、こんな感じ
ATI 3 10 3 1.2.54.0 00
内部のファイルシステムのファイル一覧を出すとき
ATI+DIR 06 test1 00
・新しめのファームウェアがLaird TechnologyのサイトにあってUARTで更新できそうだけど
1.5以上のファームウェアからしか更新できないのかな
(もとから書いてあるファーム1.2.54.0からやってみたがファイルシステムが変なことになる^^;)
・UwTerminalは最新ファームウェアのサンプルフォルダにあるものが最新らしい
・サンプルソースがライブラリを呼んで終わり、みたいなのが多くて
変更しようとしたときどこから手を付けてよいのかわからない
BLEおいといて、とりあえずI2Cで遊んでみる
Android Bazaar and Conference 2014 Spring http://www.android-group.jp/conference/abc2014s/に参加してきました
Androidに関係のないGalileoを使った物を展示してました(^^;)
まずセンサーデータはXBeeのメッシュネットワークを使用してGalileoに送ります。
・温度センサー(LM60BIZ)は、XBeeのA/D変換を使って周期的に計測
・温度,湿度センサー(AM2321)、気圧センサー(LPS331)は、LPC812にI2Cで接続して周期的に計測
LPC812のところをLPC810で出来ると良いなぁ
GalileoではXBeeからのデータをまとめて、JSONにしてサーバー(ConoHa VPS)に送る。
データの処理にはFluentdを使います。
1. GalileoからFluentdのhttp Input PluginにPOSTします。
2. FluentdのOutput PluginでGrowthForecastとMongoDBに送ります。
Fluentd: Open Source Log Management http://fluentd.org/
GrowthForecast - Lightning fast Graphing / Visualization http://kazeburo.github.io/GrowthForecast/
あとはGrowthForecastがいい感じにグラフにしてくれます。
Ethernet Libraryを使ってHTTPでサーバに接続するプログラムを作ったのだけど
EthernetClientのstop関数を呼ぶとログに** B0100000063f694が出て動作が停止する
ググルとこんなのあるけど同じことしても解消しなかった
Ethernet Library: sketch crashes when remote cl... | Intel Communities
このファイルの\arduino-1.5.3\hardware\arduino\x86\libraries\Ethernet\EthernetClient.cpp
stop関数のソース見てたら_inactive_counterにアクセスしているあたりで
エラーが出ている。
void EthernetClient::stop() { if (_sock < 0) return; connect_true = false; if (_inactive_counter != NULL) *_inactive_counter = 0; if(_sock != -1){ close(_sock); _sock = -1; // Sketches do a Ethernet client = server.available() - which means a copy constructor is used // Hence any server which populated a pclients[idx] - won't actually see the socket closed - since // his client was copied - not given a pointer to.... pcleint[] in EthernetServer.cpp _sock != -1 at this point // make it so ! if(_pCloseServer != NULL){ _pCloseServer->closeNotify(this->id); } } }
よく見ると_inactive_counterが初期されてないように見えるので、
とりあえずコンストラクタでNULLにしてみたらエラーが出なくなった
EthernetServer.cpp
for(int sock = 0; sock < MAX_SOCK_NUM && success == 0; sock++){ if (pclients[sock]._sock == -1){ pclients[sock]._sock = ret; pclients[sock]._pCloseServer = this; pclients[sock].connect_true = true; pclients[sock]._inactive_counter = &_pcli_inactivity_counter[sock]; success = 1; } }
EthernetServerから使われるときはポインタに値が入るみたいだ
これでいいのかな...
サイトをいままでWinSCPでぽちぽち更新していたのですが、やっぱりgitにpushしたら更新されると良いですよね
なんか今風のWebサービスがあったのでhttp://wercker.com/を設定してみた
今回の流れ
git push -> Bitbucket - git -> wercker - capistrano -> さくらのVPS(反映と再起動)
boxはruby
buildでテストとか実行するらしいが今回は無しで
SSHの接続のためのkeyを作っています
box: wercker/ruby services: - wercker/mysql build: steps: - bundle-install - bundle-package deploy: steps: - script: name: make .ssh directory code: mkdir -p "$HOME/.ssh" - create-file: name: write ssh key filename: $HOME/.ssh/id_rsa overwrite: true hide-from-log: true content: $WERCKER_CAP_PRIVATE_KEY_PRIVATE - script: name: set permissions for ssh key code: chmod 0400 $HOME/.ssh/id_rsa - bundle-install - cap
Key managementが変わったようでwebからkeyを作ることができるようになって、private keyが見れない感じに
Capistranoを一度も使ってなくて調べながらなんとかSSHで接続してファイルが反映されるところまではできた。
Capistrano2と3が違いすぎて辛い
rubyのサーバを再起動したいのだけど調べ中
Intel Galileoは、Intelが発売したArduino互換なx86 CPUのボードかな
Arduino IDEでプログラムできる。
ネットにあるArduinoのライブラリとか使えるはずなので試してみた
XBeeを複数つないで通信したいのでAPIモード用のこのライブラリを使う。
UART1を使いたいのでこのようにしてそのまま使えた。
XBee xbee = XBee(); ... Serial.begin(9600); Serial1.begin(9600); xbee.begin(Serial1); ...
XBeeの設定をして、End PointのADCとポート状態を定期的に受信できた
xbee-arduino - Arduino library for communicating with XBees in API mode
<http://code.google.com/p/xbee-arduino/>
特に修正することなく
WebClientのサンプルは動いた。
EthernetClient client; Ethernet.begin(mac) ...
これを使ってサーバにPOSTすればよいのかな
amcewen/HttpClient
<https://github.com/amcewen/HttpClient>
部屋の温度とか外の温度とか見たいので
センサつないだり、サーバ用意したりしないとですね