2017.07.01

Git/GitHubを会得!

Octcatshadow

GitHubというと、ProcessingやArduino-IDE,emacsなど有名どころのOSSをダウンロードしてくるサイトのイメージでした。だから,覚えたコマンドは 
$ git clone "ダウンロードしたいOSSのソース収容先のURL"
$ git pull
だけ.これでも結構、やくに立っていました。
ただこれって、OSSをダウンロードし利用するだけの人。

一方、自分で書いたESP8266用のソースを更新するため、更新する毎に、フォルダーを新たに生成していくと、どれが最新だったのか、このフォルダーの時には、どんな修正を入れたかわからなくなる始末。デグレも発生して、自己嫌悪。

どうやら、自分自身にバージョン管理システムが必要なことを痛感し始めました。決意し、技術評論社のGitHub実践入門を読んでみました。結果、ようやくGit/GitHubをリポジトリ管理として使いこなせるようになりました。

git配下のディレクトリで違うブランチのファイルを更新していくと、更新した回数文だけファイルが出来上がるのかしらと思っていました。違うんですね。Gitって、管理ディレクトリ配下のファイルへのアクセスを途中でフックしていますね。finderで見えるファイル名はいつも同じ。ブランチを切り替えるだけで、違う更新状態のファイルに同じファイル名にアクセスできるようgitが頑張っているようです。道理でgit管理下のディレクトリを ls -laでのぞくと変なファイル、ディレクトリができていたんですね。


Gitflowshadow
リポジトリをForkしない開発フローも体得しました。

新しいブランチを作成する
$ git checkout -b "新しいブランチ名”

ブランチを確認する
$ git branch 

Arduino IDEなど慣れ親しんだエディターで該当ファイルを開き更新する。更新するファイル名はいつも一緒。

更新をコミットする
$ git commit -am "コミットメッセージ"

リモートリポジトリにプッシュする
$ git push

GitHub上でPull requestを作成する

GitHub上でPull requestをmasterにマージする

なるほど、なるほど。一人力開発プロジェクトでも、過去の自分と作業の引き継ぎがスムーズにできます。これは便利です。


| | コメント (0) | トラックバック (0)

2017.06.25

生命、エネルギー、進化

生命、エネルギー、進化
ニック レーン
みすず書房


面白かった。とにかく、面白かった。図書館で借りた本なので2週間で返却しなければ行けなかったが、プラス1週間の延長で読了。

科学系の本で久しぶりに、頭をガツンと殴られた感覚。ATP,DNAそんな3文字、知ってるわい、と思っていたけど、
どうも今日の分子生物学の世界、そんな簡単ではないらしい。30年前の高校生時代に習得した知識でこの分野の理解が止まっている私にとっては、ディズニーランドに行って新しいアトラクションに乗ったような新鮮な感覚を覚えた。

まず、触媒の説明でガーン。
海底火山のようなところで、マグマから熱水が出ているところ海底熱水孔、に、嫌気性の微生物が生息することはなんとなく知っていたけど、なぜじゃ?は、知らなかった。いやいや、そんなところではなく、アルカリ熱水噴出孔には、地球上の生命が活用している触媒の成分の一つFeSが、そもそも、そこにあるでしょ。との説明。なるほど。
生命が自分の環境を内部に取り込んだのね。

次にガツーンと来たのが、呼吸鎖複合体。
ATP回路というと、数研出版の生物図解に記載されている図としてしか、知らなかった私。今や、物理的にどういうタンパク質が組み合わされてできているのかわかっているんですね。知らなかった!

そして、有性生殖と進化の関係にガツーン。
ええ、ミトコンドリアもともと原核生物の外にあった細菌が細胞に取り込まれ、共生しているものとは、高校時代、いや、大学時代に教養課程で習いましたよ。でも、性が2つ有ること、なぜ3つないのか?そのことの意味までは、考えたことがなかった。原核生物自体、有る意味、キメラ。自分自身をクローニングしていくより、ミトコンをもつ卵細胞と、持たない精子との交配により淘汰への適合がより最適化されている仕組み、お見それです。

そして、呼吸鎖複合体が、ミトコンドリア遺伝子と核遺伝子の複合体であり、変異のスピードが早いミトコンドリア遺伝子と核遺伝子の相性によって、呼吸鎖複合体の性能が大きく異なり、それが、生命体としての代謝能力(空を飛ぶ?)、生殖能力、そして死(アポトーシス)と大きく関わっている。
あっと、驚き!

自由エネルギー、プロトン勾配、化学浸透共役の3概念がこの本の通奏低音。確かに理系、中でも物理、化学、生物の各々に興味がない人には難しいかもしれない。でも、その壁を越えると、非常に面白い世界が理解できて、ワクワクする。

買って手元で何回も読み返したい本に久しぶりに出会いました。


| | コメント (0) | トラックバック (0)

2017.06.11

AIスピーカーについて考える

201705shadow


2月。
出張の時、話し相手のいないホテルの部屋は、シーンとしていて寂しいもの。旅のお供にBluetoothスピーカーが欲しいなあと思い、二子玉川の蔦屋家電に見に行ったことがありました。SonyのワイヤレスポータブルスピーカーSRS-X1や、防水性能がついていてモバイルバッテリーにもなるJBLのCharge3なんかが面白そうでした。Chrage3は音も聞いて見ましたが、結構まともな音がしていました。

3月。
AIと音声認識が連携した製品、サービスが一気に花咲き、Androidに向かって"OK Google"と叫んでいたり、MicrosoftのCortanaやAppleのSiriと英語で会話して自分の語学力の出来不出来に一喜一憂。

そして、今6月。
Bluetoothスピーカーをエッジデバイスにして、「音」をインタフェースに、クラウド上のAIとやりとりしている自分に気がつきました。「AIスピーカー」という市場分野が急激に表に出てきた気がします。ここ数年鳴かず飛ばずだった音響メーカーの株が高騰しているようです。オンキョーさんと仲良しのどこかの会社、ありましたね。

AIスピーカーを購入せずにどんな機能で遊べるのかしらと調べて見ました。


Amazonechoshadow
■Amazon Echo(Alexa)
アメリカでは昨年から話題の商品。ちょっとGoogle検索するだけで、おらはこんなことできたぞと誇っているサイトがたくさんヒットします。Echoの周りにエコシステムが出来上がり始めています。Amazonはエコシステムを作るのが上手なところが光っているのかもしれません。Echoを買わなくとも、Amazon Alex Voice service, Alexa Skill KitとRasbery Piの組み合わせることができるそうです。
試してみようかしら?と、思わせますもの。
Echoのイントール手順書を読んでいると、AWSのサブスクリプションが必要です。これでAWSクラウドの利用料も上がる。Echoの強みは、AIスピーカー市場の先行者でありその先行者に群がるエコシステムが巨大な点か?


Googlehomeshadow
Google Home
Google Homeの強みは何でしょう?検索でしょうね。"Ok Google"をAndroidに向かって言わなくともいい、Google Homeが私の声を拾い上げてくれる。複数の話者を識別するなど、音声の認識精度はGoogleの方が良さそうですね。電話かも、会話した相手の電話番号を勝手に検索しかけてくれるのならいいかも。実物を日本でよく、実態が分かりません。Google HomeもGoogleアカウントが必要、ということはGCPが動いているってことですよね。Ok Googleと部屋で叫ぶと、Google HomeとAndroid携帯の両方が叫び出すことはなさそうですが。

Applehomepodshadow
Apple HomePod
先月のWWDCでお披露目した製品。AppleはHomeKitインタフェースを開発者に公開し、HomePodと連携できるスマードデバイスの開発を自由にやらせ始めました。HomePodにOpen/Close戦略を展開しAiスピーカー市場の追撃。iPhoneをclose仕様にしユーザを囲い込み、iOS-APIとAppstoreを開発者に公開しIOSのAppsエコノミーを気づきあげたAppleにとってOpen/Closeは、お家芸。これを使ってAmazon/Gooole追撃か?追撃?Appleはいつから追撃する会社になったのか?いっつも世の中の先頭を走ってきたのではないか?もはや、AppeleはAppleでないのかも。

Microsoftinvokeshadow
■Microsoft Invoke
二番手作戦王道のマイクロソフトは、どう出て来るか?当然Azureのサブスクリプションが必要ですよね。マイクロソフトの場合、狙うユーザはコンシューマなのでしょうか?企業ユーザまで狙ってきそうな気がします。Skype for Businessと連携して来ると面白いかもしれません。電話会議用のスピーカーフォンメーカーとして有名なJabraもエコシステムに入ってきそうな気がします。


クラウドの新しい使われ方が生まれた気がします。AIスピーカーにはクラウドサービスのサブスクリプションが必須。もっと、拡大解釈するとエッヂデバイスにはクラウドサブスクリプションが必須。利用量は大した数字ではないのでしょうが、クラウドサブスクリプションの大量販売の時代が来そうです。エッヂデバイスベンダーにAzureサブスクリプションを仕切ることができるように準備をしておいた方が良さそうです。
音楽を楽しむか?会話を楽しむか?自動運転で走行している自動車とのインタフェースってハンドル、アクセス、ブレーキなのではなく、「会話」なのかもしれませんね。久しぶりに、ユーザとして、開発者として、クラウドサービス提供者として、夢の膨らむ機会をいただきました。


| | コメント (0) | トラックバック (0)

2017.05.28

Dive ESP8266 to Deep Sleep Mode(3)

Free_dive_3shadow


ESP8266の醍醐味は消費電力削減のためのDeep Sleep Mode。と申しましたが、改善点はまだまだあるようです。今回電源周りを変更したところ、大きな改善が見られました。

これまでは、Switch scienceさんから購入した単三電池の昇圧器BooSTickに接続し5Vに昇圧し、同Switch Scienceさん製のESP-WROOM-02開発ボード上のレギュレータで3.3Vに降圧。2段のレギューレータが動いていました。

結果9時間、一晩も持たず。

2段のレギュレータが電気を無駄使いしているに違いないと直感し、5Vに近い電圧をESP-WROOM-02開発ボードに直接供給する手がないか考えていました。ゴルデンウイークに渋谷の東急ハンズに行った際、電池ボックスを見つけました。単三電池3本直列接続タイプと4本タイプ。悩みに悩み、4本直列接続する電池ボックス購入。シンプルにEneloop単三を4本直列接続し1.5x4=6Vの電源を作り、5Vに近いからいいか、と非ロジカルに判断し、ESP-WROOM-02開発ボードのVinに接続。どれだけ連続運転できるが、経過を観察。

結果、21日、597時間の連続運転。

9時間しか動かなかったものが、どうして597時間も動けるようになったのか?初めはロジカルに理解できませんでしたが、だんだん、わかってきました。

まず乾電池とEneloopの違い。乾電池の電圧って1.5Vというけど、電圧が使用始めから最後まで、真っ逆さまに電圧が落ちていくんですね。いわゆる乾電池は、マンガンと鉛が電極。それに対してEneloopは、ニッケル水素電池。フル充電直後はちょっと高めだけど、あとはずーっと安定した電圧を出す特性。しかもeneloopって1本で1.5V出すのではなく、1.2Vなんですね。これ電極の部材の物理的な違い。正極に負極に何を使うかで電池の出力電圧は異なると。なので、Eneloop4本では1.5Vx4=6.0Vは不正解で1.2Vx4=4.8Vが正解。

そして、ESP-WROOM-02開発ボードに乗っているレギューレータXS6222の存在。性能情報をメーカー提供の仕様書で確認すると、レギュレータ自身が使う電圧Vdropが0.4Vある様子。ESP-WROOM-02は3.3Vで動作するから、0.4V+3.3V=3.7V以上が必要。

つまり、Eneloop3本では1.2x3=3.6Vなので、3.7Vに足りず、4本では1.2x4=4.8V,3.7Vには余裕で十分。というかロジカルにベストだった!幸運の女神が微笑んでくれた。

電源の世界は奥が深い。
右脳を使ってPrototypingの醍醐味を味わえばいいのか?左脳を使って、仮説と検証そしてロジカルに設計できる力を持つべきなのか?悩む。


| | コメント (0) | トラックバック (0)

2017.05.13

ping|sedにたわむれる。。。

Dsc_3021shadow

ねえ、うちのインターネット遅くない?と、家人に言われた。

えっ?と思い、調査開始。
家で使っている無線LANルーターにpingを飛ばして見る。
数回続けてpingを飛ばすと早い時と遅い時がある。桁が違うくらい。
そう言う時にpingの結果を整形してくれるツールがありがたい。
もっと言うと、その整形結果をprocessingで可視化して見ると面白いかもしれないと思い、手を動かし始める。

pingコマンドの出力結果をsedで整形、ええ、そんなのお茶の子さいさい。と、高を括っていたら、スクリプトが書けない。。。。。

がーん。

もう、手仕事から離れて時間が立っていることが理由でしょうね。
もう一回、sedを復習し直して、整形できるようになったのが
やれやれ、一日がかりの仕事。情けなや。
でもUNIXの世界のすごさを再認識。
こんな一行コマンドで、用が足りる!
他のやり方だったら、もっともっと面倒でしたでしょうね。
Thnaks, UNIX!

=================================
#!/bin/bash
echo "pingで時間のみをとりだす。OSX用"
ping 192.168.10.1 |sed -n -e "s/^.*time=\(.*\).*ms$/\1/p"
=================================


原因は、
-無線lanルータそのものが古く、2.4Ghz帯で隣と同じチャネルで衝突していた
-マンション住まいなので、他の住民の影響を受けいた
-回線業者が近所で道路工事をしていた
といろいろあったが、無事解決。
やれやれ。


| | コメント (0) | トラックバック (0)

2017.05.02

よこはまブラリ

Img_20170502_095116shadow


昨日は大気の状態が不安定なため、落雷があったり、とっても天気が荒れた一日でした。なので、家から一歩も出ず、静かに読書していました。なにを読んでいたのか?おいおい、ご報告します。

今日は、その反動か、思いっきり外歩きを楽しみました。今横浜では、第33回全国都市緑化よこはまフェアをやっているようです。そのせいか、いろんな所が花でいっぱいでした。

201705021shadow
まず、横浜球場に行ってみました。毎年、ここでは、この季節に、たくさんのチューリップを観ることができます。ただ、最盛期は連休前のはずです。もうGW中なのでチューリップはもうみれらないのかな?とおもって、きてみましたが、まだまだ、チューリップ、頑張っていました。いわゆるチューリップではなく、原種に近いか、はたまたかなり品種改良されたものの方が遅くまでがんばってくれていたようでした。

201705022shadow
次に、山下公園からみなとの見える丘公園まで歩いてみました。日本大通りに鉢植えされていたバラが開花していたので、こちらも満開かと期待していましたが、こちらはこれからですね。
まだ、満開までは、早いようです。
気の早い赤いバラや、モッコウバラは咲いていましたが、本格派の方々はまだつぼみ。アーチに仕立ててあったバラの蔓がたくさんありましたが、まだ、青々としていました。ただ、バラって、花が咲いていないとも香がするんですかね?花の咲いていないバラのアーチをくぐっていると良い香りがしてきました。

この季節、外を歩くと、新緑と清々しい空気と澄んだ光が気持ちいいですね。
Dsc_3027shadow


| | コメント (0) | トラックバック (0)

2017.04.23

モチベーション3.0

Dsc_01052shadow


会社で従業員満足度調査【ES】がありました。職場では今、その調査結果をみながら、傾向と対策をねっています。これまでは、ESなんて、なんの意味があるんですか?派だったんですが、ESが生産性、企業業績、企業ブランドの向上に寄与するという方もいらっしゃるらしく、回り道かもしれないけれど、こういう間接的なやり方で収益向上することもありか?と、おもい、今年はWGを立ち上げて活動しています。なにか参考にできる文献がないかとさがしていた最中にこの本に出会いました。

著者は、コンピュータのOSのように、モチベーションにもバージョンがあるという。マズローの欲求5段階説,自己実現理論から来ている気がする。社外セミナーでマズローを取り上げる人もいましたが、この本のような見方を紹介してくれたのは初めてでした。
以下、著書の要約を試みてみました。


人類は、4段階のモチベーションの進化を遂げつつある。
1.モチベーション1.0
人間は生命体なので、生存のために行動する
2.モチベーション2.0
人には報酬と罰則が効果的。外的要因によって動機付けられるタイプX的人材。型を決め、型通りのルーチンワークに対する定量目標のなかで、いかに品質の良い物をつくるかで競っていた時代までは、確かに、有効だったのだろう。従業員の大半は基本的に仕事が嫌い。主体性に欠く従業員は責任を負うことをおそれ、安全を望み、指示を必要とする。組織の目標達成を目指して、適切に仕事に取り組ませるためには、強制し、管理し、指示を出し、罰を用いて脅かす必要があるとする考え。
2.1.モチベーション2.1
マズローの欲求5段階説,自己実現理論をビジネスの世界に導入したMITマクレガーが「企業の人間的側面」で説いたX理論、Y理論を反映し、クールビズ、フレックス制、裁量を与え成長を促すささやかな改善。今年よくきく、働き方改革も、ここまでのレベルでしょう。

結果、以下のような欠損が生み出される。
1.内部的動機付けを失う
2.かえって成果が上がらなくなる
3.創造性をむしばむ
4.好ましい言動への意欲を失わせる
5.ごまかしや近道、倫理に反する行動を助長する
6.依存性がある
7.短絡的思考を助長する
成果評価制度がこの典型か?


3.モチベーション3.0
人には学びたい、創造したい、世界をよくしたいという動機が内在していると、コダック、ウエスタン・ユニオン、ゼロックスなどモチベーション2.0企業がたくさんあったロチェスター大学にいたEdoward DeciとRochard Ryanの自己決定理論(SDT)が提供、タイプI人材、チクセントミハイのフロー理論。今日流行のメディテーションもこの範疇。

モチベーション3.0の要素は、
自律性(Autonomy),熟達(Mastery),目的(Objectives).

■自律性:課題(Task),時間(Time),手法(Techniqes),チーム(Team)。最初に必要とされるのは課題、時間、手法、チームに対する自律性。これらを確実に任せることが大事。
■熟達:モチベーション2.0は従順な姿勢が求められるに対し、モチベーション3.0は積極的な関与が求められる。積極的に関与して初めて上達を生み出せる。
マスタリーはフローから始まる。フロー取り組んでいる課題が本質的に自分の能力と整合している場合。集中力、目の輝き。ゴルディロックスの仕事。フローに達し、マスタリーを得る。マスタリーの取得には苦痛を伴う。努力、根性、意図的な訓練をともなっても、成長は漸近線的なカーブを描く。
■目的:目的を明確にするものは、目標(Goal)、言葉(Words),指針(Politics)

消費者に対する行動経済学、行動心理学を適用し、顧客満足度を向上させるように、従業員に行動経済学、行動心理学を適用し、従業員満足度を向上させる手法があるのかもしれない.
モチベーションは奥深い?ほとんど宗教だからでしょうか?

職場で採用できるのかしら?会社全体がモチベーション2.0の会社なのに、一部組織だけモチベーション3.0の枠組みなんで実現可能なんでしょうか?と、思いつつ、著書に書いてある、職場向けツールキットを列挙
1.補助輪付き20%ルールを試行してみる
2.同僚間で思いがけない報酬を推奨する
3.自律性をチェックする
4.コントロールを手放す3ステップを行う。目標設定を一緒に行う、支配的な言葉を用いない、時間を確保する。
5.「目的はなにか?」と、問いかける
6.ライッシュの代名詞テスト
7.内発的動機付けを利用するシステム設計
8.グループでゴルディロックスを促進する
9.様々なメンバーで構成されたたグループを編成する
10「競争のない」グループにする
11.業務を移管する。担当している業務に退屈している人がいたら、すでに習得したスキルを用いて他の人を教育できないか?任せてみる。さらに経験を積んだメンバーの仕事をその人にやらせてみる。
12.目的によって活力を与え、報酬で動機付けしない
13.「オフサイトミーティング」より「フェデックス・デー」



モチベーション3.0
ダニエル・ピンク著
大前研一訳
講談社


■関連サイト
-ダニエル・ピンク公式サイト
-ダニエル・ピンク本人によるTEDでのプレゼンテーション
-鉄拳さんのようなRSAアニメーション
-モチベーションを上げる3つの欲求、心理学者デシが明かした報酬と意欲の関係
-モティペディア

| | コメント (0) | トラックバック (0)

2017.04.16

不快指数(DI)が気になり出す季節。。。

Img_20170408_090535


ソメイヨシノの花も葉桜にかわり、八重桜がバラのようにボリューミーな花を重たげに開きだしました。さくらが終わると、チューリップ、つつじ、ばら、と花暦が忙しくなります。

今日は気温がぐんぐんあがり、温かいというより暑いという感じになりました。
髪ものびスッキリしたくなったので、床屋さんに行きました。その床屋さんでエアコンの冷房が動き出していました。
夏に入り、エアコンの出番がふえると、湿気を気にするようになりますね。
湿気を気にする時によく聞く指数が「不快指数(DI)」。

このDIについて調べてみました。
不快指数(Disconfort Index)とは、蒸し暑さを表す体感温度の1つ。体感温度とは、人が暑さ寒さを感じる温度感覚のこと。気温の他に湿度、風速が影響する。不快指数は気温と湿度だけで算出するので、必ずしも体感とは一致しない。1957年、米国で蒸し暑さを示す温湿度指数を冷房設計に用いたのが最初。日本では61年夏から使われ始めた。

不快指数の計算式は、
気温を T ℃,相対湿度を H %とすると
不快指数=0.81×T+0.01×H(0.99×T-14.3)+4

不快を感じる値は人種などにより違いがあるが,日本人は 77になると 65%の人が不快を感じ,85では 93%の人が不快を感じるといわれている。一方,アメリカ人は 80以上でほぼ 100%の人が不快を感じるといわれる。

だそうです。

さっそく、My IoTプロジェクトにDIを実装してみました。
ただいま、DI = "70.50"。不快という状況ではありませんでした。
さて、これからこのDIがどうなっていうか?観察していきたいと思います・

Screenshot_20170416175324shadow


| | コメント (0) | トラックバック (0)

2017.03.22

サンノゼ主張(LAXを行くの巻)

Dsc_0083shadow


用事が済んだらサッサと帰りましょ。
どっこい、難題が控えていました。夕方にサンフランシスコ国際空港を出発して、羽田か成田に直行する飛行機の便はないのです。LAXロサンゼルス空港を経由すれば、夕方,SFOを出発できそうです。ビッグチャレンジです。

Uberさんを呼んでSFOサンフランシスコ国際空港まで連れて行ってもらいました。飛行機の時間は何時だ、どこの航空会社だ、なんてやりとりをしている間にSFOに到着しました。往復2回計4回も使うとあらかた勝手知ったる我が空港です。SFO発LAX着の便はUnitedの国内便なので、SFOでも端っこの場末のゲートからの搭乗です。搭乗者は当然、外人ばかり。そりゃ、当然か。米国人からみれば、私が外人ですものね。

SFOからLAXへのフライトは1.5時間の予定。でもなぜか、はやくついてしまいました。その間、CAさんたちが、スナックを配ったり、飲み物を配ったり、たいへんでした。登場した便は、まるで東京ー名古屋間の新幹線。通路をはさんだ隣には、老夫婦が二人。座席についているオーディオ機器の操作が判らず、CAさんを捕まえ、イヤホンから音が聞こえないと、イヤホンをしたまま、大声で叫んでしました。とってもほほえましい光景でした。


Laxmapshadow

LAXはゲート74に到着。ここは国内線専用というかUnited専用のターミナル。ここから、国際線ターミナルTOM BRADLEY国際空港まで大移動。LAXはかって東京からダラスへの出張の時に経由した空港なので、とんでもない距離を歩かされる覚悟はできていましたが、今回は一人っきりで歩かなければなりません。ゲート74付近にいた掃除のオバサンに道を教えてもらい、そこからはタダひたすら歩きました。上の階に登ったり、下の階に下がったり。そのたびに、本当にここでいいのかと不安。それでも、どこかの航空会社のCAさん達を追い越しつつ、ただひたすら歩くこと約30分。ようやく、Terminal B,LAXの国際ターミナル側に到着。

この間、私一人っきり。英語は何とがなるので心配ではないのですが、ここで迷子になったら、羽田行きの飛行機に乗り遅れたら日本に帰れなくなるという焦燥感、久しぶりに心細い気持ちになりました。

ここまでくれば、安心です。
羽田行きの便を待つだけです。
待つのは慣れていますから。。。。

Dsc_0084shadow

| | コメント (0) | トラックバック (0)

2017.03.20

Dive ESP8266 to Deep Sleep Mode(2)

Free_dive_3shadow


ESP8266の醍醐味は消費電力削減のためのDeep Sleep Mode。雑誌トランジスタ技術2016年9月号でESP8266の特集をやってくれたのを契機に、何回もトライしてみましたが、今日まで失敗の毎日。ESP8266はESP32が現れ、なんかスポットライトも小さくなってきている印象。

Blynk Communityでの投稿もみてみた。Vccの測定方法が判るなど、参考になる部分もあるけれど、なんか私の捜している解はみつからず。

これまで、ESP8266のIO16とRSTを20kΩ抵抗でPull Upすることには成功。しかし、ESP.deepSleep()でDeep Sleepモードに突入するものの、以降、センサー情報をBlynkサーバに継続送信することに失敗の毎日。

デバック文を随所に埋め込み、シリアルモニターに出力されるテキストをにらみながら、試行錯誤を重ねた結果、原因が判明。というか、ここか?、ここか?
とソースを少しずつ変更していった結果、わかったことは、
・ESP.deepSleep()はsetup()の中に記述するもの
・そうするとloop()内の処理は実行されない。
・すると、loop()内に記述しているBlynk.run()が実行されない。
・すると、センサー情報をBlynkサーバに送信しているBLYNK_READ()が実行されない。
結論、いままでのやりかたではだめ。
Blynk.run(),BLYNK_READ()を活用した記述を使えない。

どうする?

改善。
BLYNK_READ()の中の記述を分解し、BLYNK_READ()の中で使っているBlynk.virtualWrite()を抽出。新しい関数ReadSensor()を定義し、抽出箇所をこの関数の中にまとめて記述。なおかつ、このReadSensor()は、SimpleTimerライブラリでsetup()内で実行契機を与えるように変更。あわせて、物理的にもJumper Pinを探しだし、Jumper線の長さを自分で整え、IO16とRSTをJumper Pinでの接続に変更し、プログラムの書き込みとリセットもスムーズに、見た目もスッキリ感UP。


成功!!!!
これまでは、loop()内で繰り返し、おおよそ1秒感覚で送信しないと失敗していたのですが、これが、60秒間隔で送信しても成功しました。

ブラボー!!!
家の中で、小躍りしてしまいました。

教訓
やりたいことが抜本的に異なるのであれば、過去の成功に執着せず、ことの本質を見極め、大胆に変更する勇気をもつべし。その方が、全体の見通しも格段によくなり、構成もキレイなプログラムに仕上がる。

| | コメント (0) | トラックバック (0)

«グローバリゼーション・パラドックス