Оглавление:
- Шаг 1. Материалы и инструменты
- Шаг 2: Подготовьте ATTINY85
- Шаг 3: соберите схему
- Шаг 4: Тестирование
- Шаг 5. Дальнейшие действия
Видео: IOT123 - 2-КАНАЛЬНЫЙ РЕЛЕ I2C КИРПИЧ: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
КИРПИЧЫ 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, чтобы добавить функциональность узлу или носимому устройству. Они основаны на дюймовых квадратных двусторонних прототипных платах с соединенными между собой сквозными отверстиями. Хотя инструкция