投稿

cronの環境変数が無意味な件について

イメージ
Linuxのcronでバグとしか思えない仕様にぶち当たったので、今回はその内容になります。AWSのLinux 2にnginxを入れてWebサーバーにし、サーバー証明書はLet’s Encryptを使用しています。サーバー証明書の更新は期限の30日前から実行できるので、cronを使って自動化しようとしていました。以下はcronの設定です。00 04 * * * certbot renew && systemctl restart nginx毎朝4時にサーバー証明書を更新する「certbot renew」実行し、その後にnginxを再起動しています。しかし、なぜか証明書が更新されないため、ログを出力したところ以下のエラーがありました。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/decomoco.biz.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Non-interactive renewal: random delay of 176.261823729 seconds
Could not choose appropriate plugin: The nginx plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError("Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly.",)
Attempting to renew cert (decomoco.biz) from /etc…

Visual StudioでAngularの開発をする

イメージ
Angularの勉強を始めたので、今回はその内容になります。さて、Angularの開発はVisual Studio Code(VSCode)で行うのがデファクトスタンダードだと思います。しかし、私はどうしてもVisual Studio(VS)でやりたかった。なぜなら、VSCodeも素晴らしいIDEですが、VSにはかなわないと思うからです。ところが、いざ勉強を始めるために開発環境を構築しようとしたところ、一筋縄ではいかなかったので、私みたいに「AngularをVSでやりたい!」という人のために書き留めておきます。Node.jsをインストールする公式サイトから最新版を落としてきてインストールします。
Visual StudioにNode.js開発ツールをインストールする① Visual Studio Installerを起動して、変更を選択する。 ② Node.js開発にチェックを入れて、インストールを開始する。
プロジェクトを作成する① ASP.NET Core Web アプリケーションを選択する。
② プロジェクト名などを入力して、プロジェクトを作成する。
③ Angularを選択する。
④ Startup.ConfigureServices()で設定しているconfiguration.RootPathには仮の値が設定されているので、プロジェクト名に変更する。
⑤ Hello world画面が表示できることを確認する。

Angularのバージョンを上げる「ClientApp」がクライアント側のソースコード、つまりAngularのソースコードになります。

① インストールされているAngularのバージョンを確認する。
ngコマンドを実行するためには、ClientAppへ移動して頭に「npm run」を付ける必要があります。インストールされたAngularは8なので、現時点で最新の10へバージョンアップします。② まずは8の最終版へバージョンアップする。コマンド「npm run ng update @angular/core@8 @angular/cli@8」を実行する。③ 9へバージョンアップする。コマンド「npm run ng update @angular/core@9 @angular/cli@9」を実行する。

④ 削除されたパッケージをプロジェクトから削除する。 10へバージョ…

LP8用のプリント基板を作成

イメージ
Senseair LP8用のプリント基板を作成したので、今回はその内容になります。ブレッドボード上では正常に動作したので、それを回路図に起こして、中国の業者に注文しました。
以前プリント基板を作成した時と同様に、回路の設計にはEAGLEを使用しました。 LP8のライブラリは存在しないため、まずはLP8のライブラリを作成しました。
LP8の寸法は公式ドキュメントに記載があるので、それを参考にしてます。
自作したライブラリを使用して作成した回路図です。
実際にプリント基板が届いてから気づいたのですが、JP1のPIN配列が逆でした😓
上記の回路図を基に作成したプリント基盤がこれです。
前回と同様に、中国のPCBWayを利用しました。 基板代が5ドル、送料が15ドル、決済手数料が2ドルで合計22ドルでした! 送料はChina Postにすれば5ドルで済みますが、1か月近くかかるため止めました。 しかし、運悪く国慶節とかぶってしまい、結局は時間がかかりました😭
8日間も休むんじゃねぇ💢💢💢
やっと届いた基盤がこれです。 今回はArduinoの色に合わせて青にしました。
早速、部品を取り付けました。
Arduino MKR WAN 1310、Arduino MKR ENVと合体!!!


懲りずにまたCO2センサーを購入

イメージ
最近CO2センサーを3つ購入したので、今回はその内容になります。

左からELT Sensor社のD-300、Senseair社のSunriseLP8となります。
最初にD-300を購入し、Arduino Duemilanoveで動作確認したところ、正常に動きました。 次に本命のArduino MKR WAN 1310に繋いだところ、初期値の500ppmしか取得できませんでした。 あくまでも推測ですが、Arduino内部のプルアップ抵抗が悪さをしている気がします。
どうしても解決できなかったので諦めていたところ、Senseair社を知りました。 CO2センサー界隈では有名なメーカーだそうです。 そして見つけたのがSunrise! 光源にLEDを使用しているため消費電力が低い画期的な商品です。 値段も6000円ちょっとだったのですぐにポチリました。
しかし、購入後に400ppm以上しか計測できないことに気づくorz この失敗、2度目です😭 慌ててキャンセルできないか購入元のマルツオンラインさんに確認したけど、取り寄せ商品なためキャンセルできなかった💸
結局、Sunriseは一度も使うことなくお蔵入りに・・・
もうここで完全に心が折れていたわけですが、逆にどうでもよくなってLP8を購入(笑) OEM製品ですがAmazonで購入することができました!

まずはブレッドボードで動作確認をしました。 Arduino DuemilanoveとLP8の間には39Ωの抵抗と、0.47Fのコンデンサーを挟んでいます。 メーカー推奨のコンデンサーは「Eaton Bussman PM-5R0H474-R」なのですが、入手性が悪かったので「PB-5R0V474-R」を購入しました。 コンデンサー1個をわざわざアメリカから空輸してもらうと、謎の背徳感があります(笑) 佐川さん、ごめんなさい🙇
回路とスケッチはCO2Meter.comというサイトを参考にしました。

LP8の情報はとても少なく、ましてArduinoに接続している情報は皆無だったので、凄く助かりました!! Arduino Duemilanoveで正常に動作したので、次にArduino MKR WAN 1310で試したところ、こちらも問題なく動作しました。 スケッチは以下になります。
// RDY:センサーの状態とArduinoとの通信準備を同期する int RDY_PI…

XYZ

イメージ
どうもこんにちは、「XYZ」と聞くとシティーハンターを連想する昭和のおじさんです! 今回は新しい同居人(無機質)が増えたので紹介します!台湾から来たダヴィンチ君(ダヴィンチ 1.0 Pro)です🎉まぁ、XYZプリンティング社の3Dプリンターなんですけどね・・・レーザーモジュールとのセットでお値段が102800円+消費税10280円=113080円なり。消費税たっか💢💢💢💢💢まじで野田元首相、旧民主党議員、旧民主党に投票した有権者は地獄へ落ちろ👿
話が逸れてしまったので、ダヴィンチ君に戻します💦3Dプリンターを購入したのは、農業用に作成しているIoTデバイスのためです。最終的にはデバイスをハウスに設置するので、そのための部品を作成する計画です。最初の方、フィラメントの長さにして40mくらいまでは失敗の連続でした。今では100m以上印刷し、以下の設定に落ち着きました。・ノズルの温度:230度(初期値は210度)・表面レイヤの高さ(積層ピッチ):0.2mm(初期値は0.3mm)・シェルの印刷速度:15mm(初期値は30mm)・インシェルの印刷速度:15mm(初期値は20mm)・非印刷時の移動速度:20mm(初期値は45mm)・底部レイヤ速度:15mm(初期値は20mm)まずノズルの温度ですが、積層ピッチが0.3mmなら初期値の210度でいいと思います。しかし、それより細い積層ピッチにするなら、210度ではすぐに剥がれて反ってしまいます。印刷速度はシェル(表面)、インシェル(内部)、底部レイヤの3つを指定できますが、以下の法則があると思います。・印刷速度は遅ければ遅いほどいいだたし、ノズルの温度を上げて印刷速度を遅くし過ぎると、ただれた感じになるのでノズルの温度とバランスをとる必要があります。・印刷速度は全て同じにした方が良いシェル、インシェル、底部レイヤの印刷速度は全て合わせた方が良いと思います。印刷速度が変わるとフィラメントの冷却速度が変わるため、その結果表面、内部、底部で縮方にばらつきがでて、それが歪となる気がします。寝ている間も印刷し続けて上記の設定に落ち着きましたが、これは190㎜前後の大きい造形物用です。小さいものを上記の設定で印刷したら、もっと印刷速度を落とさないと失敗しました。今は秋なので温かいですが、冬になるとフィラメントの冷え方が変わるた…

詐欺にあいました その3

イメージ
以前のブログ「詐欺にあいました その2」 にて詐欺に使われた口座が預金保険機構に記載されたと書きましたが、支払い手続きが開始されました。 早速支払い手続きをやってみました。今回の口座はゆうちょ銀行なので、以下のサイトから被害回復分配金支払申請書をダウンロードして、郵送にて送付しました。「振り込め詐欺救済法に基づく被害回復分配金のお支払いについて」お金が振り込まれたらまたブログに書こうと思います!【預金保険機構が分かりづらい件について】預金保険機構で分かりづらいところが2点あったので、書いておこうと思います。① 消滅手続き期間が終わっても、支払い手続き期間が始まらない消滅手続き期間を過ぎたので支払い手続きをしようと思ったら、まだ消滅手続き期間のままだった。これは支払い手続きが始まったことを告知する時期が決まっているため、告知まで待つ必要があるためです。
今回の場合だと、消滅手続き期間は8月17日に終わっているけど、次の告知が9月16日なので、それまで待たないといけない。② 検索方法で状態が異なるトップ画面から「口座番号が分かる方はこちら」と「口座番号が分からない方はこちら」で口座を検索すると、消滅手続き期間のままとなる。「広告をご覧になりたい方はこちらから」で口座を検索すると、支払い手続き開始になっている。

IoTデバイスを設置

イメージ
完成したIoTデバイスをハウスに設置しました。
天気はあいにくの雨でしたが、防水仕様なので問題ありません。 実際にトマトを栽培しているハウスに設置しましたが、今回はあくまでもお試しです。 なぜお試しかというと、前日に以下の問題が発覚、発生したからです。 ・9Vの乾電池だと数時間しか持たないことが発覚 SCD30の仕様を確認したら、消費電力が75mAもありました。  このセンサーに限らず、二酸化炭素濃度のセンサーはどれも消費電力が高いですね。 ・SCD30が壊れた  購入直後なのに壊れやがった・・・  やっぱり中国製は信用できないですね。  国内のECサイトではなく公式のECサイトで購入したので、泣き寝入りするしかない😢
お試しでしたが、LoRaWANの電波がハウスまで問題なく届くことが分かりました。 今後は以下の改善を行います。
・ソーラーパネルで充電可能とする  乾電池ではなくリチウムポリマー電池にする。  そして、ソーラーパネルを接続して充電可能とする。
・センサーを変更する  SCD30はすぐ壊れたのであきらめる。  代わりに「ARDUINO MKR ENV SHIELD」を使用する。  二酸化炭素濃度は測定できないが、温度、湿度、大気圧、紫外線強度、光度を測定できます。

まだまだ道は険しい😭