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

Компактный breakout для DHT температуры и влажности на Raspberry Pi — ATtiny85 и DHT22/DHT11

Аппаратные компоненты: Atmel ATTiny85 × 1, DHT22 Temperature Sensor × 1, DHT11 Temperature & Humidity Sensor × 1, SparkFun Tiny AVR Programmer × 1, Adafruit 4.7K Ω Resistor × 3, Adafruit 10K Ω Resistor × 1, Adafruit 100 Ω Resistor × 1, Adafruit Diffused Blue 3mm LED × 1, Adafruit Tactile Button Switch × 1, Adafruit Break-away 0.1″ 36-pin strip male header 1 piece @ length 6, 1 piece @ length 2 (total 8 pins) × 1, Generic Jumper (0.1″) × 1, Arduino UNO & Genuino UNO Optional – для отладки и тестирования. × 1
Программные приложения и онлайн-сервисы: Microsoft Visual Studio 2015, Microsoft Windows 10 IoT Core, Arduino IDE

ИСТОРИЯ

Введение

Датчики DHT11 и DHT22 популярны благодаря своей точности при очень низкой стоимости. Одна проблема с ними — они работают по проприетарному однопроводному протоколу, требующему точной синхронизации. Эти датчики оказались сложны для чтения на платах с не-реально-временными ОС.

Недавно я публиковал статью «DHT11 /DHT22 Temperature Sensor», демонстрирующую использование Microsoft C++ примера из C# для чтения этих датчиков. Библиотека получала показания, но мне пришлось добавить логику повторных попыток для надёжности. Это работало для большинства, но у некоторых были проблемы с последовательностью.

Учитывая интерес к использованию этих датчиков на Raspberry Pi под Windows 10 IoT Core, я решил создать второй вариант, обеспечивающий очень надёжное чтение при сохранении низкой стоимости.

Обзор

Подход здесь — подключить DHT-датчик к недорогому ATtiny85 и настроить его как I2C-slave устройство. Это достигается с помощью библиотеки TinyWireS и создания набора регистров, которые можно читать и писать для взаимодействия с устройством.

Устройство поддерживает следующие функции:

Исходный код

В проекте три набора кода. Основная прошивка платы, Arduino master-скетч для тестирования и демонстрации платы, подключённой к Arduino Uno, и Windows 10 IoT Code приложение, демонстрирующее использование устройства с Raspberry Pi. Весь код доступен в связанном GitHub-репозитории.

Схема устройства/цепи

Схема компактна и использует несколько недорогих компонентов. ATtiny85 можно приобрести у нескольких вендоров. Рекомендую взять несколько — у них много полезных применений.

Схема имеет шестиконтактный разъём для подключения либо к другой схеме, либо напрямую к Raspberry Pi. Пины определены так:

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

При использовании в большем проекте схема DHT Tiny может быть объединена или встроена в существующую схему проекта. В этом случае хедер-пины и LED опциональны.

Схему также можно собрать на отдельной плате и подключить к Raspberry Pi несколькими проводами или кабелем.

Прошивка ATtiny85

Загрузите скетч DHT_Tiny_Breakout.ino на ATtiny85 с помощью вашего AVR-программатора. Если у вас нет программатора, можно использовать Arduino Uno (или похожую плату). Посмотрите одну или несколько статей ниже для помощи.

Я использую SparkFun Tiny AVR Programmer для прошивки ATtiny85.

Я запускаю чип на 16 МГц. См. мою статью «ATtiny @ 16MHz» для инструкций.

При использовании ATtiny85, слейв-скетч требует библиотеку TinyWireS в папке libraries. Её можно скачать с https://github.com/rambo/TinyWire.

Сборка на макетной плате

Первый шаг — запустить DHT Tiny на макетной плате. Используя полуразмерную макетную плату, соберите схему по схематике и диаграммам макетной платы, входящим в проект.

Несколько советов для упрощения:

Ниже несколько фото макетной версии моего DHT Tiny.

Подключение Arduino Uno

Если вас интересует быстрый тест, демонстрация или у вас проблемы с Raspberry Pi, можно подключить DHT Tiny к Arduino Uno (или похожему устройству).

Загрузите и запустите скетч DHT_Tiny_Master.ino. Он будет выводить данные в Serial Monitor.

При подключении I2C между двумя платами важно иметь подтягивающие резисторы на SDA и SCL. В этой схеме два резистора 4.7K Ω между пинами и 5V.

Ниже фото DHT Tiny на макетной плате, подключённого к Arduino Uno.

Подключение к Raspberry Pi

Если вас интересует быстрый тест, демонстрация или проблемы с Raspberry Pi, можно подключить DHT Tiny к Arduino Uno (или похожему устройству).

При подключении I2C между платами важно иметь подтягивающие резисторы на SDA и SCL. В этой схеме два резистора 4.7K Ω между пинами и 3V3.

ОЧЕНЬ ВАЖНО! Плата DHT Tiny будет питаться от 5V пина Raspberry Pi, но подтягивающие резисторы должны быть подключены к 3V3 пину Raspberry Pi (3V3 на пинах 1 и 17).

Ниже фото DHT Tiny на макетной плате, подключённого к Raspberry Pi 3.

Запуск Windows 10 приложения

Получите код из GitHub-репозитория (ссылка внизу проекта) и распакуйте к себе. Откройте исходники Universal Application в Visual Studio 2015 и либо задеплойте на Raspberry Pi, запустив из админ-консоли, либо запустите в debug-режиме из Visual Studio.

Если это первый запуск кода из Visual Studio для Windows 10 IoT Core, посмотрите статьи Microsoft:

Посмотрите видео-демонстрацию ниже, чтобы увидеть приложение в действии на Raspberry Pi 3, подключённом к DHT Tiny.

Основные моменты приложения

Windows 10 UWP приложение — демонстрация, показывающая все фичи DHT Tiny. Код отображает текущую температуру, влажность и другие значения регистров с устройства. UI также позволяет менять конфигурацию устройства, включая адрес устройства.

Библиотека DHT Tiny

Пример кода использует библиотеку для взаимодействия с DHT Tiny. Библиотека готова к использованию и может быть включена прямо во все ваши приложения.

Получение библиотеки из NuGet

Если не хотите включать проект напрямую, просто скачайте библиотеку DHT Tiny из NuGet командой ниже. Откройте Package Manager Console в Visual Studio и введите:

PM> Install-Package IoT.DhtTiny

Сканирование I2C-шины для поиска устройства

Библиотека DHT Tiny включает метод, сканирующий I2C-шину на наличие DHT Tiny устройств и возвращающий список адресов. Этот список можно использовать для инициализации одного или нескольких найденных устройств. Особенно полезно, если вы меняли адрес устройства, но не помните, на что установили. Callback-метод опционален.

// ***
// *** Enumerate the DHT Tiny devices on the i2c bus.
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** Call back method
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Locating devices [0x{0:X2}] [{1}%] [Found = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

Схемы DHT Tiny Breakout для Raspberry Pi

Демонстрация софта

Это видео демонстрирует Universal Application, работающее на Raspberry Pi 3, подключённом к DHT Tiny на макетной плате.

[VIDEO COMING SOON]

Создание готового устройства

Самый простой и дешёвый способ сделать плату — использовать прототипную плату PCB, например Perma-Proto Quarter-sized Breadboard PCB от Adafruit. На изображении ниже показан breakout с этой прототипной платой. Я использовал дремель, чтобы снять секции питания платы.

See More: DHT Tiny Breakout for the Raspberry Pi

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

  1. Профессиональный мониторинг температуры на Raspberry Pi с датчиком DS18B20
  2. Сборка уличной метеостанции на Raspberry Pi 2 и ADS‑WS1
  3. Чтение аналоговых датчиков на Raspberry Pi без встроенного АЦП
  4. Подключение ультразвукового датчика HC-SR04 к Raspberry Pi — практическое руководство
  5. Лучшие аксессуары для раскрытия полного потенциала Raspberry Pi
  6. Использование АЦП MCP3008 для чтения аналоговых датчиков с Raspberry Pi
  7. SIGHT: умные очки для слабовидящих на Raspberry Pi
  8. SparkFun Qwiic HAT для Raspberry Pi: полное руководство по подключению
  9. Установка Windows 10 IoT Core на Raspberry Pi 3 Model B+: Пошаговое руководство
  10. Создайте своего робота на Raspberry Pi с набором MonkMakes RRB2 — подробное руководство