Беспроводной мониторинг температуры на базе Arduino c Bluetooth и DS18B20

Рассмотрим для начала составные части проекта: Arduino c Bluetooth и DS18B20.

DS18B20 – калиброванный цифровой термометр с 1-Wire-интерфейсом и разрядностью преобразования, способной к перестройке. Диапазон измеряемых температур от -55 ° C до +125 ° C.
Bluetooth модуль HC-06(05) может быть использован для подключения Arduino к другим устройствам по bluetooth. Модуль работает в пассивном режиме, то есть нужно задать поиск на управляющем (Master) устройстве (ноутбук, телефон), найти устройство, после этого в Мастер-устройстве появится последовательный порт, все что будет послано в него появится на вашем Arduino, и наоборот, все что Arduino пошлет вам будет принято на вашем компьютере. Если необходимо можно подстроить параметры модуля с помощью АТ команд. Как вы уже поняли сегодня ми говорим о беспроводном мониторинге температуры на базе Arduino c Bluetooth и DS18B20.Необходимые компоненты

  1. Arduino
  2. HC06 Bluetooth модуль
  3. DS18B20 датчи температуры
  4. резистор на 4.7 кОм
  5. макетная плата (опционально)
  6. проводники
  7. Android приложение (Temperature Monitor)

Схема подключения

Arduino Pins——-> Bluetooth Pins
RX (Pin 0) ———-> TX
TX (Pin 1) ———-> RX
3.3/5V ————–> VCC
GND ——————-> GND

Arduino Pins——-> DS18B20 Pins
Digital Pin 2 ——> Data Pin
5V ———————-> VCC
GND ——————-> GND

Код для Arduino

#include <OneWire.h>

int SensorPin = 2; 
OneWire ds(SensorPin);

void setup(void) {
 Serial.begin(9600);
}

void loop(void) {
 float temperature = getTemp();
 Serial.println(temperature);
 delay(200);
}

float getTemp(){
 
 byte data[12];
 byte addr[8];

 if ( !ds.search(addr)) {
   ds.reset_search();
   return -1000;
 }

 if ( OneWire::crc8( addr, 7) != addr[7]) {
   return -1000;
 }

 if ( addr[0] != 0x10 && addr[0] != 0x28) {
   return -1000;
 }

 ds.reset();
 ds.select(addr);
 ds.write(0x44,1);

 byte present = ds.reset();
 ds.select(addr);  
 ds.write(0xBE);

 for (int i = 0; i < 9; i++) { 
  data[i] = ds.read();
 }
 
 ds.reset_search();
 
 byte MSB = data[1];
 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB); 
 float TemperatureSum = tempRead / 16;
 return TemperatureSum;
 
}

Загрузки
Библиотека OneWire ЗДЕСЬ

Пример реализации проекта

Arduino c Bluetooth и DS18B20

Оставьте комментарий

Your email address will not be published. Required fields are marked *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.