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

Датчик температуры DHT11 / DHT22

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

Датчик температуры и влажности DHT11 (4 контакта)
× 1
Raspberry Pi 2, модель B
× 1
Arduino UNO
× 1
Перемычка между мужчинами и женщинами
× 3
Макет (общий)
× 1
Резистор 4,7 кОм
× 1
Вспомогательный комплект Cobbler
× 1

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

Microsoft Windows 10 IoT Core
IDE Arduino
Raspberry Pi Raspbian
Microsoft Visual Studio 2015
WinSCP
PuTTY

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

Введение

Фон

DHT11 - это 4-контактный датчик температуры и влажности (один контакт не используется), способный измерять относительную влажность 20–90% и температуру от 0 до 50 ° C. Датчик может работать от 3 до 5,5 В постоянного тока и обменивается данными с использованием собственного проприетарного протокола OneWire. Этот протокол требует очень точного времени для получения данных от датчика. Биты LOW и HIGH кодируются на проводе по времени, в течение которого сигнал является HIGH. Общее время считывания составляет не более 23,4 мс. Это включает задержку 18 мс, необходимую для начала передачи данных, и окно до 5,4 мс для данных. Отдельные сигналы могут быть от 20 мкс до 80 мкс.

Когда Windows 10 IoT Core впервые стала доступна, я взял свой Raspberry Pi 2 и датчик DHT11 и опробовал его на C #. Я быстро обнаружил, что это не сработает. Проблема с C # в Windows 10 IoT Core заключается в том, что он просто не будет достаточно быстрым (по крайней мере, сейчас).

Я разместил сообщение на форуме Microsoft и несколько раз обменялся с другими разработчиками, у которых возникла такая же проблема. В конце концов я наткнулся на ответ Microsoft по протоколу OneWire в Windows 10 IoT Core, который гласил:

Через некоторое время я получил ответ на свой пост:

Что ж, это будет здорово, и я искренне рад появлению новых возможностей, но кто может подождать? Недавно я увидел, что Microsoft опубликовала образец того, как поддерживать протокол OneWire, используя DHT11 в качестве образца датчика и используя C ++ в Windows 10 IoT Core. Я увидел в этом возможность перенести это на C #.

Этот проект посвящен превращению этого образца в библиотеку, которую можно использовать в C #. Я благодарен человеку, который написал библиотеку, чтобы сделать этот популярный датчик полезным в Windows 10 IoT Core, и, надеюсь, с этой библиотекой он будет еще более полезным.

Библиотека

Созданная мною библиотека представляет собой простой рефакторинг кода, первоначально опубликованного Microsoft, поэтому я не беру на себя ответственность за работу, проделанную для получения показаний датчика.

Библиотека представляет собой простой класс под названием Dht11 . в поле имен Sensors.Dht . Создать новый объект на C # очень просто.

Сначала откройте контакт GPIO, к которому подключен датчик DHT11.

  using Sensors.Dht; GpioPin pin =GpioController.GetDefault (). OpenPin (4, GpioSharingMode.Exclusive);  

Затем передайте эту булавку конструктору Dht11 class и укажите режим привода вывода GPIO. Это позволяет вам решить, добавите ли вы собственный подтягивающий резистор.

  Dht11 dht11 =new Dht11 (_pin, GpioPinDriveMode.Input);  

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

  DhtReading reading =await dht11.GetReadingAsync (). AsTask ();  

Существует перегрузка, позволяющая указать максимальное значение повтора. Значение по умолчанию - 20. Это указывает, сколько попыток сделать для считывания показаний датчика, прежде чем отказаться от него и вернуть неудавшееся показание.

DhtReading структура определяется как:

  структура открытого значения DhtReading {bool TimedOut; bool IsValid; двойная температура; двойная влажность; int RetryCount;};  

Наблюдения

Несмотря на то, что датчик работает на C ++, он все равно не получает показания каждый раз. Таким образом, необходимость в опции повтора в классе (это фактически часть образца Microsoft). Я подумал, что было бы лучше сравнить это с другими платформами, чтобы увидеть, как он работает. Я пробовал код на Raspberry Pi 2 с Raspbian, а также на Arduino Uno. Код, который я использовал для обоих, включен в репозиторий GitHub.

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

Начало работы

Соберите схему для Raspberry Pi 2

Используйте это руководство для сборки схемы, используя схему, расположенную в нижней части страницы, в качестве руководства (обратите внимание, что цвета проводов не являются обязательными и были выбраны, чтобы облегчить отслеживание схемы при ее создании). P>

  • Поместите Т-образный сапожник на левый конец доски половинного размера + (где цифры начинаются с 1). Два крайних левых контакта будут в E1 . и F1 на борту. Два крайних правых контакта будут на E20 . и F20
  • Поместите резистор 4,7 кОм между A4 и 3V3
  • Подключите оранжевый штекер к штекеру перемычки между B4 . и F28
  • Подключите красный штекер к штекеру перемычки между F29 . и 3V3
  • Подключите черный штекер к штекеру перемычки между F30 . и GND
  • Поместите датчики DHT11 в J30 . (-), J29 (+) И J28 (s)
  • Подключите ленточный кабель к сапожнику и Raspberry Pi.

Соберите схему для Arduino

Используйте это руководство для сборки схемы, используя схему, расположенную в нижней части страницы, в качестве руководства (обратите внимание, что цвета проводов не являются обязательными и были выбраны, чтобы облегчить отслеживание схемы при ее создании). P>

  • Поместите резистор 4,7 кОм между E12 и E13
  • Подключите белый штекер к штекеру перемычки между D13 . и контакт 5 в Arduino
  • Подключите красный штекер к штекеру перемычки между D12 . и 5V булавка в Arduino
  • Подключите черный штекер к штекеру перемычки между D11 . и GND на Arduino
  • Поместите датчики DHT11 в A11 . (-), A12 (+) и A13 (s)
  • Подключите USB-кабель от компьютера к Arduino.

Ниже приведены фотографии схем, которые я построил.

Запуск приложения для Raspberry Pi

Выберите «Отладка», «Конфигурация ARM» и «Удаленный компьютер». Теперь щелкните проект правой кнопкой мыши и выберите «Свойство», а затем щелкните «Тег отладки». Затем введите IP-адрес Raspberry Pi 2 в поле «Удаленный компьютер» и снимите флажок «Использовать аутентификацию».

Нажмите F5 . . Приложение будет развернуто на устройстве, что в первый раз может занять несколько минут.

Запуск приложения для Arduino

Скетч для этого проекта доступен на GitHub в файле под названием Dht11_Speed ​​. . Запустите IDE Arduino и откройте скетч. Загрузите эскиз в Arduino ( Ctrl U ), А затем запустите Serial Monitor ( Ctrl Shift M )

Если вы не знаете, как это сделать, или если вы новичок в этой среде, в видео ниже будет показано, как это сделать.

Запуск приложения для Raspbian

Код C для Raspberry Pi доступен в GitHub для этого проекта в файле под названием Dht11.c . . Исходный код необходимо скопировать на Raspberry Pi, а затем скомпилировать там. Мне нравится использовать WinSCP для копирования файлов. Если у вас нет этого приложения, я рекомендую вам загрузить и установить его сейчас. В исходном коде используется wiringPi, который необходимо установить до компиляции приложения.

Команда для компиляции кода на Raspberry Pi:

  gcc -oDht11_Speed ​​Dht11_Speed.c -L / usr / local / lib -lwiringPi -std =c99 -lm  

Для запуска приложения введите команду:

  sudo ./Dht11_Speed ​​1000 10  

Где 1000 указывает задержку в 1000 мс (1 секунду), а 10 - количество считываемых отсчетов.

На видео более подробно будет продемонстрировано, как скопировать код и как его скомпилировать на Raspberry Pi с запущенным Raspbian. Чтобы узнать, как загрузить Raspbian на Raspberry Pi, перейдите по ссылке https://www.raspberrypi.org/downloads/raspbian/.

Видео

Видео ниже демонстрирует работу приложения:

Просмотрите это видео на YouTube в режиме "Театр" для получения наилучшего качества.

Код

Исходный код C # / C ++ Visual Studio 2015
https://github.com/porrey/dht.git

Схема

Dht11_RPi2.fzz Dht11_Arduino.fzz

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

  1. Регистратор температуры Raspberry Pi
  2. Библиотека Python датчика температуры TMP006 с использованием Raspberry pi,
  3. Датчик температуры Python и Raspberry Pi
  4. 1-проводный датчик температуры DS1820 на Raspberry Pi (напрямую через GPIO)
  5. Цифровой датчик термометра Raspberry Pi 1-Wire (DS18B20)
  6. Датчик температуры и освещенности Raspberry Pi
  7. Датчик температуры Raspberry Pi
  8. Проект Интернета вещей на основе Raspberry PI Подключение датчика DHT11
  9. Датчик температуры подшипника | детектор
  10. Измерение температуры инфракрасным датчиком