Бюджетный датчик температуры для серверной (и не только) arduino nano (~ 250 руб)

By | 14.10.2016

Доброго времени суток!
Сегодня мы Вам расскажем о создании бюджетного аппаратно-программного датчика температуры для серверной (и не только). Себестоимость, при наличии приборов равна ~ 250руб.

Задача:

Создать бюджетный температурный датчик и написать ПО с сохранением истории температуры в отдельном файле

Приборы:

  1. Паяльник;
  2. Мультиметр (если кому нужно).

Материалы:

  1. Arduino Nano v3 — микроконтроллер(МК) — 150 руб.;
  2. ds18b20 — температурный датчик (one wire) — 83 руб.;
  3. резистор на 4,7 кОм — (100 руб.) сопротивление(можно взять набор по больше «на все случаи жизни» (600руб));
  4. олово — припой;
  5. паяльный флюс Amtech — флюс, кому какой нравится.

Среда разработки:

  1. Arduino IDE — среда разработки;
  2. Processing 3.2.1 — среда разработки;
  3. Java Runtime Environment 8u74 — виртуальная машина Java.

Аппаратная часть

Согласно, следующей схеме, припаяем температурный датчик (ds18b20) к МК arduino nano v3:

(ds18b20) желтый (данные) -> d2 (arduino nano v3)

(ds18b20) красный (питание) -> ISCP 5v (arduino nano v3)

(ds18b20) черный (GND) -> ISCP GND (arduino nano v3)

Resistor 4,7 kOm (1 контакт) -> d2 (arduino nano v3)

Resistor 4,7 kOm (2 контакт) -> ISCP 5v (arduino nano v3)

temp_sensor

Вот несколько фото:

img_9883
img_9887

img_9891

img_9892

Программная часть arduino nano v3

Для общения с ПК (передачи данных о температуре) будет использовать Serial.port через стандартный USB. Предполагается, что уже установлены драйверы Windows для подключения arduino nano v3 и установлен Arduino IDE. Также потребуется библиотека для подключения ds18b20. Принцип работы скетча следующий:

  1. arduino подключается к датчику и запрашивает температуру
  2. далее полученная температура записывается в переменную
  3. затем arduino сверяет полученную температуру с предшествующей и если они не равны, то выводит на экран (в Serial.port),иначе ничего не происходит, цикл возвращается в начало и продолжает проверять, до тех пор, пока не поменяется температура.

Программная часть (клиент) для ПК

В качестве среды разработки программной части для ПК (клиент) была выбрана Processing 3, Вы можете использовать любую, удобную Вам. Принцип работы скетча(клиента) следующий:

  1. Клиент подключается к Serial.port arduino;
  2. затем он ждет новых показаний температуры от датчика ds18b20;
  3. при получении «новой» температуры, данные в окне программы меняются;
  4. далее производится запись новой температуры в файл temp_history.txt (создается автоматически при запуске ПО) с указанием даты и времени.

!!!ВНИМАНИЕ!!! НЕОБХОДИМО УСТАНОВИТЬ СВОИ НАСТРОЙКИ Serial.port (номер Вашего COM порта arduino в Windows) в цикле void setup() в строке String portName = Serial.list()[1];  необходимо поменять 1 на номер вашего порта (1,2,3 итд). Для компиляции программы в Processing (создание exe-файла) нужно нажать в главном меню File -> Export Application установить галочку Windows и нажать Export:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba0000

Через некоторое время в консоли Processing 3 появиться надпись Done exporting, затем откроется папка с 2 версиями программы для 32 (x86) — битной ОС Windows и для 64-битной версии, заходим в папку, согласно установленной версии Windows (например application.windows64)  и запускаем exe приложение temp_fA2PC.exe

!!!ВНИМАНИЕ!!! обязательно наличие виртуальной машина  Java Runtime Environment 8u74. Если приложение не запускается, необходимо установить ИМЕННО версию 8u74. Если подключение с датчиком установлено, то в главном окне программы начнет отображаться текущая температура:

send_temp_fa2pc

На этом, создание бюджетного температурного датчика завершено. Спасибо за внимание.

comments powered by HyperComments
Поделиться!