今日は風が弱くて日差しが出てきましたが、まだ風が冷たいので、無線小屋で過ごしています。目標としていた気温などのグラフ表示ができるようになりました。
やっぱりグラフ表示は良いですね~!気温などの変化が一目でわかります。時刻の表示を日本時間に合わせるようにしましたので、よりリアルに分かりやすくなりました。今朝の最低気温は-8.3℃で、それから昼前に5.4℃まで上昇しましたが、晴れたり曇ったりして小康状態になりました。
Javascriptの勉強をしているものの、全体のプログラミング量は、他の言語による記述の方が多いように感じます。グラフの表示には、AjaxとGoogle.chartsを使いました。全体の表示やボタンの配置・表示などはHTMLですし、データをMySQLから読み出す部分はPHPです。
日付・時刻表示を日本時間に合わせるにあたり、知識不足のためちょっと苦労しました。MySQLの日付・時刻(DateTime型)は64ビットで、UTCの値だけを保持するようです。タイムゾーンをAsia/Tokyoに合わせようとしましたが上手くいきませんでした。この原因は、ラズパイZEROにインストールしたOSがGUIなしをLiteバージョンだったからかもしれません。仕方がないので、MySQLのコネクションを開いた後、SELECT文でデータクエリーする前に、次のような文を一度だけ実行することで、日本時間でデータを読み出すことができるようになりました。
set time_zone = '+9:00';
それにしても、Webアプリケーション(ブラウザで起動するアプリ)を作ろうとすると、色んな言語を使う必要があります。HTML, PHP, Javascript, MySQLを使っていますが、CやC++, VB.NET, Java, Pythonなどは、あまり出番が無いように感じます。
日常的に、それらに接していれば慣れるのかもしれませんが、素人にとっては頭の中が大混乱します。これらの言語はインタープリタなので、デバッグ方法にも慣れが必要です。期待した通りに表示されない時、何が悪いのか探すのに一苦労しました。その点、IDT(統合開発環境)が整っているVB.NET, C++, Pythonなどを使った通常のパソコンアプリの開発の方が楽だと感じます。
でも、Webアプリケーションの場合、サーバーにインストールしてしまえば、パソコンやスマホなどの各種デバイスから利用できるのが魅力です。しかし、個人で利用する場合、サーバーと端末の両方が必要であり、かつ、ネットワークが必要なので面倒とも言えます。
IOT(Internet Of Thing)時代の今、今回のアプリのように、温度センサーの傍にLAMPサーバー(Linux, Apache, MySQL, PHP)があるような場合、そのデータを利用するアプリは、やはりWebアプリケーションとした方が便利ですね。サーバーと言っても、ハードウェアの価格は2000円前後ですし、ソフトウェアはすべてフリーです。