マルチ温度センサー
コンポーネントと消耗品
| | × | 8 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
アプリとオンラインサービス
> | | |
このプロジェクトについて
いくつかの位置の温度を読み取る必要がありました。温度は、domoticaシステム(Crestron / AMX)に解析する必要があります。解決策はあまり費用がかからないはずです。このように、DS18B20センサーを使用することにしました。これらは広く入手可能で、かなり安価だからです。最後になりましたが、これはバスシステムです。
センサーはArduinoNanoに接続されています。 Arduinoのシリアル出力(ttl)は、domoticaシステムと互換性を持たせるためにRS232に変換されます。
すべてを美しく見せるために、ケースをデザインしてZortrax M2003Dプリンターで印刷しました。
<図>
<図>
<図>
質問?お気軽にお尋ねください!
コード
MultiTempSensor v1.0.0 Arduino
Arduinoコード / * WT040によるMultiTempSensorコードセンサーコードは、Rik Kretzingerおよびその他のコードスニペットの例に基づいていますHistory:v0.1.1 27/11 / 2016v0.1.5 04/12/2016 pre-release versionv1.0.0 04 // 12/2017リリースバージョン* /// Include's#include #include // Constants#define SENSOR_PIN 12#define READ_TIMER 10000 // 10 seconds // OneWire oneWire(SENSOR_PIN); // oneWire参照をDallasTemperature.DallasTemperatureセンサー(&oneWire); //センサーアドレスDeviceAddressSensor1 ={0x28、0xFF、0x89、0x0F、0x61、0x16、0x03、0x40}; DeviceAddress Sensor2 ={0x28、0xFF、0xE2、0x0F 、0x61、0x16、0x03、0x21}; DeviceAddress Sensor3 ={0x28、0xFF、0x38、0xB3、0x60、0x16、0x03、0xEA}; DeviceAddress Sensor4 ={0x28、0xFF、0xA4、0xBE、0x60、0x16、0x03、0x }; DeviceAddress Sensor5 ={0x28、0xFF、0xFE、0x13、0x61、0x16、0x03、0x56}; DeviceAddress Sensor6 ={0x28、0xFF、0x89、0xBA、0x60、0x16、0x03、0xFB}; DeviceAddress Sensor7 ={0x28、 0xFF、0xFA、 0xBC、0x60、0x16、0x03、0xD1}; DeviceAddress Sensor8 ={0x28、0xFF、0x57、0xB1、0x60、0x16、0x03、0x93}; int amountOfSensors =8; //バス上のセンサーの量をチェックする変数whileint counterCheckBus =0; void setup(){//シリアルポートを開始して結果を表示Serial.begin(9600); // display_Running_Sketch(); printProgramName(); Serial.print( "初期化温度制御ライブラリバージョン"); Serial.println(DALLASTEMPLIBVERSION); Serial.print( "検索中"); Serial.print(amountOfSensors); Serial.println( "センサー..."); //温度測定ライブラリを初期化しますsensors.begin(); //解像度を10ビットに設定します(9〜12ビットにすることができます..低いほど高速です)sensors.setResolution(Sensor1、10); Sensors.setResolution(Sensor2、10); ensors.setResolution(Sensor3、10); Sensors.setResolution(Sensor4、10); ensors.setResolution(Sensor5、10); Sensors.setResolution(Sensor6、10); Sensors.setResolution(Sensor7、10); Sensors.setResolution(Sensor8、10); getSensorsOnBus(); Serial.println( "システム初期化");} void loop(){counterCheckBus ++; delay(READ_TIMER); Serial.println(); if(counterCheckBus ==360){getSensorsOnBus(); counterCheckBus =0; }センサー.requestTemperatures(); Serial.print( "センサー1:"); printTemperature(Sensor1); Serial.println(); Serial.print( "センサー2:"); printTemperature(Sensor2); Serial.println(); Serial.print( "センサー3:"); printTemperature(Sensor3); Serial.println(); Serial.print( "センサー4:"); printTemperature(Sensor4); Serial.println(); Serial.print( "センサー5:"); printTemperature(Sensor5); Serial.println(); Serial.print( "センサー6:"); printTemperature(Sensor6); Serial.println(); Serial.print( "センサー7:"); printTemperature(Sensor7); Serial.println(); Serial.print( "センサー8:"); printTemperature(Sensor8); Serial.println();} void printTemperature(DeviceAddress deviceAddress){float tempC =Sensors.getTempC(deviceAddress); if(tempC ==-127.00){Serial.print( "センサーエラー!"); } else {Serial.print( "C:"); Serial.print(tempC); }} void printProgramName(){文字列パス=__FILE__; int slash =path.lastIndexOf( '\\');文字列programName =path.substring(slash + 1); int dot =programName.lastIndexOf( '。'); programName =programName.substring(0、dot); Serial.print( "\ nプログラムバージョン:"); Serial.println(programName);} void getSensorsOnBus(){Serial.print( "バス上で見つかったセンサーの数:"); Serial.println(sensors.getDeviceCount());}
カスタムパーツとエンクロージャー
3D印刷可能なケース-bottom3D印刷可能なケース-top3D印刷可能なケース-sub-d9マウント 回路図
rs232モジュールなしの基本回路図