投稿

8月, 2022の投稿を表示しています

水位センサーXKC-Y25とオープンコレクタ入力

イメージ
 水位センサーについては UECS Piで肥料管理機を作る③ で触れました。今回はXKC-Y25という非接触式液体レベルセンサを入手しましたので検証結果を報告します。 非接触式液体レベルセンサー XKC-Y25-V(左)とXKC-Y25-PNP(右) このセンサーを使用すると下の図のように水槽の壁面に貼り付けて液体に接触せずに水位を検知出来ます。(金属の水槽はだめ) 機械式に比べて設置が簡単だし、水漏れ、腐食の心配もないので便利だと思います。 XKC-Y25取付例  データシート より ネットショップの商品説明 https://ja.aliexpress.com/item/32623722632.html さて、XKC-Y25ですがネットで検索すると3種類あることがわかります。XKC-Y25-V、PNP、NPNです。(データシートのT12VはVではないかと思います) 詳しい説明が書いていませんので今回は2種類(VとPNP)を買って試してみました。ポイントはオープンコレクタという接続方式で、PNPとかNPNとかのモデルの違いで差があるのかということです。 オープンコレクタって何? 簡単にいうとトランジスタを使ったスイッチ回路で、アウトプットがトランジスタのコレクタに接続されているのでそのような名称です。 詳しくはこちらを参照→オープンコレクタとは?接続方法とNPNとPNPの違いについて https://ana-dig.com/open_collector/  これは概念図であり、実際のセンサーの回路とは異なります トランジスタは、上の図でB(ベース)に電圧がかかるとC(コレクタ)とE(エミッタ)が接続された(スイッチが入った)状態になります。スイッチが入った状態のとき、NPN型ではOUTの端子はGNDと同じ電位になり、PNP型ではVccと同じ電位になります。OUTをRaspberry PiなどのGPIOに接続すればセンサーのスイッチがオンになっているのかオフになっているのかがわかるという仕組みです。 XKC-Y25-PNPの場合 PNP型からテストしてみましょう。ケーブルは4本あり、VCCには電源5V~12Vを入力します。 (T12Vのデータシートでは5~24Vになっている?)   Raspberry Piでは5V電源に接続すればいいでしょ...

UECS PiにLCD(デイスプレイ)を接続する

イメージ
UECS PiユーザーマニュアルにはLCDモジュールの接続方法が記載されています。LCDを使用すれば、センサーで測定した値を表示できます、写真は温度、湿度、CO2濃度を表示したものです。 LCDはACM1602NIをモジュールにしたものを秋月電子通商で販売していますのでこれを使用します。  ACM1602NI→ https://akizukidenshi.com/catalog/g/gP-05693/ しかし、ここに超えないといけない山があります。マニュアル曰く、 モジュールの初期状態ではI2C通信速度が100kHzに対応していないためそのままでは動作しません。以下のHP情報を参考にモジュールのファームウェアを100kHz対応版に書き換えてください。 要するにLCDはI2Cで接続されますが、通信スピードをRaspberry Piと合わせないと接続できないということです。そのためにLCDのファームウエアを書き換えろと言っているのですが、これがなかなかむつかしいのです。ファーム書き換え用のツールである PICkit3(ネットで5千円~6千円する)を買ってきて、PCに開発環境を作ってサンプルプログラムをダウンロードして、ファームを書き換える。やってみましたがうまくいかず挫折しました。これはよほど慣れた人でないとできないと思います。 そこで下記のブログに書いてあるようにRaspberry Pi側のI2C通信スピードをLCDに合わせます。結果的にこちらの方がはるかに簡単でした。 参照) 秋月の I2C接続キャラクタLCD を Raspberry Pi に接続 Raspberry Pi ZeroにLCDと温湿度センサーSHT21とCO2センサーS-300を接続した。 LCDの表示は月日、時刻、温度、湿度、CO2濃度。 Raspbery Piは、自作のスタッキング基板の裏に隠れている。 青い可変抵抗はLCDのコントラストとバックライトの調整用。 Raspberry PiのI2C通信スピードを変える ブログにあるようにI2Cのbaudrate(ボーレート)を100KHzから50KHzに落とします。 「ボー」なんて大昔の通信モデムを使ってた方しかご存知ないと思いますが、bpsの類の言葉です。正確には1秒間の変調回数をいうもので50KHzは1秒間に50000回変調するということ。アナロ...

UECS Piファームウエアを自分用にカストマイズする④

イメージ
UECS Piのカストマイズシリーズの最後にSSHを使えるようにする方法を紹介します。 SSHは分散系システムのエンジニアでないとなじみがないかもしれませんが、分散系開発ではよく使われるツールです。Raspberry Piは個人で使うことが多いと思いますが、UNIX OSは本来サーバーとしても使われるので複数ユーザーで別の端末から操作できるようになっています。SSHを使えば自分がいつも使っているPCからRaspberry Piを操作することができます。 これまで紹介したUECS Piファームウエアのカストマイズでは、ネットワーク構成のファイルなどをテキストエディタで編集しました。複数の環境でUECS Piを運用する場合に何かの理由でSDカードを交換することがあると思いますが、いちいちネットワーク定義ファイルを手で書き換えるのは面倒ですし、間違いも起こりがちです。実績のあるファイルをPCに保管して必要な都度置き換える手順をとれば運用しやすくなります。 SSHのクライアントソフトを使えば、Raspberry PiのSDカードの中身をPCの1つのドライブのようなイメージで操作することができます。 なお、この記事ではPCで使用するOSはWindowsを前提にしています。MACの方はPC側のソフトをそれようにしてください。 何ができるようになるか 下記の写真はWinSCPというクライアントソフトを使ってRaspberry PiのSDカードの/etc/networkディレクトリを表示したものです。右がRaspberry Piのディレクトリで左がPC側のフォルダーです。 WindowsのWinSCPでRaspberry Piのディレクトリーを表示 上の画面でファイルを選択して右のRaspberry Piから左のWindows側にドラッグアンドドロップすればファイルをコピーできます。画面では左のPCのフォルダーにすでにネットワークファイルをコピーしています。Windows側からRaspberry Pi側にも左から右のドラッグアンドドロップでコピーできます。 また、ファイルをダブルクリックするとWindowsのエディターでファイルを編集できます。ネットワークで検索したプログラムや定義内容もコピペで編集できるので便利です。エディターはWinSCPの設定で好きなものを追加できます。 De...

Raspberry Pi Zero WでUECS Piを動かしてみる

イメージ
 AmazonでRaspberry Pi Zero Wが3300円(送料別)で売られているのを見つけて衝動買いしてしまいました。半導体不足前は1800円ぐらいで売られてたのですが、今となっては他では1万円とか2万円とかで売られているものもあり、3千円台は非常に良心的だななあと思います。 これでUECS Piが動くならRaspberry Piの価格高騰、品不足問題を緩和できると思い、試してみることにしました。 (当然のことながら、Raspberry Pi ZeroはUECS Piのサポート対象外なので、使う時は自己責任にてお願いします) スペック比較 まずは仕様を比較しておきましょう。Raspberry Pi Model BはUECS Piがサポートする最下位モデル。Raspberry Pi 3Bは私がいつも使っているモデルです。 Raspberry Piの仕様比較 ( Wikipediaから抜粋 ) 追記)Pi Zero WのCPUの表記が適切でなかったので訂正しました。 Pi Zero WのCPU、メモリはModel Bと同等以上になっていますのでPECS Piを動かすキャパシティはあるんじゃないかと思います。ただし、有線LANのコネクタがないので、その点は考慮が必要です。 とりあえず動かしてみる UECS Piのファーム(無線LAN対応済み)のmicroSDカードで起動してみた。 ピンヘッダの向きの関係でボードの裏側が写っている。 温湿度センサーはSHT-21。CO2センサーはELT S-300。 先週のブログで紹介した無線LAN対応済みのUECS PiファームウエアのmicroSDカードがあったので、とりあえずそれで起動してみました。 無線LANで接続し、UECS PiのWEB画面からログインできました。Pi3に比べて少し反応が遅いですが、稼働に問題ないようです。(あっけなかった) ログインや起動後新たな画面表示に時間がかかるようで、CPUとかメモリの大きさよりもSDカードの読み込みに時間がかかるような気がします。boot時のCUIのメッセージ表示のスピードも遅いですね。そもそもPi3と比べるのはかわいそうか? ピンの配置もRaspberry piの40ピンの配置と同じなので UECS Piに接続できるセンサー入門② で紹介した自作のスタッキングボード...