酒と薔薇の日々(その2)

好きなことだけ求めて生きるアスペ気味のINTJ人

[ビオIOT化計画] Ambientへデータ送信(2/2) センサー温度を5分おきに送信

2021年06月30日 12時43分03秒 | マイコン(ESP32・Arduino等)

単純な数値送信とグラフ化ができたので、
今度はセンサーで取得した温度を5分おきに蓄積させてみる。

センサーの使い方は以前の実験でやってるのでソースをコピー

回路はブレッドボード上にプルアップ回路を急造
信号線(黄色)と電源線(赤色)の間に、1.1KΩの抵抗を入れてある。
これが無いと-127という値しか取得できない。

超実態配線図

これはボタンを押す度に送信するプログラムでのシリアルコンソール出力

ディレイで5分ごとにAmbientへ送信する設定とした。
次はディープスリープに挑戦ですね。
なお、タイムサーバへ接続して時刻を補正することもできるが、サーバ側で時刻を記録してくれるのでやっていない。

祝いの宴会しつつ一晩Atomを動かした結果のグラフ
ちゃんとやっててくれたようです!

ダウンロードしたデータ
オリジナルデータはmsまで記録されてますがExcelではそのまま表示はできなかった。

WiFiが込み合う場所では接続のソースに工夫が必要だという記事があった。
DeepSleepに改編する際は、要チェックだ。

■■■ ソース ■■■
コメント解説は前回から変化した部分だけ

#include "M5Atom.h"
#include "Ambient.h"

#include <OneWire.h>// 温度センサーとの通信モジュール
#include <DallasTemperature.h>// 温度センサーのデータを変換するライブラリ
#define ONE_WIRE_BUS 21    // 温度センサー接続Pin 番号

WiFiClient client;
Ambient ambient;
OneWire oneWire(ONE_WIRE_BUS);  // 通信モジュールのオブジェクト生成
DallasTemperature sensors(&oneWire);  // 温度測定のオブジェクト生成

const char* ssid       = "WAR*******";
const char* password   = "8F*******";

unsigned int channelId = 38****; // AmbientのチャネルID
const char* writeKey = "d34****"; // 書き込みのキー

void setup() {
    M5.begin(true, false, true);  // use LED
    delay(50);
    M5.dis.drawpix(0, 0x00f000); // RED RED
    delay(50);
    
    Serial.begin(115200);
    Serial.print("start M5Atom-lite\n");

    WiFi.begin(ssid, password);
    Serial.print("WiFi start ");
    while(WiFi.status()!=WL_CONNECTED) {
      delay(500);
      Serial.print("x");
    }  
    Serial.print("\r\nWiFi connected\r\nIP address: ");
    Serial.println(WiFi.localIP());
    M5.dis.drawpix(0, 0xf00000); // green

    ambient.begin(channelId, writeKey, &client);  // Ambient環境初期化
    sensors.begin();    // 温度計開始
}

int  cnt = 0;  // 今回は送信カウントに使用する。偶奇判断でLED色を変化させるだけに使ってる

void loop() {
    cnt++;
    Serial.print("IP:");
    Serial.print(WiFi.localIP());
    Serial.print("  Loop cnt:");
    Serial.print(cnt);

    if( cnt % 2 == 0 ){   // LED色変え
        M5.dis.drawpix(0, 0x707070); // white
    } else {
        M5.dis.drawpix(0, 0x0000f0); // Blue
    }    

    sensors.requestTemperatures();    // 温度センサー測定開始宣言 1秒以下だがタイムラグが生じる
    Serial.print("  sensor(0)\t");
    float tmp = sensors.getTempCByIndex(0);  // 温度を変数「tmp」に格納
    Serial.println(tmp);
         
    ambient.set(1, tmp);   // 温度値をdata1にセットt
    ambient.send(); // 送信!       

    delay(300 * 1000);   // 300 = 300秒 = 5分
    M5.update();
}

 


[ビオIOT化計画] Ambientへデータ送信(1) ボタンを押すと数値を送信

2021年06月30日 11時40分07秒 | マイコン(ESP32・Arduino等)

なんだか梅雨の湿気と気温が高いせいでイマイチな気分なんだが、
ボラメンバーの前でIOT化を再開するぞと宣言したので、立ち上がらざるを得ない。

■■■ 事前準備 ■■■

M5-Atom-liteはUSB接続してあるだけで、付加回路は無し。
使うのは本体のボタンとLEDなど基本構成部品だけです。

WiFiのアクセスパラメータを準備する。SSIDとパスワードね。

Ambientへログインする。
チャンネルは以前作ってるのでメニュー左上「チャネル一覧」をクリして表示

Ambientのアクセスコード(チャネルID)や書き込みパスコード(ライトキー)をメモする。
このチャネルに8種類のデータを送信可能
送信のインターバルや個数、保存期間など無料枠の場合は制限がかかっているが、趣味レベルなら十分です。

もうこの時点で、Ambient側はデータ受信体制が整ってるので、送信すれば蓄積してくれる。
「ダウンロード」アイコンでCSVデータが落ちてきます。

こんな感じです。ミリセコンドまでの日時データ、続いて送信した数字(この場合は1..5)

このデータをネット上でグラフ化するには「ボード」機能を使います。

メニューから「グラフ+」アイコンを選んで「ボード」を作成

表示するデータを指定します。
今回は「d1」しかないので「左軸」にチェックを入れ「設定する」

グラフ化されました。横軸は時間になってますね。

データを削除して、いったんカウントアップを1..5まで送信、
Atomをリセットして再度カウントアップした状態のグラフ

本記事はここまで。

■■■ ソース ■■■

まずは、ボタンを押す度に変数cntを加算し、その値をクラウドへ送信するプログラムにした。

#include "M5Atom.h"
#include "Ambient.h"

WiFiClient client;
Ambient ambient;

const char* ssid       = "WARP*****";     // 宅内ルータの接続パラメータ
const char* password   = "8F66*****"; //  同上

unsigned int channelId = 3*****;       // AmbientのチャネルID
const char* writeKey = "d34*****";    // ライトキー

void setup() {
    M5.begin(true, false, true);  // use LED    // M5の開始設定
    delay(50);
    M5.dis.drawpix(0, 0x00f000); // 赤色LEDを点灯
    delay(50);
    
    Serial.begin(115200);   // シリアル通信速度
    Serial.print("start M5Atom-lite\n");  // ログ出力

    WiFi.begin(ssid, password);  // WiFiへ接続
    Serial.print("WiFi start ");
    while(WiFi.status()!=WL_CONNECTED) {  //接続されるまで待つ 1秒以内ですね
      delay(500);
      Serial.print("x");
    }  
    Serial.print("\r\nWiFi connected\r\nIP address: ");  // 取得IPアドレスを表示
    Serial.println(WiFi.localIP());
    M5.dis.drawpix(0, 0xf00000); // LEDを緑色に

    ambient.begin(channelId, writeKey, &client);  // クラウド Ambient 通信環境初期化
}

// ------ここからがメインルーチン---------
int  CNT = 0;  // 送信する数値を宣言・初期化

void loop() {
    if (M5.Btn.wasPressed()) {    // ボタンを押す度に送信する
        CNT++;
        Serial.println();        Serial.print("IP:");        Serial.print(WiFi.localIP());        Serial.print("  Ver:");
        Serial.println(CNT);

        if( CNT % 2 == 0 ){   // 押す度にLED色を変化させます
            M5.dis.drawpix(0, 0x707070); // white
        } else {
            M5.dis.drawpix(0, 0x0000f0); // Blue
        }    
        ambient.set(1, CNT);   // チャンネルは1..8で今回は1個だけを使用する
        ambient.send(); // 送信       
    }
    delay(100);
    M5.update();  // 表示の更新
    Serial.print(".");  //生きてるよの表示
}


ワクチン・ネット予約はあふぉ丸出し

2021年06月30日 09時43分46秒 | 日記

遅ればせながらワクチン予約をネットでやってみた。

だいたい何だ?この説明は
このページの次のステップで行うことが書いてある。
お前らの頭はスパゲッティなんだろうね。
自身がどこにいるのか、前も後ろも判っていないとしか思えない記述だ。
こういうツマラン落とし穴があちこちに置かれている。

オマケに用語の統一が取れていない。
そりゃ、高齢者でなくても迷うわ。

で、あちこちの会場を探すが2週間先(?)までの予約しか入力ができない。(そりゃしょうがない)
結局、行きたい会場全てで空きが全くなかった。
多分零時をもって皆が競争で確保してるんじゃないかな?

あほくさくなって、行きつけ病院で電話予約
そんなに接種を焦るのも面倒だったので。
1回目は8月初旬となりました。

サイトの不出来はいつものことで諦めてる。
それはさておき、広島市としては、国からのお題をほぼほぼ果たしてるというところでしょうね。
大都市圏はあれこれ連携が面倒で、小回りが利かないのから大変だと思います。
お疲れ様です。


[ビオIOT化計画] リポソーラー充電は諦めた

2021年06月29日 22時32分20秒 | マイコン(ESP32・Arduino等)

先般から転宅手伝いでしばらく行ってなかった裏山へあがった。6月6日以来だ・・・最悪

家を出て数十秒で近所に住む無線データ通信の大先輩に出会う。

先般から気になっていたIOT用電源に20Wソーラーとリポ電池と中華充電基盤(CN3065:350円程度)を使う件について相談する。
リポはダイソーの物を使えるので安上がり。パネルは5Vの物になるが。
消費電力の 参考(1) 参考(2) 参考(3) 

火災の危険を考えて止めておけと速攻の返事
やっぱりなあ・・・
しばし二人で熱心にIOT談議に花が咲く。
2階ベランダに20Wソーラーと送信装置がずっと動いてるんだそう。確かに置いてある。
大葉の水耕栽培で室内栽培がモッシャモシャになってると、実験室の窓越しに見せてもらう。
電源要らずの給水システム関係で本を書こうかと思っていると。
すんげ~
まあ、専門家だったらしいのであたりまえかあ。

電池の電圧低下を検知するシステムの記事があった。

ーーーーーーーーーーーーー

裏山へはかなりの汗をかきつつ登頂

火曜日とあって人は珍しく山頂はゼロだった。
暫くして男性1名。話を聞けばほぼ同い年
何度かあったことがあるような無いような・・・
なぜか妙に馬が合って、学生時代からの悪友と話すようなXX話で盛り上がった。
女性登山客も多く上がって来るので周囲を警戒しつつw

山を下り、酒の誘惑に上手く逆らって帰宅できた。
ビオIOT化を推進しなくては!


と思ってたのだが、高潔な意思とは関係なくGoProを引っ張り出して水槽内の録画に流される。
昨日は曇りだったが本日は晴天なので・・・

そうこうしてると疲れが出てきて映画「オデッセイ」を見始めて・・・
最近変な挙動をするHDDのファイル整理も続けるし・・・
スズメの写真は取り出すわ・・・

この写真撮るのに餌を糸で括ってるので、うまく取れず悩んでいる様子
ごめんね

結局は過去ログの整理と読み返し程度で終わってしまった。
ま、そんなもんでしょ。
現役じゃないんだから、焦らない焦らない。
今日は楽しい話を2名も出来たんだから収穫充分っす。
やっぱり外へ出ないとイカンな!

インド変異ウイルスはすれ違うだけでも感染するとかいうニュースが飛び交ってる。
本当ならいよいよ外へも出られない。
どうするんだろ。

早めのワクチンしかないか。
明日は予約しよう。


[ビオIOT化計画] AmbientへM5Atomから接続の再開

2021年06月29日 21時27分56秒 | マイコン(ESP32・Arduino等)

数か月ぶりにビオIOT計画を再始動
3月18日の記事以降投げっぱなしだった。(「Atom-liteで自宅WiFi接続試験」)
ああそっか。
ボラ総会でスッタモンダした時期だな・・・あの時期心折れたからなあ。

過去ログの一覧を眺めつつ、ここまでやってたかと再確認
「Atomを自宅WiFiに繋いでIPアドレスをコンソールへ表示」までだった。

[ビオIOT化計画] M5StickCで小型環境センサ端末を作るためのメモ
「ESP32+Arduino」のブログ記事一覧
防水温度プローブが届いたのでArduinoで動作確認(1-wire通信)
DS18B20を並列接続してArduino実験
DS18B20複数接続で一番簡単なソース
M5シリーズ用Ambient+ESP32環境の用意
M5Atom-lite HelloWorld から DS18B20温度センサー接続OK
Atom-liteで自宅WiFi接続試験

------------------------

さて、Ambientではアカウントを取得してあったので、このアカウントを使って何かを送信するテストからになる。
Ambientoのおさらい。

トップページへアクセス
ページ右上からログインします。

以前作ってたアカウントを確認
データはまだ送っていないので、チャンネルなどは存在していない。
ここに書かれたアクセスコードを使ってデータを送受信する。(はず)

再勉強するので、トップページの最下部にある「Ambientを使ってみる」をクリック

ここから解説ページです。
チュートリアルはこちら
サンプルはこちら

参考書籍はこちら 
広島市図書館に所蔵されてます。まずはご一読を


今日は疲れてるので・・・また明日

 

 

 


とにかくHDDが足を引っ張る

2021年06月28日 22時49分37秒 | コンピュータ

少し前から、後数ギガ残した1TBのHDDがめちゃくちゃ遅くなってJtrim起動ができない・・・

オマケに再起動してみるとこれだ・・・

中身を消さないとまずいようだ。使用率は99%程度・・・
少々消しても空きは数十ギガで、アクセスの負荷はあまり軽くならない。
デフラグを一晩かけても終わらない・・・

やむを得ずディスクを整理して、一番デカイ300GあるTrueCryptファイルを移動することにした。

Temp領域で使ってたデータ(30G)をバックアップするのにもこの負荷

ガラガラだったG:をフォーマットし直してこちらに移動・・・するはずだったが

なんと2日かかりますだとっ!
キャンセルするのにもかなりの時間がかかる始末
イカれかけた同じHDDのパーティション同士のコピーだからそれもやむを得んわな。
しょうがないので、先日フルバックアップを取っておいた外部HDDから空けたHDDへ書き戻すことに
つい先日バックアップ以降、内容は変更していない。

USB2接続で遅いのだが2時間で終わると。2日よりはましじゃ
裏山登ってきたら終わってるだろ。

終わってたが、結局Jtrimとか特定ファイルへのアクセスがとてつもなく遅い症状はどうにもならなかった。
フォルダごとコピーしてコピーした方を起動すれば超高速・・・

HDDがエラーを起こしてる可能性も否定できないねえ・・・
買い直そうか。

 


ラインレーザが届いた

2021年06月28日 21時08分38秒 | 物欲日記

Aliexpressからラインレーザが本日到着
工業用赤色650nm 5V 5mW ClassⅢa (直視は少々危険、普通は瞬きすればOKだそう)

6/14 午前2時注文 285円
6/17発送、6/28受領
でした。

取りあえず3Vの乾電池に繋いでみる。

3Vでは蛍光灯下でもちょっと暗いが、ヘッダ部分を回すとちゃんとピントがあった。(写真はピンボケだから太い)

ガラス管は1本と思ってたら3本入ってた・・・なんでだろ。

ま、いいや。
ムフフ
これを丸ノコに取り付けてやる。
問題は角度微調整部分をどう実現するかだ・・・
塩ビ管にネジで挟み込むかな。

本日はビオIOT計画再始動に向けて大掃除でありました。


関節の痛みは遺伝的症状?

2021年06月27日 00時12分07秒 | 日記

50代から始まっている関節の痛み
始めては手首の関節だった。
無理して重い物を変な角度で持ったからだと思ってたが、反対の手にも及ぶ。
正座ができなくなったのもその頃からだし、最近は跪くことは超つらい。
60歳からは体調によっては膝関節が理由もなく痛んで坂を下りるのが辛いなんてのもちょこちょこある。
その頃から椅子へ長時間座ると、関節が固着してしまう症状も。

全部老化現象だと思ってたら、妹もその息子もこういう症状があるという。
私の発症が遅かったみたいだ。
聞けば妹は10代からだそうで、へええってな感じ。
母親系の遺伝形質だそうで、年取れば治ると聞いていたそうだが、甥っ子の方からはどんどんひどくなるという情報もある。

正確な病名はまだ来てないが、そうなんかあ・・・


TV番組は・・・やっぱ信じられんな

2021年06月26日 18時35分11秒 | 男の料理など

先日有名TV番組でチーズで作る超絶旨料理の紹介があった。

早速材料を買ってきた。
一杯飲みつつ・・・

レシピ通りに焼いてみる。
ガザガザした舌触りでマズイ

余りにも酷いので庭のバジルと大葉を挟んで第二作

大した変わりはない。

根本の油揚げがなってない。
くっそマズイ

民放バカ番組は芸能人が大げさなアクションでうまさをアピールするが・・・
いぬえっちけーも同類か。
今度から信じねえ。

 


あれこれ忙しい・・・

2021年06月25日 23時51分48秒 | 日記

先週、先々週と友人の引っ越し案件でバタバタしてたが、やっと解放された。
最後に無駄に植木鉢5個搬送させられた時にはまたまた切れかけたが。

紫陽花の花をカットして伸びた枝を切り詰める。
ついで、根っこが凄いドクダミの一掃。根っこもな。
ざる2個分の収穫でドクダミ茶を作る。これは想定内
猫の額畑が2倍になった。何か植えようか・・・
直射日光が数時間しか当たらんのでムリっポイ

続いて繁茂してモシャモシャとなり娘の家の敷地内に伸びたトネリコをカット
ゴミ出しするために乾燥する前に枝を短くカット
左2個がドクダミ乾燥中

メダカビオのポンプの動きが先日来芳しくない。
よく観察するとソーラーパネルが真冬2月用の30度傾斜のまま。
この時期は太陽が真上を通過するのでパネルの角度を真上に調整し直したら、ポンプがちゃんと動き出した。

メダカもオタマもエビの介も水草も、ともども喜んでおる様子
5月頃一時期水が少し緑化したけど、水温が30度を超えたのを機に慌てて乗せたスノコのお陰で、非常に澄んでいる。
草も良く生えており、エビの介が夕方は水草の縁のコケをよくカジってる。
メダカの卵はいつも腹に付いてるが、全部食べられてるのか針子は見たことが無い。
少し増やそうかな・・・メダカは4匹だからね。

ドクダミ一掃中にハチが地縛霊よろしく家の基礎壁付近から離れない。
ホース散水でかなりイヂメたのだが、どうやってもここから離れない。
あげく私のことが気になるのか飛んできて威嚇?する。
巣を作られると面倒なので、虫よけスプレーを壁に噴霧し、周辺で蚊取り線香を2個焚いて追い払う。
昼過ぎには居なくなりました。

結局3時まで次々と作業に追われ、かなり疲れた。

2週間前に修理に出した眼鏡を受け取りに己斐で下車
鯖江まで行って帰った眼鏡はサスガちゃんと治ってた。治療費2200円なり
いやいやありがたかった。

念のために「この眼鏡の代替品はいくらぐらい?」と聞くと店員さん倉庫を探した結果「2200円(税込)」でありますよ!と全く同じ製品を持ってきた。
速攻で購入し、バックアップ付き2個体制になった。

が、倉庫内にあるのなら、なんでわざわざ鯖江まで修理に送ることを前回提案したの???
もう20年も使ってるんだから当然ガタも来ている。
修理せずはじめっから買い変えた方がずっといいじゃんか!

ということで、感謝・感激はしたものの腑に落ちない結末でありました。

ダイソー1000円BTイヤホンはどこ行っても無いねえ・・・