天気は大変良くて、外の気温はかなり高そうである。グラフは例によって室温の変化の記録。午前10時過ぎにエアコンのスイッチを入れた。27度で風量弱固定。12時半頃からはエアコンの能力が追いつかず(風量を固定している為と思われる)、室温は上昇を続けた。

 

気圧を見る限り、まだ台風の影響は残っていると思われる。

 

ストロボ(スピードライト及びフラッシュガンの類の総称)を、屋外で上に向けて発光させる事を「青空バウンス」等と言って馬鹿にする輩を見かけますが、場合によっては意味があるのです。

 

それは、「いま、撮ったよ(撮っているぞ)」という被写体への通知。狭い室内ならシャッター音がありますが(カメラによっては小さくて届かなかったりしますけど)、屋外、かつ囲み撮影とかだと分からなくなります。そんな時、ストロボを焚くのですよ。

 

射撃訓練時に探照灯を点滅させるのと一緒ですね。

 

なので、完全に上に向けるのではなく少し前傾させなくてはなりません。完全に真上だったり、後ろ向きにしているのは(通知先が被写体でないので)無意味です。

 

まあ、被写体が元から撮影者を相手にしていなかったり、無機物だったりの場合はこの限りではありません。単なるスイッチの切り忘れと思ってスルーしてやって下さい。関わると面倒なことになりますので。

 

 

 

 

 

 

 

 

 

手元の気圧計は989.1ヘクトパスカルを示しています。

 

8日6時の天気図によれば、台風5号の中心気圧は986ヘクトパスカルということなので、ここ和光市においてはおそらく今が最低気圧になるのでしょう。

 

天気は大変良く晴れております。

 

http://makezine.jp/blog/2017/08/mft2017_spritzer.html

ハイレゾ対応オーディオコーデック内蔵というのがSonyらしい、と言えばいいのかしらん。


発表した会場が会場なのでどこまで本気なのか分かりませんが、多分遊びでしょう。本当に売る気があるなら、もう少し気の利いた演出が必要かと。

 

「これをPS(初代)に取り付けろ。すごいぞ、PSの性能は(ry」「こ、こんな旧いものを(さらにry」

 

 

 

 

消費電力と開発プラットフォームの扱いやすさ、不意に電源引っこ抜いても壊れないこと、何より安価であること、これらがクリアできないと、これ以上ボードコンピュータ(for IoT)は広がらないような気がします。

気圧計の数値が995.7ヘクトパスカルを示しています。ノルウェー気象研究所のデータ(※)とほぼ同じです。

 

 

※xfce4-weather-plugin 0.8.9

sntpもrtcも自前で何とかなったのですが、今ひとつスッキリしません。というのも、Luaで書くとどうしてもプログラムが長くなるのからなのですね。

 

長くなる原因はいろいろありますが、型を定義できない為、というのもその一つ。byteやらsubやらtonumberやらを駆使して延々と綴っていくしかないのですね。

 

稿末に示したコードは今回書いた「かなり簡略化した」sntpクライアントなんですが、貰ってきた秒時を年月日時分秒に変換し、さらにrtc向けのBCDに直すというのが、如何にも、なんですね。

 

実行速度稼ぎたいのでmath.floorをローカル変数floorに入れたりとかしてます。が、nodemcuの場合、メモリ上の制約もあってグローバル推奨みたい。悩ましいところではあります。

 

ということで、nodemcuで用意されているモジュール(sntp,rtctime他)を追加してみることにしました。手順はドキュメントに書かれているのでここには書きませんが、ヘッダファイルのコメントを外して、再makeするだけです。ESP-WROOM-02に書き込む際は、erase_flashしてからのほうが無難でしょう。

 

nodemcuのRTCも普通に時刻を見るだけなら問題ないのですが、今回のように割り込み源として使おうとするとちょっと不足のような気がします。というか、直接的な方法だとできないのではなかろうか。

 

思いついたのは、スリープして所定の時刻(今回は1分間隔)で再起動し、データを送信してまたスリープする、というもの。手順としては定石ですが、時刻の精度に難あり。再起動するごとにsntpで時刻修正することになろうかと思いますが、wifiの再起動もやるとなると結構時間かかりますですよ。

 

rtc(RX-8025)はそのまま続投かも知れません。

 

sntp={}
sntp.host="jp.pool.ntp.org"
sntp.port=123
sntp.request=string.char(0x0b)..string.rep(string.char(0x00),47)
sntp.ip=nil
sntp.us=nil

 

function sntp.register(userfunction)
    sntp.us=net.createUDPSocket()
    -- function(s, data, p, i)
    sntp.us:on("receive", userfunction )
end

 

function sntp.sync()
    sntp.us:dns(sntp.host, function(sck,i)
        sntp.ip = i
        sntp.us:send(sntp.port, sntp.ip, sntp.request)
        end
    )
end

 

function sntp.close()
    sntp.us:close()
end

 

-- Utility
function sntp.ntp2bcd(ts)
    local m, h, d, y = 60, 3600, 86400, 31536000
    local unixofset=2208988800
    local jstofset=9*h
    local floor=math.floor
    local days={31,28,31,30,31,30,31,31,30,31,30,31}

    local function bin2bcd(b)
        return floor(b/10)*16 + b % 10
    end
    t = tonumber(ts)
    t = t - unixofset + jstofset
    local year = floor(t / y)
    if year % 4 == 0 then
        days[2] = 29
    end
    local leap = floor((year-2)/4)
    t = t % y
    t = t - leap * d

    local day = floor(t / d)
    local month=0
    for i=1, #days, 1 do
        if day <= days[i] then
            month = i
            t = t - day*d
            break
        end
        day = day - days[i]    
        t = t - days[i]*d
    end

    local hour = floor(t / h)
    t = t % h

    local minutes = floor(t / m)
    local seconds = t % m
    year = (year + 1970) % 100
    return
        bin2bcd(year),
        bin2bcd(month),
        bin2bcd(day),
        bin2bcd(hour),
        bin2bcd(minutes),
        bin2bcd(seconds)
end

 

あくまでも暦の上での話であって、実際は夏本番な訳ですが。

 

終日、esp8266と格闘していました。一応、紛いなりにもsntpで時刻情報を取ってこれるようになりましたので時刻合わせは自動になりました。紛いなりにも、というのは遅延時間を考慮していないからで電波時計と比較して1秒ほど遅れて見えます。まあ、実用上の問題はないでしょう。

 

IPのやりとりについては、ネットを漁ってみたところ、起動直後はwifiをAPモードにしてwebサーバーを動かし、端末からssidとpwdを設定する、というのが普通なようです。いくつか事例を見つけたのですが、例によってarduino互換環境での事例ばかり。Lua(nodemcu)でやっている、というのは圧倒的少数派のようです。

 

nodemcuでもAPモードは当然使えます。が、STATIONモードでは動いていたサーバールーチンが動作しない。

 

なぜ?

 

 

 


代わり映えしない見た目ですが中身は結構進歩しました。自動で時刻補正して、分刻みで気温と気圧をデータ収集サーバに送っています。消費電力がアレですが(LPS25HのLEDが余計なんだよなあ)。


Search

Calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< August 2017 >>

Archive

Mobile

qrcode

Selected Entry

Link

Profile

Search

Other

Powered

無料ブログ作成サービス JUGEM