Датчик температуры для смартфона

Статья расскажет о проекте термометра, основным отличием от похожих проектов будет то, что показания датчика температуры будут передаваться на смартфон по Bluetooth и отображаться на его экране. Такой датчик температуры можно разместить в недоступном месте, например за окошком, в холодильнике. И вы всегда сможете проверить температуру без визуального контакта с этим датчиком. Вы запускаете мобильное приложение, подключаетесь к датчику и на экране Смартфона или планшета контролируете температуру. Сам датчик будет реализован с помощью Arduino. Для реализации передачи значения температуры на смартфон мы используем библиотеку RemoteXY.

Для реализации электрической части устройства термометра вам потребуется любая плата Arduino, термистор 1кОм, резистор 1кОм, желательно так же батарейный отсек для автономного питания Arduino. Термистор подойдет на любое сопротивление от 1 до 100 кОм, но в этом случае сопротивление резистора должно быть аналогичным. Ниже приведена схема подключения всех элементов конструкции. Мы же все это собрали на макетной плате.

Термистор включен в цепь делителя напряжения, во втором плече которого находится постоянное сопротивление. Таким образом, при изменении температуры будет изменяться сопротивление термистора, а значит и одного плеча делителя напряжения. Напряжение делителя будет изменяться в след за температурой. Среднюю точку делителя напряжения мы подключили к аналоговому входу Arduino с номером A5.

Разработку программы мы начнем с калибровки нашего датчика. Калибровку мы выполним по двум точкам, и для этого нам понадобится эталонная температура. У меня в комнате стоит термометр, который показывает 25 градусов Цельсия, это будет первая эталонная температура. Так же я знаю что температура моего тела составляет 36.6 градусов Цельсия, и это будет вторая эталонная температура. Так же примем, что сопротивление нашего термистора в определенных пределах изменяется по линейному закону в зависимости от температуры. По этому, в дальнейшем, для вычисления текущей температуры будем использовать линейную интерполяцию.

Для выполнения калибровки нам необходимо определить, какое значение выдает АЦП Arduino при температурах датчика, которые мы выбрали эталонными. Используем Serial и монитор порта, для того что бы передавать значение АЦП на компьютер, что бы мы могли посмотреть, какое же оно при наших эталонных температурах. Для этого нам потребуется загрузить в Arduino следующий простой скетч.

void setup()
<
Serial.begin(9600);
>

void loop()
<
int sensorValue = analogRead(A5);
Serial.println(sensorValue);
delay(1);
>

Данный скетч в каждом цикле программы измеряет напряжение аналогового вывода A5, оцифровывает его и отправляет в Serial. Вы можете подключиться монитором порта (Сервис/Монитор порта) и посмотреть, какие значения передаются. Теперь нам необходимо записать значения АЦП при выбранных эталонных температурах датчика. Первую эталонную температуру вы получаете сразу, если ваш термистор достаточно долго находился в комнате. Для получения второй эталонной температуры приложите термистор к своему телу и подержите его несколько минут. Перепишите значения АЦП, которые передаются в монитор порта при этих температурах. У нас получились следующие значения:

Читайте также:  Как в ворде создать содержание автоматически

Заходим в онлайн редактор RemoteXY и создаем интерфейс управления. Он состоит из текстового поля, через которое будет передаваться измеряемая температура, и текстовой метки. Длина текстового поля, задаваемая в настройках, определяется максимальной длиной передаваемой строки. В нашем случае это могут быть значения "-40.0" или "100.0". То есть длина строки не может превышать 5 символов. Можно оставить предлагаемую по умолчанию системой длину в 10 символов.

Выбираем в настройках проекта целевую платформу Arduino (SoftwareSerial), library version и формируем исходный код нашего интерфейса. Не забудьте загрузить библиотеку RemoteXY и подключить ее к Arduino IDE (Скетч/Импортировать библиотеку/Add library. ).

Для передачи значения температуры на экран смартфона мы должны получить текущее значение АЦП, получить значение текущей температуры, используя линейную интерполяцию по двум известным точкам, преобразовать полученное значение в строку и записать ее в поле text_1 структуры RemoteXY. Для преобразования числа типа double в строку используем функцию:

dtostrf (floatVar, minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf)

Задачу линейной интерполяции мы решим используя простую формулу:

Собрав все воедино мы получаем следующий исходный код – скетч для Arduino:

/* определение режима соединения и подключение библиотеки RemoteXY */
#define REMOTEXY_MODE__SOFTWARESERIAL
#include
#include

/* настройки соединения */
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600

/* конфигурация интерфейса */
unsigned char RemoteXY_CONF[] =
< 0,11,27,0,1,5,67,0,24,23
,54,16,2,11,129,0,23,12,39,9
,0,84,101,109,112,44,32,194,176,67
,0 >;

/* структура определяет все переменные вашего интерфейса управления */
struct <

/* output variable */
char text_1[11]; /* =строка оканчивающаяся нулем UNICODE */

/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */

/* первое замеренное значение – первая точка */
#define SENS_1_VAL 514
#define SENS_1_TMP 36.6

/* второе замеренное значение – вторая точка */
#define SENS_2_VAL 580
#define SENS_2_TMP 25.0

void setup()
<
RemoteXY_Init ();

void loop()
<
RemoteXY_Handler ();

/* получаем значение АЦП */
int sensorValue = analogRead(A5);
/*
вычисляем текущую температуру используя
линейную интерполяцию по двум известным точкам
*/
double temp = SENS_1_TMP + (SENS_2_TMP – SENS_1_TMP) /
(SENS_2_VAL – SENS_1_VAL) * (sensorValue – SENS_1_VAL);
/*
преобразуем значение температуры в строку
и помещаем ее сразу в поле text_1 структуры RemoteXY
*/
dtostrf(temp, 0, 1, RemoteXY.text_1);

/*
отправляем значение АЦП в Serial для того
что бы мы могли проверить значения
*/
Serial.println(sensorValue);
delay(1);
>

В данном коде вы должны изменить определяемые значения SENS_1_VAL, SENS_1_TMP, SENS_2_VAL, SENS_2_TMP, подставив вместо них ваши, которые вы получили при измерениях значений для калибровки.

Читайте также:  Интернет через флэш модем

Загрузите скетч в вашу Arduino. Загрузите в ваш смартфон или планшет приложение RemoteXY. И можете контролировать температуру находясь на удалении от изготовленного вами датчика, используя Bluetooth.

В современных мобильных устройствах разработчики внедряют множество различных полезных фишек, которые призваны упростить использование гаджета и сделать его более удобным. Одним из таких сенсоров является температурный датчик в телефоне, о котором пойдет речь в сегодняшнем обзоре.

Зачем нужен этот модуль?

Несложно догадаться, что его главная задача заключается в измерении температуры. Существует две основные разновидности:

  • для определения внутренних температурных показателей;
  • для вычисления значений, связанных с окружающей средой.

Первый является более распространенным, присутствует в каждой современной модели, выполняет защитную функцию, предупреждая пользователя о сильном перегреве мобильного приспособления в процессе эксплуатации.

Данный сенсор может иметь непосредственную связь со встроенными утилитами, которые выводят на экран информацию о температуре аккумулятора, процессора, графического адаптера. Если же такие приложения не интегрированы в Android, то их можно запросто скачать в официальном магазине Google Play.

Что касается сенсора, который измеряет атмосферное показатели, то подобных моделей очень мало.

«Много лет назад» был выпущен первый смартфон с датчиком температуры – Samsung Galaxy S4. Подобный функционал (S Health) был представлен в качестве преимущества над девайсами других производителей.

Но сейчас используются другие технологии для вычисления подобных данных. В Гугл Плей есть очень много утилит, которые на основании Вашего текущего местоположения выводит на экран нужную информацию. Но для этого необходимо соединение с сетью интернет и активация GPS.

Можно обойтись и без подключения к спутникам, но при этом придётся вручную прописывать название города, в котором вы находитесь. Приложение отправит запрос на сервер, получит ответ и очень быстро покажет результат на дисплее.

Какой датчик температуры на Андроид скачать?

Теперь перейдем к рассмотрению программ. По ссылке вы найдете перечень самых актуальных вариантов, а ниже выкладываю несколько утилит которые пользуются максимальной популярностью.

Обратите внимание, что многие разработчики создают фейковые приложения, цель которых заключается не в предоставление достоверной информации, а просто для развлечения. Поэтому такой софт имеет массу негативных отзывов, низкие рейтинги, хотя сами создатели утилит в описании указывают, что это лишь шутка, ПО для розыгрыша.

Автор рекомендует:

Можно ли измерить температуру тела с помощью телефона?

Из всего вышесказанного вытекает вывод, что произвести подобные операции невозможно. Хотя опять же, в интернете можно встретить множество шуточных программ, которые предлагают использовать датчик температуры в телефоне в качестве градусника.

Даже интерфейс выглядит очень реалистично, в инструкции указывается, что нужно приложить палец к экрану и подержать несколько секунд, или засунуть его подмышку, и вы увидите на экране результаты измерения.

Читайте также:  Задачи на тему прямая на плоскости

Но не стоит доверять подобным утилитам. Лучше применять проверенные медицинские приспособления, разве только, если вы не хотите поразвлечься. В таком случае качайте подобный софт на свое усмотрение.

Не всегда под рукой есть термометр для измерения температуры окружающей среды (в комнате, на улице). В интернете можно встретить информацию, что измерение можно провести с помощью телефона — в интерфейсе специального приложения. Так ли это? В каких случаях измерение возможно?

Можно ли измерить температуру в комнате с помощью телефона

В телефон может быть встроено два датчика для измерения температуры — внешней и внутренней. Последний используется для диагностики температуры внутри устройства — его комплектующих. Это помогает избежать перегрева смартфона и его порчи.

Датчик для измерения внешней температуры (окружающей среды) есть далеко не во всех моделях телефонов. Они точно присутствуют в таких смартфонах: Runbo X5, Samsung Galaxy S4, Samsung Note 3, Snopow M6, Casio g’zone commando 4G.

Если вашего телефона нет в этом списке, скорее всего, датчика для измерения внешней температуры у вас нет — определить её вы не сможете, даже если загрузите специальный термометр в «Плей Маркете». В этом случае рекомендуем всё же использовать обычный термометр, чтобы узнать точное значение. Если сомневаетесь, есть у вас датчик или нет, загляните в технические характеристики телефона.

У Samsung Galaxy S4 есть встроенный адаптер для определения температуры окружающей среды

Как измерить температуру в комнате с помощью смартфона

Если у вашего смартфона есть датчик для измерения температуры окружающей среды, скорее всего, в его системе уже предустановлена программа для её измерения. В «Самсунге» эту опцию, например, выполняет приложение S Health. В нём проводится множество замеров, которые нужны для определения текущего состояния организма: пульс, количество съеденных калорий, часы сна, количество пройденных километров, а также температура окружающей среды — ведь от неё тоже зависит наше общее самочувствие.

Итак, для измерения температуры в комнате зайдите в программу (в нашем случае это S Health). Откройте раздел Thermo-hydrometer. Подождите, пока программа автоматически определит два показателя: температуру в градусах по Цельсию и влажность в процентах.

Программа S Health покажет температуру и влажность окружающей вас среды

Встроенная программа или стороннее приложение, скачанное с «Плей Маркета», не способно измерить точно температуру окружающей среды. Погрешность будет равна 3 – 7 градусам.

Определить температуру воздуха в комнате можно только на тех моделях телефонов, которые оснащены датчиком измерения температуры окружающей среды. Это не то же самое, что датчик внутренней температуры — он узнаёт показатель только комплектующих смартфона, которые находятся внутри него. Если у вас есть этот датчик, смело используйте встроенный или сторонний софт для измерения. Например, в «Самсунге», есть предустановленная программа S Health, которая подойдёт для этих целей.

Ссылка на основную публикацию
Adblock detector