Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Многотемпературный датчик

Компоненты и расходные материалы

DS18B20
× 8
винты
× 1
Arduino Nano R3
× 1
экспериментальная плата
× 1
резистор 4,7 кОм
× 1
2-портовый винтовой терминал
× 1
SparkFun RS232 Shifter - SMD
× 1
Корпус, напечатанный на 3D-принтере
× 1
провод
× 1

Необходимые инструменты и машины

3D-принтер (общий)
отвертка

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Мне нужно было считывать температуру по нескольким позициям. Температура должна быть проанализирована в домофонной системе (Crestron / AMX). Решение не должно стоить слишком дорого. Таким образом, я решил использовать датчики DS18B20, потому что они широко доступны и довольно дешевы. И последнее, но не менее важное:это автобусная система.

Датчики подключены к Arduino Nano. Последовательный выход Arduino (ttl) преобразован в RS232, чтобы сделать его совместимым с системой domotica.

Чтобы все это выглядело красиво, я разработал футляр и распечатал его на своем 3D-принтере Zortrax M200.

Вопросы? Не стейсняйся спросить!

Код

  • MultiTempSensor v1.0.0
MultiTempSensor v1.0.0 Arduino
Код Arduino
 / * Код MultiTempSensor от WT040 Код датчика основан на примерах от Рика Кретцингера и некоторых других фрагментах кода История:v0.1.1 27.11.2016 v0.1.5 04.12.2016 предварительная версия v1.0.0 04 / 12/2017 версия выпуска * /// Include # include  #include  // Константы # define SENSOR_PIN 12 # define READ_TIMER 10000 // 10 секунд // OneWire oneWire (SENSOR_PIN); // Передайте нашу ссылку oneWire в Dallas Temperature.DallasTemperature sensor (&oneWire); // Адрес датчика Адрес устройства Sensor1 ={0x28, 0xFF, 0x89, 0x0F, 0x61, 0x16, 0x03, 0x40}; DeviceAddress Sensor2 ={0x28, 0xFF, 0xE2, 0x0F , 0x61, 0x16, 0x03, 0x21}; Датчик адреса устройства3 ={0x28, 0xFF, 0x38, 0xB3, 0x60, 0x16, 0x03, 0xEA}; Датчик адреса устройства4 ={0x28, 0xFF, 0xA4, 0xBE, 0x60, 0x16, 0x60, 0x16, }; DeviceAddress Sensor5 ={0x28, 0xFF, 0xFE, 0x13, 0x61, 0x16, 0x03, 0x56}; DeviceAddress Sensor6 ={0x28, 0xFF, 0x89, 0xBA, 0x60, 0x16, 0x03, 0xFB}; DeviceAddress Sensor, ={0xFB} 0xFF, 0xFA, 0xB C, 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 («датчики ...»); // Инициализируем библиотеку измерения температуры sensor.begin (); // устанавливаем разрешение на 10 бит (может быть от 9 до 12 бит .. чем меньше, тем быстрее) sensor.setResolution (Sensor1, 10); sensor.setResolution (Sensor2, 10); sensor.setResolution (Sensor3, 10); sensor.setResolution (Sensor4, 10); sensor.setResolution (Sensor5, 10); sensor.setResolution (Sensor6, 10); sensor.setResolution (Sensor7, 10); sensor.setResolution (Sensor8, 10); getSensorsOnBus (); Serial.println ("Система инициализирована");} void loop () {counterCheckBus ++; задержка (READ_TIMER); Serial.println (); если (counterCheckBus ==360) {getSensorsOnBus (); counterCheckBus =0; } sensor.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 =sizes.getTempC (deviceAddress); if (tempC ==-127.00) {Serial.print ("Ошибка датчика!"); } else {Serial.print ("C:"); Серийный принт (tempC); }} void printProgramName () {String path =__FILE__; int косая черта =путь.lastIndexOf ('\\'); Строка programName =path.substring (косая черта + 1); int точка =имя_программы.lastIndexOf ('.'); programName =programName.substring (0, точка); Serial.print ("\ nВерсия программы:"); Serial.println (programName);} void getSensorsOnBus () {Serial.print ("Количество датчиков, обнаруженных на шине:"); Serial.println (sizes.getDeviceCount ());} 

Изготовленные на заказ детали и корпуса

Корпус для 3D-печати - снизу чехол для 3D-печати - сверху чехол для 3D-печати - крепление sub-d 9

Схема

принципиальная схема, без модуля rs232

Производственный процесс

  1. Датчик температуры DS18B20
  2. Регистратор температуры Raspberry Pi
  3. Датчик температуры Python и Raspberry Pi
  4. Датчик температуры и освещенности Raspberry Pi
  5. Датчик температуры Raspberry Pi
  6. Зеленый дом DasFilisera
  7. MotionSense
  8. Пожарная безопасность 3D-принтера
  9. CoroFence - Тепловой детектор🖖
  10. Датчик температуры подшипника | детектор