Оглавление:
- Шаг 1. Программное обеспечение
- Шаг 2: Оборудование
- Шаг 3. Протестируйте устройство
- Шаг 4: Приложение: ATtiny85
Видео: Универсальный клиент / подчиненное устройство Arduino 1-wire (датчик): 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Пожалуйста, прочтите Введение и Шаг 2 моего руководства о том, как построить однопроводный дисплей Arduino (144 символа), чтобы получить больше информации о ситуации и доступных библиотеках. Как объясняется там, мы будем использовать библиотеку OneWire-Hub (эмулятор ведомого устройства OneWire) от orgua (обратите внимание, что есть другие вилки), чтобы создавать универсальные 1-проводные устройства (например, датчики) с использованием Arduino.
Шаг 1. Программное обеспечение
Самое главное - создать устройство, которое может простым способом возвращать практически любые значения. Это означает, что стандартное программное обеспечение может использоваться для прямого чтения всех значений (без необходимости диалога или двоичных манипуляций). Для этого нам понадобится очень простое 1-проводное устройство по умолчанию, которое может возвращать числа с плавающей запятой и широко поддерживается. Единственный известный мне выбор - это термометр DS18B20 (монитор батареи DS2438 тоже интересен и полезен, но довольно сложен и, следовательно, медленен среди других недостатков). Библиотека OneWire-Hub содержит пример под названием DS18B20_asInterface, который делает именно то, что нам нужно. Он создает группу DS18B20, каждая из которых представляет одно значение с плавающей запятой, которое мы хотим вернуть от нашего датчика (ов). Ограничения здесь заключаются в разрешении, и значения должны находиться в диапазоне -55, 0… 125, 0. Этого легко добиться - в худшем случае - изменить масштаб - и на самом деле это лучше, чем значения, которые могут быть представлены, например, значения DS2438 (от 1,5 до 10 В). В качестве альтернативы можно установить больший диапазон значений, используя:
setTemperatureRaw (static_cast (значение * 16.0f));
но чтение и обработка этих значений может поддерживаться не всем программным обеспечением, поскольку оно не соответствует спецификациям.
Вы должны знать, что изначально максимальное количество ведомых устройств ограничено 8, но может быть изменено в "OneWireHub_config.h" путем увеличения HUB_SLAVE_LIMIT до 32. Также вы должны убедиться, что приняли ONEWIRE_TIME_MSG_HIGH_TIMEOUT, если это необходимо вашим 1-проводная сеть (например, x10), как описано в шаге 2 1-проводного дисплея Arduino (144 символа). И использовать версию IDE> = 1.8.3 для компиляции и загрузки кода на ваш Arduino.
Вот в качестве примера код устройства, которое я построил совсем недавно. Поскольку я предполагаю, что вы не будете использовать ту же комбинацию датчиков, что и я, я не буду вдаваться в подробности здесь, проверяйте код и задавайте вопросы, если вам нужна помощь.
Шаг 2: Оборудование
Практически все, что вы можете подключить к Arduino, можно использовать в качестве выбранного вами датчика. Единственное ограничение состоит в том, что считывание показаний датчика должно быть как можно более быстрым, чтобы у вас было достаточно времени для установления 1-проводной связи (передайте Шаг 2 моего инструктажа об 1-проводном дисплее Arduino (144 символа) по порядку чтобы получить пример).
Примером возможного оборудования может быть метеостанция, например:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Вдобавок или вместо этого вы можете просто использовать саму Arduino в качестве датчика. Вы можете узнать больше об этом в моем руководстве о менее известных функциях Arduino - возможные значения - это напряжение источника и внутренняя температура.
Вот в качестве примера изображение устройства, которое я построил совсем недавно. Поскольку я предполагаю, что вы не будете использовать ту же комбинацию датчиков, что и я, я не буду вдаваться в подробности здесь, проверяйте код и задавайте вопросы, если вам нужна помощь.
Шаг 3. Протестируйте устройство
Подключите его к своей сети и проверьте свое программное обеспечение на наличие всех идентификаторов ROM и значений, которые они возвращают в виде температуры.
Шаг 4: Приложение: ATtiny85
Одиночные устройства (ограничение памяти) также могут быть выполнены на ATtiny85. Это требует нескольких шагов, поскольку мы программируем ATtiny85 с использованием Arduino Uno в качестве ISP с помощью Arduino IDE:
-
Ссылки
- https://playground.boxtec.ch/doku.php/arduino/att…
- https://sebastian.expert/could-not-find-usbtiny-d…
- https://learn.sparkfun.com/tutorials/tiny-avr-pro…
- https://forum.arduino.cc/index.php?topic=425532.0
- https://forum.arduino.cc/index.php?topic=128963.0
- используйте Arduino IDE> = 1.8.3
-
установить опцию ATtiny в IDE
- Файл> Настройки> URL-адреса диспетчера дополнительных плат:
- Инструменты> Доска: ??? > Менеджер плат…
- найдите: "крошечный" и установите
-
загрузить скетч ISP в Uno
Файл> Примеры> ArduinoISP> ArduinoISP
-
вставьте ATtiny85 в гнездо программирования (нулевое усилие) и подключите его:
- Вывод MOSI D11 Arduino на вывод 5 ATtiny
- Вывод Arduino MISO D12 на вывод 6 ATtiny
- Вывод Arduino SCK D13 на вывод 7 ATtiny
- Сброс вывода Arduino D10 на вывод 1 ATtiny
- Вывод Arduino GND на вывод 4 ATtiny
- Вывод VCC Arduino на вывод 8 ATtiny
- (Может потребоваться крышка> = 10 мкФ на выводе RESET Arduino Uno)
-
выберите ATtiny85 (см. картинку):
- Доска: "ATtiny25 / 45/85"
- Таймер 1 Часы: «ЦП»
- B. O. D.: "B. O. D. Disabled"
- LTO (только 1.6.11 +): «Отключено»
- Чип: «ATtiny85»
- Тактовая частота: «8 МГц (внутренняя)» (совместимость с ATtiny85 и ATtiny84)
- Часы: «16 МГц (ФАПЧ)» (альтернативная настройка только для ATtiny85)
- Порт: ???
-
выберите Программист:
Инструменты> Программист: «Arduino как ISP» (НЕ «ArduinoISP»!)
-
установить настройки предохранителей (часы и т. д.):
Инструменты> Записать загрузчик
- загрузите этот код (светодиод ошибки программатора должен быть выключен, иначе сбросьте его)
-
Расположение выводов ATtinyX5 (ATtiny85):
- Контакт 1: PB5 (RST)
- Контакт 2: PB3 (A3) - опционально подключен через 220 Ом к 1 <-TX
- Контакт 3: PB4 (A2) - подключен к 1-Wire DATA
- Контакт 4: GND - подключен к GND
- Контакт 5: PB0 (PWM) - подключен к датчику I2C SDA
- Контакт 6: PB1 (PWM) - подключен к светодиоду с 4,7 кОм на GND
- Контакт 7: PB2 (A1) - подключен к датчику I2C SCL
- Контакт 8: VCC - подключен к 5В
Работа с ATTiny85 требует немного больше работы, поскольку вам нужно получить дополнительные библиотеки для связи I2C (adafruit / TinyWireM) и последовательного вывода (TinyDebugSerial). Кроме того, поскольку память довольно ограничена, вы можете много работать с #define, например. убрать серийную отладку. В примере вы можете увидеть все это вместе.
Для тестирования первым шагом является проверка того, мигает ли светодиод с правильной частотой, 0,5 Гц. Затем подключите его к шине 1wire и проверьте наличие нового устройства.
Рекомендуемые:
Сделай сам датчик дыхания с Arduino (проводящий вязаный датчик растяжения): 7 шагов (с изображениями)
Сделай сам датчик дыхания с Arduino (проводящий вязаный датчик растяжения): этот самодельный сенсор примет форму проводящего вязанного сенсора растяжения. Он будет обволакивать вашу грудь / живот, и когда ваша грудь / живот расширяется и сжимается, то вместе с датчиком и, следовательно, входными данными, которые передаются на Arduino. Так
Прототип - устройство сигнализации, использующее датчик касания человека (KY-036): 4 шага
Прототип - устройство сигнализации, использующее датчик касания человека (KY-036): В этом проекте я буду проектировать устройство сигнализации, которое будет срабатывать при прикосновении. Для этого проекта вам понадобится датчик касания человека (KY-036). Позвольте мне взглянуть на этот проект. Как вы можете видеть на изображениях выше, сенсорное
Связь клиент / сервер MKR1000 IoT: 4 шага
MKR1000 IoT Client / server Communications: в этом проекте описывается, как настроить два устройства Arduino / Genuino MKR1000 в качестве сервера и клиента. Клиент MKR1000 будет подключаться к вашему локальному Wi-Fi и прослушивать два входа, физически подключенных к клиенту; один от кнопки, а другой от вибратора
Универсальный портативный универсальный аккумулятор: 11 шагов (с изображениями)
Универсальный портативный универсальный блок питания: отключение нагрузки или постоянное отключение электроэнергии - очень частое явление в развивающихся странах, таких как Индия, Южная Африка, Бангладеш и т. Д. Сезон отключения нагрузки не является любимым временем для кого-либо. Это сильно влияет на нашу повседневную деятельность и, в основном, на наше мычание
IOT123 - ПОДЧИНЕННОЕ ПРОТОТИПИРОВАНИЕ КИРПИЧА I2C: 3 шага
IOT123 - I2C BRICK PROTOTYPING SLAVE: при разработке последней версии ASSIMILATE ACTOR (KY-019 RELAY) была собрана общая доска для разработки, чтобы избавить меня от лишней работы за моим столом. Он имеет стандартные выводы I2C IOT123 BRICK, но позволяет настраивать подключение к датчику от ATT