Оглавление:
- Шаг 1. Материалы и инструменты
- Шаг 2: Подготовьте ATTINY85
- Шаг 3: соберите схему
- Шаг 4: Тестирование
- Шаг 5. Дальнейшие действия
Видео: IOT123 - I2C KY019 BRICK: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
КИРПИЧЫ IOT123 - это модульные блоки DIY, которые можно смешивать с другими КИРПИЧами IOT123, чтобы добавить функциональность узлу или носимому устройству. В их основе лежат двухсторонние прототипы квадратного сечения дюйма с соединенными между собой сквозными отверстиями.
Предполагается, что некоторое количество этих КИРПИЧОВ будет на нескольких узлах (главные MCU - ESP8266 или ATTINY84) на сайте. MCU не нуждается в предварительных знаниях о назначении датчиков или программных потребностях. Он сканирует узлы I2C, а затем запрашивает дамп свойств (данные датчика) от каждого ведомого устройства. Эти КИРПИЧЫ обеспечивают питание 5,0 В, 3,3 В и другую линию AUX, которую можно настроить.
Этот КИРПИЧ I2C KY019 является первым из АКТЕРОВ и имеет одно свойство чтения / записи:
Переключатель (истина / ложь)
Сначала мы рассмотрим сенсорные блоки типа Keyes, поскольку они поставляются с витаминами (необходимы дополнительные компоненты) и относительно дешевы (я купил 37 за 10 австралийских долларов). Другие платы / схемы будут представлены в I2C BRICKS.
Сквозные отверстия, примыкающие к ATTINY85, остались неиспользованными, чтобы можно было использовать программатор pogo pin, в то время как DIP8 припаян к печатной плате. Еще одна абстракция - упаковка КИРПИЧОВ в маленькие цилиндры, которые подключаются к концентратору D1M WIFI BLOCK и перекачивают значения на сервер MQTT.
Шаг 1. Материалы и инструменты
Есть полный список материалов и источников.
- KY-019 Реле (1)
- ATTINY85 20ПУ (1)
- 1 "двусторонняя макетная плата (1)
- Мужской заголовок 90º (3P, 3P)
- Монтажный провод (~ 7)
- Припой и железо (1)
Шаг 2: Подготовьте ATTINY85
ПРИМЕЧАНИЕ. Если вы собираетесь интегрировать Crouton, воспользуйтесь библиотекой отсюда и используйте установленный пример «attiny_ky019».
AttinyCore от Boards Manager не требуется. Записать загрузчик «EEPROM Retained», «8mHZ Internal» (все конфигурации показаны выше).
Репозиторий кода можно найти здесь.
ZIP-архив библиотеки можно найти здесь.
Инструкции по «Импорту библиотеки ZIP» здесь.
После установки библиотеки вы можете открыть пример attiny_ky019.
Чтобы загрузить прошивку в ATTINY85, вы можете найти более подробную информацию в этих инструкциях:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
Лучше всего протестировать через макетную плату, прежде чем продолжить.
Если у вас есть ДАТЧИКИ ASSIMILATE, убедитесь, что адрес ведомого устройства отличается в комбинации хоста SENSOR / MCU, то есть все субъекты Relay могут иметь один и тот же адрес, если у вас есть только один субъект Relay на MCU / узле.
Шаг 3: соберите схему
- На лицевой стороне вставьте компоненты ATTINY85 (1), 3-полюсные 90-градусные вилки (2) (3) и припаяйте сзади.
- Сзади проследите желтый провод от ЖЕЛТОГО1 до ЖЕЛТОГО2 и припаяйте.
- Сзади проследите синий провод от СИНЕГО 1 до СИНЕГО2 и припаяйте.
- Сзади проследите зеленый провод от GREEN1 до GREEN2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО1 до ЧЕРНОГО2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО3 до ЧЕРНОГО4 и припаяйте.
- Сзади проследите красный провод от RED1 до RED2 и припаяйте.
- Сзади проследите красный провод от RED3 до RED4 и припаяйте.
Теперь реле можно подключить напрямую через свои контакты к печатной плате или с помощью проводов к точкам, указанным в контакте контактов.
Шаг 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 1 (так 12 2 1), и реле включится.
- Когда, введите в поле отправки 2 0 (так 12 2 0), и реле выключится.
Специальные команды 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: KY019, который использует этот кирпич, имеет автоматическую настройку для Crouton с помощью метаданных, уже установленных в ATTINY85 здесь. Пакет JSON, отправленный в Crouton, отправляется через последнюю версию прошивки для ICOS10. Вы можете сделать Proof-of-Concept на обычном ESP8266, если сборка пока слишком велика.
Скетч UNO, используемый при тестировании, имеет функцию для сохранения нового адреса подчиненного устройства в EEPROM на ATTINY85, если у вас есть конфликт на целевой шине I2C.
Было добавлено несколько схем, но есть разные способы подключения нисходящей цепи в зависимости от того, чего вы хотите достичь, поэтому я оставлю это вам:)
Рекомендуемые:
Нажмите Brick Switch для Макея Макея: 4 шага (с изображениями)
Click Brick Switch для Makey Makey: этот переключатель, напечатанный на 3D-принтере, позволит пользователю превратить Makey Makey в «скольжение пальца»; для " щелчка " в играх или стрелки вправо / влево для прокрутки презентаций. Добавление правого и левого клеммных колодок для
IOT123 - БЛОК D1M - 2xAMUX Сборка: 7 шагов (с изображениями)
IOT123 - БЛОК D1M - 2xAMUX Сборка: БЛОКИ D1M добавляют тактильные футляры, ярлыки, указатели полярности и прорывы для популярных мини-SOC / экранов / клонов Wemos D1. Одна из проблем микросхемы ESP8266 заключается в том, что она имеет только один аналоговый вывод ввода-вывода. В этом руководстве показано, как собрать 2xA
IOT123 - БЛОК D1M - RFTXRX Сборка: 8 шагов
IOT123 - D1M BLOCK - RFTXRX Assembly: D1M BLOCKS добавляет тактильные футляры, ярлыки, указатели полярности и прорывы для популярных мини-SOC / экранов / клонов Wemos D1. Радиочастотные передатчики / приемники позволяют ESP8266 получать доступ к существующей домашней / промышленной автоматизации. В этом кожухе предусмотрены отводы для 433
IOT123 - АССИМИЛЯЦИЯ АКТЕРА: KY019: 4 шага
IOT123 - ASSIMILATE ACTOR: KY019: Это с управляющим сигналом 5V TIL, который может управлять сигналом постоянного / переменного тока. Эта сборка основана на I2C KY019 BRICK. Если вам нужно 2 канала, я рекомендую заменить этого актера на 2CH RELAY BRICK. ASSIMILATE ACTORS / SENSORS - акторы / сенсоры окружающей среды
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 шага
IOT123 - 5PIN ATTINY85 NRF24L01 КИРПИЧ: ОБНОВЛЕНИЕ: Эта установка в основном академическая или является базой для тестирования программного обеспечения / источника питания. Даже когда PB5 отключен как RESET, он не считывает значения точно с помощью analogRead: основного варианта использования показаний датчиков. Посмотрим на настройку ATTINY84