Категория: Arduino - проекты | Комментарии: 0
17 января 2016

Как я спал на датчике температуры DHT-11 для Arduino [Опыт 1]

Датчик температуры DHT-11



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

  • Arduino НАНО

  • MicroSD Card Adapter v1.0

  • Power Bank 5600

  • Провод USB

  • Датчик температуры DHT-11

  • Флешка 4 Gb в FAT32



Ничего гениального тут нет. Подключил датчик температуры DHT-11 к Arduino NANO, к ICSP присоединяем адаптер Micro SD флешки, и подключаем это все к Power Bank.
На рисунке ниже распиновка ICSP разъема Ардуин. Распиновка так же изображена на адаптере для Микро СД флешек.

Подключаем флешку к ардуино



Несколько мифов:
MicroSD Card Adapter v1.0 поддерживает флешки обьемом 4 гигабайта и более.
Владельцы SD Card Reader для ардуино которые намучились с подключением флешки, и форматированием в FAT скорее всего скажут что больше 1 гигабайта не поддерживается. На самом деле все работает. Но форматировать все же надо в FAT32 по крайней мере для адаптера "MicroSD Card Adapter v1.0"

Собрав все запчасти в одну систему получилось следующее.

Подключенная система



Для компиляции нам понадобится библиотека для датчика DHT-11
Скачать библиотеки для DHT-11 и ниже сам код программы. Проверенно на Ардуино НАНО. В коде описаны все пины для подключения и приведены комментарии.

  1. /*
  2. Как я спал на датчике температуры 1injener.ru
  3. Проверенно на NANO v3 + DHT-11
  4. */
  5. #include "dht11.h" // Подключаем библиотеку DHT11
  6. dht11 DHT; // Обьект dht11
  7. #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому выводу №4
  8. //Подключение стандартных библиотек для работы с SPI интерфейсом и флешкой
  9. #include
  10. #include
  11. File myFile;
  12. void setup()
  13. {
  14. Serial.begin(9600);
  15. pinMode(2, OUTPUT); //2 - вывод ардуины для адаптера флешки "NC"
  16. digitalWrite(2, HIGH);
  17. while (!Serial) {
  18. ; // Ожидаем готовности Serial
  19. }
  20. Serial.print("Initializing SD card...");
  21. if (!SD.begin(2)) {
  22. Serial.println("initialization failed!");
  23. return;
  24. }
  25. Serial.println("initialization done.");
  26. // Открываем файл на флешке который надо создать заранее для чтения.
  27. myFile = SD.open("MySleep.txt");
  28. if (myFile) {
  29. while (myFile.available()) {
  30. Serial.write(myFile.read());
  31. }
  32. //Происходит считывание файла до конца. При сбросе или подаче питания
  33. myFile.close();
  34. } else {
  35. //Если не получилось открыть файл
  36. Serial.println("error opening MySleep.txt");
  37. }
  38. }
  39. void loop(){
  40. int chk;
  41. chk = DHT.read(DHT11_PIN); //Считываем данные с датчика и разделяем на температуру и влажность
  42. String Hum = String(DHT.humidity,DEC);
  43. String Temp = String(DHT.temperature,DEC);
  44. //Для проверки работы датчика. Можно закоментрировать
  45. Serial.println("Temperatura: "+Temp+" tC | Vlaga: "+Hum);
  46. //Открываем файл для записи
  47. myFile = SD.open("MySleep.txt", FILE_WRITE);
  48. // Если все хорошо октрылось записываем данные в новую строчку
  49. if (myFile) {
  50. myFile.println("Vlaga: "+Hum+" Temp: "+Temp);
  51. myFile.close();
  52. Serial.println("done.");
  53. } else {
  54. // В противном случае ошибка
  55. Serial.println("error opening Sleep file");
  56. }
  57. delay(10000); //Опрос и запись каждые 10 секунд.
  58. }

Касаясь кода - его можно оптимизировать, уменьшить энергопотребление флешки (Вывод CN) и датчика (Используя 3й вывод DHT-11) что даст великолепные результаты.

Что происходило далее. Залив код программы в Ардуино НАНО, и проверив работу в терминале датчик был протянут под простыню в области туловища и закреплен к кровати. Подключил питание от PowerBank и заснул. Логически что все данные писались в один файл.
На утро в файле было 2757 строк с данными. Опрос датчика производился каждые 10 секунд. В итоге я спал 8 часов 5 минут. Результат изображен ниже.

Загрузив данные из файла вставкой в Exell с разделением по пробелам - был выстроен график влажности и температуры.

Датчик температуры на теле человека ночью



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

Никаких научных выводов тут не получится сделать. Но толчок для развития своей идеи вполне есть.
Меняя датчики можно получать данные чего угодно.
Другие статьи по разделу:

anchore Домашний веб сервер на Аrduino. Температура и Реле [Проверенно]


anchore ЖКИ дисплей WH0802 подключение к Ардуино [Много проводов]


anchore Управление шаговым биполярным двигателем A4988ET [Рабочий код ino]




Новые изобретения инженеров и техников, дизайнеров и обычных людей, все то что может изменить наш мир к лучшему. Новая техника и оружие, спасателей и спецназа. Гаджеты и девайсы, устройства для отдыха и работы. Советы для экономии семейного состояния. Все гениальные изобретения в простом формате! Ведь "Все - Просто!"
Copyright © 2013–2024
Автоматизация и проектирование - 1injener.ru