注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 愛好者コミュニティ (Facebook) へようこそ! Raspberry Pi、Arduino、ESP32 を仲間と一緒にさらに深く学びましょう。
参加する理由
専門的なサポート: 販売後の問題や技術的な課題をコミュニティとチームで解決。
学びと共有: 技術やチュートリアルを交換し、スキルを向上。
限定プレビュー: 新製品発表や先行情報に早期アクセス。
特別割引: 新製品を特別価格で購入可能。
イベント・プレゼント企画: プレゼントや季節キャンペーンに参加。
👉 一緒に探求し、創造しましょう。今すぐ [ここ] をクリックして参加!
3.1.7 過熱モニター (MCP3008)
はじめに
工場などで回路の過熱が発生した際に警報を出したり、機械を自動的に停止させたい場合があります。 このプロジェクトでは、サーミスタ・ジョイスティック・ブザー・LED・LCD を使用して、しきい値を調整可能なスマート温度監視装置を作成します。
必要な部品
このプロジェクトには以下の部品が必要です。
部品をまとめて購入するのが便利です。リンクはこちら:
名前 |
キット内数量 |
リンク |
|---|---|---|
Raphael Kit |
337 |
以下から個別に購入することもできます。
部品紹介 |
購入リンク |
|---|---|
- |
|
- |
|
- |
回路図
T-Board 名 |
physical |
wiringPi |
BCM |
SPICE0 |
Pin 24 |
10 |
8 |
SPIMOSI |
Pin 19 |
12 |
10 |
SPIMISO |
Pin 21 |
13 |
9 |
SPISCLK |
Pin 23 |
14 |
11 |
GPIO22 |
Pin 15 |
3 |
22 |
GPIO23 |
Pin 16 |
4 |
23 |
GPIO24 |
Pin 18 |
5 |
24 |
SDA1 |
Pin 3 |
||
SCL1 |
Pin 5 |
実験手順
ステップ 1: 回路を組み立てます。
ステップ 2: コードのあるフォルダに移動します。
cd ~/raphael-kit/c/3.1.7-2/
ステップ 3: コードをコンパイルします。
gcc 3.1.7_OverheatMonitor.c -lm -lwiringPi
ステップ 4: 実行ファイルを実行します。
sudo ./a.out
コードを実行すると、現在温度と高温しきい値 40 が I2C LCD1602 に表示されます。 現在温度がしきい値を超えると、ブザーと LED が作動して警告します。
ジョイスティック は高温しきい値を調整するために使用します。 ジョイスティックを X 軸または Y 軸方向に倒すと、しきい値が上下に調整されます。 ジョイスティックを押すとしきい値は初期値にリセットされます。
注釈
「wiringPi.h: No such file or directory」というエラーが出た場合は WiringPiのインストールと確認 を参照してください。
「Unable to open I2C device: No such file or directory」というエラーが出た場合は I²C 設定 を参照し、I2C を有効にして配線を確認してください。
コードや配線が正しいのに LCD が表示しない場合は、裏面のポテンショメータを回してコントラストを調整してください。
コード解説
int read_ADC(int channel) { ... }
MCP3008 の指定チャネル (CH0〜CH7) から 10 ビットのアナログ値を読み取り、0〜1023 の整数値を返します。
int get_joystick_value() { ... }
ジョイスティックの X 軸・Y 軸のアナログ値を読み取り、方向に応じて整数値を返します。
void upper_tem_setting() { ... }
ジョイスティックを使用して高温しきい値を調整します。方向を押し続けても連続変化しないようにしています。
double temperature() { ... }
CH0 に接続されたサーミスタのアナログ値を読み取り、Steinhart–Hart 式を用いて摂氏温度を計算します。
void monitoring_temp() { ... }
現在温度としきい値を LCD に表示し、温度がしきい値を超えた場合にブザーと LED を動作させます。
void setup_all() { ... }
LCD、SPI、ジョイスティックボタン、ブザー、LED 用の GPIO を初期化します。
int main(void) { ... }
メインループでは次の 2 つのモードを切り替えます:
温度監視
ジョイスティックによるしきい値調整
ジョイスティックボタンが押されて離されたとき (立ち上がりエッジ) にモードが切り替わります。