前回書き込みが出来たところまでは行きました.が,ネットワークにつながらない状態でした.そこで,とりあえずネットにつなぐだけを試してみることにしました.ソースは著作権があるためここには載せませんが,興味のある方は,CQ出版の「DesignSparkソフトウェア」スタートアップ・マニュアルをご覧ください.
さて結論から言いますと,setup 中の接続を開始するところを
WiFiMulti.addAP(ssid, password);
から
WiFi.begin(ssid, password);
へ変更.あとは loop 中の接続待機部分を
while(WiFiMulti.run() != WL_CONNECTED){
から
while (WiFi.status() != WL_CONNECTED) {
へ変更したらつながるようになりました.マルチAPに対応するやりかたではない方で解決したと言うことになります.接続しようとしているときは LED の緑が点滅し,接続完了すると消灯します.
しかしこうなると,fetch ボタンが押された判定の
if (WiFiMulti.run() == WL_CONNECTED && digitalRead(SW) == LOW){
がそのままで動いているのがよく分かりません.が,まあ動いているのでとりあえずはいいことにします.さて接続後の待機状態でボタンを押しますと気象庁のページにアクセスします.そして東京の天気予報のページを見て,その結果を表示するわけです.
見るとこんな予報になっています.
しかしプログラムでは
if(line.indexOf("曇") > -1) weather_type |= 0x02;
という風になっているので,曇という文字は出てきません.プログラム作成時と変わったのかも?と思って,ここを「くもり」に差し替えました.すると,晴れ(黄色)とくもり(白色)が点くはずなのですが,黄色しか出ません.プログラムは1行だけ読んで,該当する文字があるかを判定しているので,もしかしてここに改行が入っているのでは?と思いました.入りそうにないですけども,一応ね.
で,気象庁のソースを見たところ,該当部分はこうなっています.
<th class="weather">
今日**日<br><img src="img/110.png" align="middle" title="晴れ後曇り" alt="晴れ後曇り"><br>
</th>
<td class="info">北東の風 晴れ 夕方 から くもり<br>波 0.5メートル</td>
上の行の <th class="weather"> が出てきたら,その次の行を見て判断する,というプログラムなので,天気のアイコン
に付けられたタイトルで解析していることが分かりました.そしてここは表記が「くもり」ではなく「曇り」になっているので,プログラムを勝手にいじったのが間違いだったわけです.
ここを戻して実際に表示させてみましょう.まず待機状態からボタンを押しますと気象庁に行きます.
一瞬緑がつきます.このときサイトに見に行っています.結果は曇り
それと晴れ
ということですね.動いている様子は
youtube にアップロードしました.
この天気だと晴れと曇りにフラグが立ち.表示はプログラム上,雨,曇,晴の順に点灯するため,例え「晴れ後曇り」であっても,曇り(○),晴(●)の順に表示されます.要するに,晴れ時々曇りや,曇り一時晴れでも同じになってしまうのです.でも出来たら,晴れ後曇りなら黄,白の順に出て欲しいところですよね.もちろん原理は難しくありません.でも組み合わせが結構多くてちょっと面倒なので,これはまたそのうち挑戦すると言うことで終わりたいと思います.(やり方が分かっていて,できると分かっていることはあまり挑戦欲が湧かないのですよねぇ.笑)