Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05
КИРПИЧЫ IOT123 - это модульные блоки DIY, которые можно смешивать с другими КИРПИЧами IOT123, чтобы добавить функциональность узлу или носимому устройству. В их основе лежат двухсторонние прототипы квадратного сечения дюйма с соединенными между собой сквозными отверстиями.
Предполагается, что некоторое количество этих КИРПИЧОВ будет на нескольких узлах (главные MCU - ESP8266 или ATTINY84) на сайте. MCU не нуждается в предварительных знаниях о назначении датчиков или программных потребностях. Он сканирует узлы I2C, а затем запрашивает дамп свойств (данные датчика) от каждого ведомого устройства. Эти КИРПИЧЫ обеспечивают питание 5,0 В, 3,3 В и другую линию AUX, которую можно настроить.
Этот 2-КАНАЛЬНЫЙ РЕЛЕ I2C BRICK расширяет функциональные возможности I2C KY019 BRICK и имеет два свойства чтения / записи:
2-КАНАЛЬНЫЕ РЕЛЕ [0] (истина / ложь)
2-КАНАЛЬНОЕ РЕЛЕ [1] (истина / ложь)
Сквозные отверстия, примыкающие к ATTINY85, остались неиспользованными, чтобы можно было использовать программатор pogo pin, в то время как DIP8 припаян к печатной плате. Еще одна абстракция - упаковка КИРПИЧОВ в маленькие цилиндры, которые подключаются к концентратору D1M WIFI BLOCK и перекачивают значения на сервер MQTT.
Шаг 1. Материалы и инструменты
Есть полный список материалов и источников.
- 2-канальное реле (1)
- ATTINY85 20ПУ (1)
- 1 "двусторонняя макетная плата (1)
- Мужской заголовок 90º (3P, 3P)
- Мужской заголовок (2P, 2P)
- Перемычка шунта (1)
- Монтажный провод (~ 7)
- Припой и железо (1)
Шаг 2: Подготовьте ATTINY85
ПРИМЕЧАНИЕ. Если вы собираетесь интегрировать Crouton, воспользуйтесь библиотекой отсюда и используйте установленный пример "attiny_2ch_relay".
AttinyCore от Boards Manager не требуется. Записать загрузчик «EEPROM Retained», «8mHZ Internal» (все конфигурации показаны выше).
Репозиторий кода можно найти здесь.
ZIP-архив библиотеки можно найти здесь.
Инструкции по «Импорту библиотеки ZIP» здесь.
После установки библиотеки вы можете открыть пример attiny_2ch_relay.
Чтобы загрузить прошивку в ATTINY85, вы можете найти более подробную информацию в этих инструкциях:
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
Лучше всего протестировать через макетную плату, прежде чем продолжить.
Если у вас есть ДАТЧИКИ ASSIMILATE, убедитесь, что адрес ведомого устройства отличается в комбинации хоста SENSOR / MCU, то есть все субъекты Relay могут иметь один и тот же адрес, если у вас есть только один субъект Relay на MCU / узле.
Шаг 3: соберите схему
- На передней панели вставьте компоненты ATTINY85 (1), 3-полюсные 90-градусные вилочные разъемы (2) (3), 3-полюсные вилочные разъемы (4) (5) и припаяйте сзади.
- Сзади проследите желтый провод от ЖЕЛТОГО1 до ЖЕЛТОГО2 и припаяйте.
- Сзади проследите оранжевый провод от ORANGE1 до ORANGE2 и припаяйте.
- Сзади проследите синий провод от СИНЕГО 1 до СИНЕГО2 и припаяйте.
- Сзади проследите зеленый провод от GREEN1 до GREEN2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО1 до ЧЕРНОГО2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО3 до ЧЕРНОГО4 и припаяйте.
- Сзади проследите красный провод от RED1 до RED2 и припаяйте.
- Сзади проследите оголенный провод от RED3 до RED4 и припаяйте.
- Сзади проследите оголенный провод от SILVER1 до SILVER2 и припаяйте.
- Добавьте перемычку на линию 5V или 3V3.
Теперь реле можно подключить напрямую через свои контакты к печатной плате или с помощью проводов к точкам, указанным в контакте контактов.
Шаг 4: Тестирование
Предполагается, что некоторые из этих КИРПИЧОВ будут находиться на нескольких узлах (MCU - ESP8266 или ATTINY84) в среде. Это модульный тест: отправляет команды I2C от UNO на ATTINY, который открывает или закрывает реле.
Ранее мы создали I2C SHIELD для Arduino.
Если вы хотите вместо этого сделать макет:
- Подключите 5,0 В на UNO к VCC на BRICK.
- Подключите GND на UNO к GND на КИРПИЧЕ.
- Подключите A5 на UNO к SCL на BRICK.
- Подключите A4 на UNO к SDA на BRICK.
- Подключите подтягивающий резистор 4K7 от SDA к VCC.
- Подключите подтягивающий резистор 4K7 от SCL к VCC.
Запускаем тест
- Подключите UNO к компьютеру Dev через USB.
- Загрузите код в UNO.
- Откройте консоль Arduino.
- Выберите 9600 бод (перезапустите UNO и повторно откройте консоль, если необходимо).
- Адрес ведомого устройства будет напечатан на консоли.
-
Когда, введите в поле отправки 2 0: 1 (так 15 2 0: 1), и реле CH1 включится.
- Когда, введите в поле отправки 2 0: 0 (так 15 2 0: 0), и реле CH1 выключится.
- Когда, введите в поле отправки 2 1: 1 (так 15 2 1: 1), и реле CH2 включится.
- Когда, введите в поле отправки 2 1: 0 (так 15 2 0: 0), и реле CH2 выключится.
Специальные команды I2C BRICK для ведомых устройств от ведущего устройства UNO
| #включают |
| константный байт _num_chars = 32; |
| char _received_chars [_num_chars]; // массив для хранения полученных данных |
| логическое _has_new_data = false; |
| voidsetup () { |
| Serial.begin (9600); |
| Serial.println (); |
| Serial.println ("СОБИРАЙТЕ АКТЕР IOT / РЕДАКТОР EEPROM ДАТЧИКА"); |
| Serial.println ("убедитесь, что в окне консоли выбрана новая строка"); |
| Serial.println (); |
| Serial.println ("АДРЕС 1 ПОДТВЕРДИТЬ ПОЛУЧЕНИЕ МЕТАДАННЫХ НЕТ (ДЛЯ M2M)"); |
| Serial.println («АДРЕС 2 АКТЕРСКОЙ КОМАНДЫ»); |
| Serial.println (); |
| Serial.println («АДРЕСА НА АВТОБУСЕ:»); |
| scan_i2c_addresses (); |
| Serial.println (); |
| Serial.println (""); |
| } |
| voidscan_i2c_addresses () { |
| int device_count = 0; |
| для (адрес байта = 8; адрес <127; адрес ++) |
| { |
| Wire.beginTransmission (адрес); |
| const byte error = Wire.endTransmission (); |
| если (ошибка == 0) |
| { |
| Serial.println (адрес); |
| } |
| } |
| } |
| voidloop () { |
| recv_with_end_marker (); |
| send_to_i2c (); |
| } |
| voidrecv_with_end_marker () { |
| статический байт ndx = 0; |
| char end_marker = '\ n'; |
| char rc; |
| while (Serial.available ()> 0 && _has_new_data == false) { |
| rc = Serial.read (); |
| if (rc! = end_marker) { |
| _received_chars [ndx] = RC; |
| ndx ++; |
| if (ndx> = _num_chars) { |
| ndx = _num_chars - 1; |
| } |
| } |
| еще { |
| _received_chars [ndx] = '\ 0'; // завершаем строку |
| ndx = 0; |
| _has_new_data = true; |
| } |
| } |
| } |
| voidsend_to_i2c () { |
| char param_buf [16]; |
| const String Received_string = String (_received_chars); |
| if (_has_new_data == true) { |
| int idx1 = полученная_строка.indexOf (''); |
| Адрес строки = полученная_строка.substring (0, idx1); |
| int address_int = адрес.toInt (); |
| if (address_int <8 || address_int> 127) { |
| Serial.println ("НЕВЕРНЫЙ ВХОД АДРЕСА:"); |
| Serial.println (адрес); |
| возвращение; |
| } |
| int idx2 = полученная_строка.indexOf ('', idx1 + 1); |
| Строковый код; |
| if (idx2 == -1) { |
| код = полученная_строка.substring (idx1 + 1); |
| }еще{ |
| код = полученная_строка.substring (idx1 + 1, idx2 + 1); |
| } |
| int code_int = code.toInt (); |
| if (code_int <0 || code_int> 5) { |
| Serial.println ("Неверный ввод кода:"); |
| Serial.println (код); |
| возвращение; |
| } |
| bool has_parameter = idx2> -1; |
| Строковый параметр; |
| if (has_parameter) { |
| параметр = полученная_строка.substring (idx2 + 1, idx2 + 17); // не более 16 символов |
| if (parameter.length () <1) { |
| Serial.println («МИН. ДЛИНА ПАРТАМЕТРА 1»); |
| _has_new_data = false; |
| возвращение; |
| } |
| }еще{ |
| if (code_int> 1) { |
| Serial.println («ТРЕБУЕТСЯ ПАРАМЕТР!»); |
| _has_new_data = false; |
| возвращение; |
| } |
| } |
| Serial.println (); |
| Serial.print ("input orig ="); |
| Serial.println (полученная_строка); |
| Serial.print ("адрес ="); |
| Serial.println (адрес); |
| Serial.print ("код ="); |
| Serial.println (код); |
| Serial.print ("параметр ="); |
| Serial.println (параметр); |
| // ОТПРАВИТЬ ЧЕРЕЗ I2C |
| Wire.beginTransmission (адрес_инт); |
| Wire.write (code_int); |
| if (has_parameter) { |
| параметр.trim (); |
| strcpy (param_buf, параметр.c_str ()); |
| Wire.write (param_buf); |
| } |
| Wire.endTransmission (); |
| Serial.println (); |
| Serial.println («ОТПРАВЛЕН ЧЕРЕЗ I2C!»); |
| Serial.println (); |
| Serial.println (""); |
| _has_new_data = false; |
| } |
| } |
просмотреть rawuno_i2c_command_input.ino, размещенный с ❤ на GitHub
Шаг 5. Дальнейшие действия
Последующий ASSIMILATE ACTOR: 2CH RELAY, который использует этот кирпич, имеет автоматическую настройку для Crouton через метаданные, уже установленные в ATTINY85 здесь. Пакет JSON, отправленный в Crouton, отправляется через последнюю версию прошивки для ICOS10. Вы можете сделать Proof-of-Concept на обычном ESP8266, если сборка пока слишком велика.
Скетч UNO, используемый при тестировании, имеет функцию для сохранения нового адреса подчиненного устройства в EEPROM на ATTINY85, если у вас есть конфликт на целевой шине I2C. Было добавлено несколько схем, но есть разные способы подключения нисходящей цепи в зависимости от того, чего вы хотите достичь, поэтому я оставлю это вам:)
Рекомендуемые:
Реле I2C с IDE Arduino: 5 шагов
I2C Relay встретил Arduino IDE: я заказываю хорошую релейную плату, но не было инструкции ArduinoIDE, только Raspberry Pi e.o. Я узнаю, как использовать его с Arduino, и хочу поделиться им, чтобы вы могли сэкономить время. Исходный пример RaspberryPi: wiki.52pi.com/index.php/DockerPi_4_Channel_R
Инфракрасная домашняя автоматизация с использованием реле: 6 шагов (с изображениями)
Инфракрасная домашняя автоматизация с использованием реле: инфракрасная система удаленной домашней автоматизации (Предупреждение: копируйте проект на свой страх и риск! Этот проект включает в себя высокое напряжение)
Как сделать домашнюю автоматизацию на основе Интернета вещей с помощью реле управления датчиками NodeMCU: 14 шагов (с изображениями)
Как сделать домашнюю автоматизацию на основе IoT с помощью реле управления датчиками NodeMCU: в этом проекте на основе Интернета вещей я сделал домашнюю автоматизацию с помощью Blynk и модуля реле управления NodeMCU с обратной связью в реальном времени. В ручном режиме этим релейным модулем можно управлять с мобильного телефона или смартфона, а также с помощью ручного переключателя. В автоматическом режиме этот умный
IOT123 - LIR2032 АККУМУЛЯТОРНЫЙ КИРПИЧ: 4 ступени
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS - это модульные блоки DIY, которые можно смешивать с другими IOT123 BRICKS, чтобы добавить функциональность к узлу или носить. Они основаны на дюймовых квадратных двусторонних прототипных платах с соединенными между собой сквозными отверстиями. Хотя инструкция
IOT123 - СИЛОВОЙ КИРПИЧ 3,3 В: 4 ступени
IOT123 - СИЛОВОЙ КИРПИЧ на 3,3 В: КИРПИЧЫ IOT123 - это модульные блоки, изготовленные своими руками, которые можно смешивать с другими КИРПИЧами IOT123, чтобы добавить функциональность узлу или носимому устройству. Они основаны на дюймовых квадратных двусторонних прототипных платах с соединенными между собой сквозными отверстиями. Хотя инструкция
