【ラズパイで猫ちゃんカメラ】 その0 とりあえず集めてリモートデスクトップまで

泊まりで出かけたいけど猫ちゃんが心配〜 粗相してないかな??との訴えを聞き、ラズパイとwebカメラで猫ちゃんカメラを作ってみることにしました(^^) 材料を集める とりあえず無調査で必要そうなものを集めてみました。 ラズパイ webカメラ ACアダプタ(2A出力) USBケーブル SDカード ラズパイは2台写っていますが、使うのは一つだけです。とりあえずお道具箱を漁ってたら2台出てきました(^^) 手前のラズパイはHDMIのディスプレイが付いていますが、運用上はSSHかリモートデスクトップするのでデバック時だけ使うかもしれません。 webカメラもいつ買ったか不明、解像度も不明。最初は動けば良いかな。 SDカードにOSを入れて初期設定 適当にあった32GBのSDカードにまずはOSを入れます MacのRaspberry Pi Imager v1.4を使います(多分2021/09/05時点で最新バージョンではないです) このソフトはラズパイ公式です SDカードになにかが入っていても、OSをダウンロードして初期化して入れてくれるので楽ちん(^^) 入れたのは Raspberry Pi OS(2021-05-07) うちの環境では30分くらいで完了 書き込み完了したらラズパイに差し込んで、HDMIのディスプレイとUSB接続のキーボードとマウスを接続し、電源を入れて起動します はじめからSSHを有効化して繋ぐ方法もありますが、うちはWi-Fiがない(テザリングでなんとかしている)ですし、最初はディスプレイとキーボード、マウスで触ったほうが扱いやすいと思います ちなみにRaspberry Pi Imagerの最新バージョン(v1.61以上)では書き込み時にWi-Fiとsshの設定ができるみたいです ラズパイのデスクトップが表示されたら初期設定のウィンドが出ますので、指示されるままに進めていきます(地域、タイムゾーン、言語、Wi-Fi、パスワードの変更等) 上記が終わると再起動を促されるので再起動します sshの有効化 やることは2つ sshのフォルダをつくる 設定から有効化 sshフォルダを作るにはラズパイ上でターミナルを開いて以下を実行します sudo mkdir /boot/ssh 次に「設定」→「Raspberry Piの設定」からsshを有効にします スクショではVNCも有効化しています(下で説明します) 一旦再起動 macからssh接続してみる それではmacからssh接続してみます ホスト名は何も変更していなければ pi ラズパイに割り振られたipアドレスを確認しておきます(私の場合は192.168.43.181でした) fingで調べられます Macのターミナルで以下を打ち込んでssh接続します sudo ssh pi@192.168.43.181 ラズパイに接続完了 sshじゃなくてリモートデスクトップ リモートデスクトップならmac上でラズパイのデスクトップが見れるのでこちらのほうが良いかもしれませんね こちらのサイトさんの手順で進めます ラズパイには最初からリモートデスクトップのソフトが入っているようなので、「設定」→「Raspberry Piの設定」からVNCを有効にします macからVNC viewerアプリで接続します ラズパイに接続完了 ここまでできたら次回起動時はディスプレイ、キーボード、マウスは不要です ラズパイだけ起動してリモートデスクトップで作業を進めます ...

2021/09/05 · Last updated on 2023/09/23 · 1 min · 65 words

いい感じのテーブルをDo It Yourselfした(じこまん)

テーブルを作りました(^^) いい色、良いサイズ感、お気に入り(じこまん) 作ったと言っても、天板に脚をつけただけの簡単工作です笑 こんなのがほすぃ・・・ かなでものさんのこのテーブルがグッときた かっこいい・・・しびれる・・・ほしい・・・ でも高い・・・ 作ろう まず天板 色は明るめが良いので、パインを狙ってました。安いし。 でも調べていくうちに加工がしやすい=柔らかい とのことで、辞めました。 そこで雰囲気はパインと似た明るめで硬いラバーウッドにしました。かなでものさんと一緒ですね。 無垢か集成材も迷いましたが、集成材にしました。無垢だと木目がきれいでデザインは良いですが、経年で反ったり割れたりするとのことです。強度も比較的安定してる集成材にしました。 というわけで、ラバーウッドの集成材に決定! (ラバーウッドは集成材しかないっぽい?) 製作じゃー ラバーウッドは近所のコーナンにもありましたが、メルカリの残高があったのでメルカリで入手。 メルカリに還元じゃぁー! 品質の良いものをゲットできました(^^) ありがとうございます。 サイズは、幅1000 ☓ 縦500 ☓ 厚み25(mm) 25mm厚って結構厚いです。これなら反り防止の補強は要らなそうです(いれてません) 重さも9kgあってずっしり重い。良さそう 脚はこれにしました。長さ68cm 10等身じゃない並の日本人ならちょうどよいのではないでしょうか。私は丁度よいです。 Amazonで評価も比較的よく、そして安い。4本で1800円とか格安じゃん!ポチィ〜! そしたら1本しか届かなかった。1本売りだった。 3本追加で購入で、7000円強 かなでものさんのスクエアタイプの脚はカッコよすだったんですが、掃除がしずらそうなので辞めました。あと、構造的に反り防止にもなるから良いな。後々の気分転換の候補に入れよう。 脚には木ビスが付属されていましたが、使いませんでした。 重量もありますし、移動時は脚が外せてコンパクトになるのが都合が良いです。 ということで、取り外しが楽ちんな鬼目ナットとメートルねじにします。 脚にある天板への取り付け穴径は5mmですので、M5ではぴったりです。自分の加工精度を信用できないためネジはM4とします。 鬼目ナットはM4の15mm長にしました。例のごとくAmazon 10mmが多く出品されていましたが、強度を確保したいため天板の厚み(25mm)を考慮して長めのを探して15mmと決めました。 あと一緒にΦ6の下穴を開けるために6mmのショートビットと、深さガイドのドリルストッパーも手に入れました。 ショートビットは先三角タイプです。キリみたいになってます。 いろいろなブログを見ると先がねじ式を勧めているのが多いです(ネジ式はネジが木に食い込んでグイグイ掘り進んでくれる) ですが、掘りすぎを心配したため先三角にしました。特に問題にはなりませんでした。 インパクトは持ってないので簡易的なドリルですが、これも結構良いです。USBの充電式ですが結構パワーありますし、チャック位置が低いので、狭いところも入れられるのがポイントです。 こんな感じでセット!鬼目ナットは15mmなので、下穴の深さは2mmマージンをとって17mmとします。 ストッパーを17mmの位置に固定 脚を天板に仮置して、位置決めします。ネジ穴は結構端にありますが、端過ぎると天板の強度が心配だったので内側に10mmオフセットした位置にしました。 脚と天板には番号を振っています。 同じ脚ですが、微妙に穴位置が違うかもしれないし、自分の加工精度で穴がズレるかもしれない。など諸々を考え、4本それぞれ位置を決めています。 位置が決まったので、ボールペンで穴位置をけがきます。 (ちっちゃい点はミスったw オフセットする前の位置) それでは下穴をあけましょう〜 垂直にあけるのが、まぁ難しい!切り粉がきれいです。 ショートビットはきれいに穴が空きますね! 4個空きました。脚には5箇所穴がありますが、鬼目ナット20個セットのうち1個練習用で失って19個しか無いので、4箇所固定にしました笑 鬼目ナットを六角レンチでねじ込んでいきます。 ここで曲がるとアウトなので、六角レンチは長い方を使い垂直になるようにねじ込んできます。 木工用ボンドは塗布してません。 ...

2021/05/13 · Last updated on 2023/09/23 · 1 min · 91 words

HILMO(ヒルモ)LP-C2207を分解した^_^

ピストでヒルモを使ってて具合が良いのでママチャリに導入すべく購入! 中身を見てみたくなるのは性なのか、新品を分解して見てみました。壊さなくて良かった・・・・笑 写真たくさん載せました^_^ ヒルモについて 購入したのは、ヒルモのLP-C2207のカゴ下取り付けタイプです。 ヒルモは安全の観点から暗くなったらつくのではなく、常時点灯のライトです。 アマゾンで1444円とお安く購入できました(^^) マニュアル https://si.shimano.com/pdfs/dm/DM-CALP001-03-JPN.pdf https://si.shimano.com/api/publish/storage/pdf/ja/um/7G20A/UM-7G20A-003-00-JPN.pdf これはあまり役に立たなかった資料(添付されていた資料のQRコードから) 分解の意図 ハブダイナモは従来の6V2.4Wより出力を抑えて6V0.9Wとなっており、常時点灯でもチャリこぎが重くならないように工夫がされています。 ヒルモのハブダイナモ0.9Wで使用するのが当然なのですが、ママチャリのは従来の2.4W 負荷が軽くなるとハブダイナモは電圧が高くなるので、そのへんが大丈夫か確認するために回路を見ようと思って分解しました。 ライトは0.9Wのダイナモで駆動する設計になっているので、最大でも0.9W程度しか消費しないですが、それを2.4Wのダイナモにつけると、ダイナモ側からは負荷が軽くなる(2.4Wから0.9Wにへる)のでその分電圧が高く出てしまうというわけです。 すると半導体素子の耐圧とか諸々の問題がでて壊してしまう可能性があります。(たぶん) ハブダイナモの特性については、各サイトさんで詳しく測定されているので、そのデータを参考にさせていただきます。ありがとうございます!(^^) みると、速度30km/h時に負荷開放(最も軽負荷)で19Vrms程度なので、最大で20Vrmsくらいと考えておきます。素子耐圧はこれを考慮してみます。 分解 アマゾンで購入するとこんなパッケージで届きました。 簡易包装で良いですね。本体と付属ネジが袋のラミネートで仕切られているのもいい配慮です、シマノさん。 端子は、J2-Aタイプで、ハブダイナモにコネクタ1つでさせるようになっています。 従来型はJ2タイプで平型の圧着端子2本接続です。もしくは1本(1本のときはチャリとの取り付けネジ部分がアースとなっています。錆びてると電気が流れずに点灯しません) ネジを緩めると、角度が変えられます。※ネジはこの状態からは抜けないので注意! レンズ側のカバーをひねって外してから、黒カバーを外します。 マイナスドライバーでちょっと浮かせてやれば↓写真のように動きます。 取れました。 ネジはカバーを外したら抜けます。ネジを外せば取付金具が取れます。 レンズ部分はOリングがあるので、爪楊枝で角を持ち上げて、ピンセットで丁寧にとりました。 接着はされていないですが、ピッタリはまって少しくっついています(ゴムだから?) 基板。使ってない穴があるので、他製品にも流用しているんですね。 真ん中の黄色いチップがLEDです。約2mm各です。ちっちゃい! 表面には半導体素子が2つしか見当たりません。基板が厚めなので、もしかして内層に部品が実装してあるんですかね?わかりません。厚みがあるのは単に強度のためかもしれません。 シルクはD1,D2とあるのでダイオードと推定します。 レーザー刻印がD2Sとあるので、調べてみると、どうやらロームのショットキーダイオードですね。 多分、RBE2EA20A https://fscdn.rohm.com/jp/products/databook/datasheet/discrete/diode/schottky_barrier/rbe2ea20atr-j.pdf Vfはmax0.39V程度らしく、測ってみるとどれも0.13V程度だったので大体あってそうです。 ダイオードが2個しか見当たらないので、単純にダイナモの交流を全波整流していると考えました。 きっとどこかに制限抵抗があるはず! 平滑コンデンサも見当たりませんし、手持ちのヒルモは漕ぎ出しがピカピカ光る(点滅)ので、漕ぎ出しの低周波が全波整流してボコボコしているので点滅していると考えれば、全波整流かもしれません。 すると、ダイオード1つにはダイナモの電圧がそのままかかるので、最大19Vrmsとすれば、ピーク電圧は19V*√2=26.8Vpeak(正弦波)となります。 データシートだと、逆耐圧が20Vなのでオーバーしていますが、サージ耐量が30Vで、正弦波の半波がデューティ50%と考えれば30V耐圧と考えて良いと思います(強引) よって、多分大丈夫でしょう!(自己責任で) まあ、アマゾンのレビューでも普通に使えました!とあるので平気なんだと思います。 内側は空っぽ ...

2021/04/10 · Last updated on 2021/05/10 · 1 min · 55 words

「OK,google 空気清浄機」 でプラズマクラスター空気清浄機KC-E50を動作させる google home miniとRM mini3(黒豆)

皆さん、空気清浄機つかってますかー? 私はこの時期は空気清浄機を常につけています。 使っているのはシャープのKC-E50 プラズマクラスターに期待しているのです。コロナよぉ 加湿機能があるので、寝る前は必ずつけているのですがたまに忘れちゃいますね。 寒いから布団に入ってぬくぬくしているのに、ボタン押すために布団から出たくない! というわけで、googleにつけてもらいましょう! でも、この空気清浄機にはリモコンは付属していないです。(ボタン押さなきゃならない?) ですが、エアコン連動機能というものがあり、赤外線受信部があります。 これを利用します! 使うもの google home mini RM mini3(黒豆)(赤外線のスマートリモコン) BroadLinkのアプリ(iPhoneXで使用) 前はihcってアプリ使ってました。結構癖あり 空気清浄機と連動機能がついたシャープ製エアコンのリモコン エアコンは AY-G25H を使用 エアコン本体を用意する必要はないですよ。空気清浄機をオン・オフするための赤外線信号を学習するためだけに必要なのでエアコンの”リモコン”があればよいです。 KC-E50(シャープの空気清浄機) 黒豆は当時gear bestで1200円くらいで買いましたね。やすかったな。 homeassistant上だと、黒豆はred beanなんだよな。赤豆じゃん(全く関係ない) 概要 エアコンのリモコンとBroadLinkアプリを使って空気清浄機をオン・オフする赤外線信号を黒豆に学習させる BroadLinkアプリでscenes(シーン)を登録する google home mini と BroadLinkをリンクする google home miniにBroadLink内で設定したものが現れる google home miniのルーチン機能で黒豆を動作 黒豆から赤外線信号がでて、空気清浄機がオン(オフ) 赤外線信号はオンとオフは同じ信号のようなので、一つの信号だけになります。(リモコンから出てるのはそうっぽいです。取説見てもリモコンのボタンはオン・オフで同じなので。でも、エアコン本体から連動中に出ている赤外線信号はオン・オフ別信号が出ているはずです(取説(※)より) シャープの加湿空気清浄機KC-E50 シャープのエアコン AY-G25H エアコンのリモコンとBroadLinkアプリを使って空気清浄機をオン・オフする赤外線信号を黒豆に学習させる まずは、黒豆に赤外線信号を出してもらうには学習してもらわねばなりません。 学習には、BroadLinkのアプリを使います。私はiPhoneXなのでiPhoneアプリとして説明しますね。 以前はihcアプリ(下の画像の左上)じゃないとダメぽかったので使ってましたが使いづらかった。インストールするにも苦労した記憶が?(忘れた)同じアカウントで入れば、ihcアプリでもBroadLinkアプリでも内容が同期されます。が、google home miniで連携すると2つずつ重複表示されてしまいますので、私はBroadLinkアプリだけにしました。 黒豆はすでに使えるものとして扱いますね。 右上の+を押して、追加していきます。 Add remote を押します ...

2020/12/27 · Last updated on 2020/12/27 · 2 min · 254 words

ニトリのケトルを直した

2022/05/15追記 このケトルはカタログ落ちしたようだ。 追記終わり ######################## 我が家の主力。これが無くては一日が始まらない。 お財布にも優しい1,790円(税別) 壊れても悲しくない!ラフ(雑)に扱える! ハードユースなニトリケトルがお亡くなりになってから暫くたった。2年は頑張ったね。 消耗品なので、すぐさま買い替え、今は2代目(同じくニトリケトル)が活躍してくれている。 復活の理由 以前作った低温調理器はヒーター出力が100Wしかなく、温めるのにメチャメチャ時間がかかっています。 出力アップじゃー!ということで新しいヒータを検討しましたが、ニトリケトル使えんじゃね?となり、直すことにしました。 低温調理器として第二の人生を歩んでもらいます。 ニトリケトルの出力は1kW 10倍アップ! オンオフ制御だから、温度がオーバーシュートしやすくなるのはしょうがないとしてとりあえず試してみました。 制御側でヒステリシスを小さく(0.5℃)にしたら案外温度のリプルも小さく(3℃くらい)収まりました。 ケトルなので水の扱いも楽だしね。 壊れた原因 テスターチェックすると接点が荒れて導通していませんでした。(だいたいこれ) 最大AC100V×√2=141Vpeakの電圧がかかっているタイミングで切る可能性があって、負荷がヒータ(=電熱線=インダクタ)なのでサージが発生する。 300Vくらいでスパークしていたのではなかろうか。 ケトル底面でプラスチックの筐体越しにスパークしてるのがよく見えたもんだ。 あとは過熱保護の温度ヒューズ(184℃)が切れていることを疑いましたが、これは無事でした。空焚きした記憶無かったしな。 分解 定番ですが、自己責任で! AC100Vを扱うので、注意。失敗すると火が出ます(出したことあります。怖い怖い) まずひっくり返します。 裏に3つネジがあるので外せば裏蓋がとれます。 ネジはプラスではなく、いたずら防止で三角っぽいネジです。 たまたまドライバーがあって外せました。 取れました。 バイメタル部分で温度を検知してスイッチを切る方式ですね。よくあるやつ。バイメタルは膨張率が違う異種金属をあわせてあるもので、温度が変化すると反ります。その反りを利用して機械的に動かします。 バイメタルはもう一箇所、中心にあります。(今は見えません) 電極近くにあり、電極を直接離すために使われていそうです。 青丸で囲った3箇所のネジ(プラス)を外して、取ってみます。 あと、ファストン端子から赤白のケーブルを抜く必要があります。結構固くて、ラジペンで挟んで抜きました。 取りました。 L,Nの2箇所それぞれで接点を切れるようになっていることがわかりました。 もう一つのバイメタルは取ってしまったあとに写真を撮ったので写っていませんが、写真下側の接点をピンを介して押し下げ、接点を切り離す役目のようです。 こちらの接点はとてもきれいでした。シロだ!導通もしています。たぶんちゃんと動作していない(と思うほどの綺麗さ) 反対に上側の接点は手で操作するレバースイッチと連動しています(先に紹介したバイメタルとも連動)こちらが原因でした。真っ黒。すすだらけ。接点が荒れていて、導通がありませんでした。こっちばっかり切れて負荷が偏ってしまったのかもしれないですね。 白いのは熱伝導を良くするためのコンパウンドなので、そのままにしておきます。 側面から。 裏(表?)から。 側面から。 キレイな方の接点。 こちらが原因の、汚い方の接点 このままでは、分かりづらいですし、磨けませんね。 更に分解しましょう。 分解するためには、銀色の金具を外すのですが、どう見てもネジを外して取れる構造ではないです。 ですので、まず、FG(アース)ピンを抜いて取ろうとしましたが、アースが電気的に接続されていたら、つなぎ直しなどが面倒くさいので、接続を確認しました。 で、ケトルではなくて台側を分解してみたらアースは何も接続されていませんでした。 確かにコンセントのケーブルはアース端子無かったもんね。 ということでFGピンは抜いてOKということがわかりました。 FGピンはカシメてあったのでドリルでもんで抜いちゃいました。真鍮だから柔らかくて簡単。再利用できません〜。しないからいいけど。 あとは、4箇所のツメをマイナスドライバーで持ち上げて取る。こちらも意外と柔らかい。 すると、接点部分があらわになります。 不良の方のカバーを外す。 ...

2020/04/29 · Last updated on 2023/09/22 · 1 min · 65 words

サラダチキンが食べたくて低温調理器を作った(が、サラダチキンは作っていない)

みんなの筋肉、サラダチキン🐓 サラダチキンを作ろう。 どうやってサラダチキンを作る? 先人たちの智慧を借り、低温調理器を使えば作れそうとわかりました。 火で焼くのではなく、60℃程度の低温でじっくり火を通すことで、肉が固くならず、美味しくできるのですね。 調べると、美味しそうな情報ばかり。皆さん、作るのが上手ですね。市販はパサつきが気になりますが、自作するとジューシー。それでいて安い。 低温調理器といえばAnovaが有名ですね。 でもお高いですね。スタイリッシュですね。2万円弱します。買えないです。じゃあ作りますか。 というわけで、サラダチキンを作るために低温調理器を作ります。 低温調理器で調べると低価格なものがたくさん出ていますね。水を入れる容器とかもセットになったのが売っているし、もう作る意味が無いじゃないかと。でも良いんです。です。。。 チキンの加熱時間 中心部温度が60℃で1時間加熱すれば、食中毒は回避できそうですので目安とします。 必要なもの サーモスタット、水を温めるヒーター、水を入れる容器が必要ですね。 Amazonで↓こんなサーモスタットが売っているので買ってしまえば簡単なのですが、それでは面白くないのである程度自分で作ってみることにしました。(といっても、中身の動作は同じです。作りたいだけ。) サーモスタット(温度コントローラ)の役目は、設定温度に一定に保つことです。(今回なら60℃キープ) これを実現するには、温度センサで温度を監視しておいて、設定温度になったらヒーターの電源を切って、温度が下がったらヒーターの電源を入れて温めてあげるようにすれば良いです。 回路、パーツ、コスト 回路、パーツを考えました。 金額 購入場所 サーモスタット(温度コントローラ) 710 Amazon 水を温めるヒータ(100W) 2,600 Amazon SSR-40 DA(AC24~380V 40A) 1,000 秋月電子 ガラス管ヒューズ MF61NR (250V 15A 32mm) 40 秋月電子 ACアダプター(DC12V 1A) 580 秋月電子 ケース 250 秋月電子 ヒューズホルダー 45 秋月電子 支柱、ネジ、ケーブル、スイッチ、水を入れる容器など 0 手持ち 合計 5,225 サーモスタット(温度コントローラ) Amazonで2個セットがあったので購入しました。 本当は1つで良かったのですが、2個セットが安かったのでこれにしました。 動作としては、測定温度が設定温度より低い時は基板上のリレー(黒い箱)がON(K0-K1間が導通)し、高い時はOFF(K0-K1間が開放)します。これにより、以下で紹介するSSRをスイッチングします。 説明書は「XH-W1209」でググるとでてきますが、以下にも貼っときます。 http://www.wav-j.com/support/XH-W1209/waves-W1209-manual.pdf ヒステリシスは初期設定の2℃としました。 温度センサ(NTCサーミスタ)付き。 AC100VをON・OFFするのに、サーモスタット基板上のリレーではなくSSRを使うわけ サーモスタットの取説を見ると、リレーは「最大AC240V 5Aをスイッチングできる」とあります。(ここで言う電流は実効電流(5Arms)と考えます。) ...

2020/01/26 · Last updated on 2023/09/22 · 1 min · 177 words

温湿度センサーDHT11で取得したデータをシリアル通信でmbedからPCに送る

前回、mbedとDHT11を使って、取得した温湿度をlcdに表示させました。 その時の記事↓ やること 今回は、lcdにも表示させつつ、PCにシリアル通信でデータを送り、PC上で表示させてみたいと思います。 環境 Windows10 Pro バージョン1809 64bit 概要 次はPythonかProcessingでシリアル通信して表示させたいのですが、まずはPCのシリアル通信ソフトで試してみたいと思います。 今回はwindowsで行っているので、TeraTermを用います。 結線 前回と同じです。 表1 : DHT11とmbedの接続 DHT11 mbed 備考 電源(赤色) VOUT 3.3V センサー出力(緑色) 23pin なし GND(黒色) GND 0V mbedのプログラム #include "mbed.h" #include "TextLCD.h" #include "DHT.h" //lcdの初期設定 TextLCD lcd(p10, p12, p15, p16, p29, p30); // RS(4), E(6), D4(11), D5(12), D6(13), D7(14), GND R/W(5) //シリアル通信の初期設定 Serial pc(USBTX, USBRX); // tx, rx //LED1の初期設定 PwmOut led1(LED1); //pwm出力 //DHT11初期設定 DHT sensor(p23,DHT11); //sense:p23 vcc:vout(3.3V) gnd:gnd float temp_data = 0; float humi_data = 0; float temp_sum = 0; float humi_sum = 0; int c = 0; float temp_ave = 0; float humi_ave = 0; Ticker flipper; int err; //"Ticker" 繰り返しタイマー割り込み //割り込みの時にlcdに表示 void flip(){ //lcdに表示 lcd.locate(0,0); lcd.printf("Temp is %2.0f C",temp_ave); //整数の精度なので、小数点以下は出さない lcd.locate(0,1); lcd.printf("Humi is %2.0f %%",humi_ave); //整数の精度なので、小数点以下は出さない //teratermに表示 pc.printf("Temp is %2.0f C\n",temp_ave); //整数の精度なので、小数点以下は出さない pc.printf("Humi is %2.0f %%\n\n",humi_ave); //整数の精度なので、小数点以下は出さない } //main関数 int main(){ lcd.cls(); lcd.locate(0,0); //lcdの表示消去 lcd.printf("Temp and Humi \nSensor"); wait(1); //安定するまでしばし休み lcd.cls(); flipper.attach(&flip,10); //タイマー割り込み動き出す。 10秒ごとに割り込みでvoid flip()に飛ぶ。 while(1){ err = sensor.readData(); if (err == 0){ //err=0は,データが取れたということ。 temp_data = sensor.ReadTemperature(CELCIUS); humi_data = sensor.ReadHumidity(); temp_sum = temp_sum + temp_data; humi_sum = humi_sum + humi_data; c++; if(c==10){ temp_ave = temp_sum/11; humi_ave = humi_sum/11; temp_sum = 0; humi_sum = 0; c=0; led1=0.1; //アベレージが取れたらLED1点灯。眩しくてうざいのでpwmで暗くした } } else{ led1=0; } } } 前回のコードからあまり変わりませんが、シリアル通信に関する部分を追加しています。 ...

2019/12/14 · Last updated on 2019/12/14 · 2 min · 234 words

mbedと温湿度センサーDHT11で温度湿度を取得してlcdに表示

ひさびさにmbedを引っ張り出してきました。 いつも間が空くので忘れてしまってググりながらやるのですが、この記事も参考にできるように載せます。 やること 温湿度センサーDHT11を使って、温湿度を取得し、キャラクタlcdに表示してみます。 mbedにはLPC1768を使用します。 DHT11は扱いが簡単なモジュールタイプを使います。 注意点 DHT11は安くてお手軽で良いのですが、出力が整数(温度も湿度も)です。小数点以下の値は出ず、0になります。例えば20.4℃でも20.0℃となります。 上位のDHT22でしたら、0.1の桁まで出るようです(持ってないので未確認です) ライブラリには、lcdを動かすにはTextLCD、DHT11を動かすにはDHTをそれぞれインポートしました。 lcdの接続はライブラリに載っている接続と違いますので注意してください(使いたいデジタルピンと重なっていたので変更しました) DHTはそのままです。 DHTの電源範囲は3.3V〜5.5Vですが、今回は3.3V入力としました。温度計を隣において、5V入力だと3.3V入力時よりもちょっと温度が高くでまして、温度計より乖離が大きくなったので「きっと」3.3V用のライブラリだろうと進めました笑(ライブラリはしっかり見ていません笑) 結線 mbedのpinは「mbed ピンアサイン」で検索すると出てきます。 接続は以下の表1のようにしました。 表1 : DHT11とmbedの接続 DHT11 mbed 備考 電源(赤色) VOUT 3.3V センサー出力(緑色) 23pin なし GND(黒色) GND 0V プログラムの説明 プログラム中にコメントを入れていますのでざっくりと説明します。 仕様をみると、DHT11は2秒以上でサンプリングするようですが、見ているとだいたい1秒間隔ぐらいで温湿度を取得して値をくれていそうです。しかし、取得に失敗することもあるようなので、失敗しなかった時に値をもらうようにします。 タイマー割り込みで、10秒おきにlcdの表示を更新してます。 取得値そのままでも値がバタつくことはなかったのですが、気休めで11回の平均値をlcdには表示しています。 #include "mbed.h" #include "TextLCD.h" #include "DHT.h" //lcdの設定 TextLCD lcd(p10, p12, p15, p16, p29, p30); // RS(4), E(6), D4(11), D5(12), D6(13), D7(14), GND R/W(5) //LED1を使うので定義 DigitalOut led1(LED1); //DHT11関係設定 DHT sensor(p23,DHT11); //sense:p23 Vcc:VOUT(3.3V) GND:GND float temp_data = 0; float humi_data = 0; float temp_sum = 0; float humi_sum = 0; int c = 0; float temp_ave = 0; float humi_ave = 0; Ticker flipper; int err; //Ticker 繰り返しタイマー割り込み //割り込みの時にlcdに表示 void flip(){ lcd.locate(0,0); lcd.printf("Temp is %2.0f C",temp_ave); //整数の精度なので、小数点以下は出さない lcd.locate(0,1); lcd.printf("Humi is %2.0f %%",humi_ave); //整数の精度なので、小数点以下は出さない } //メイン関数 int main(){ lcd.cls(); //lcdの表示消去 lcd.locate(0,0); lcd.printf("Temp and Humi \nSensor"); wait(1); //安定するまでしばし休み lcd.cls(); flipper.attach(&flip,10); //タイマー割り込み動き出す。10秒ごとに割り込みでvoid flip()に飛ぶ。 while(1){ err = sensor.readData(); if (err == 0){ //err=0は,データが取れたということ。 temp_data = sensor.ReadTemperature(CELCIUS); humi_data = sensor.ReadHumidity(); temp_sum = temp_sum + temp_data; humi_sum = humi_sum + humi_data; c++; if(c==10){ temp_ave = temp_sum/11; humi_ave = humi_sum/11; temp_sum = 0; humi_sum = 0; c=0; led1=1; //アベレージ値が取れたら、LED1点灯 } } else{ led1=0; } } } 今後 次はPCとシリアル通信して、温湿度グラフを書いてみたいと思います(願望。できるかは別として笑) ...

2019/11/30 · Last updated on 2023/09/22 · 1 min · 187 words