Оглавление:
- Шаг 1. Материалы и инструменты
- Шаг 2: Подготовьте ATTINY85
- Шаг 3: Сборка индикаторов
- Шаг 4: Сборка главной цепи
- Шаг 5: Тестирование
- Шаг 6. Дальнейшие действия
Видео: IOT123 - I2C HEARTBEAT BRICK: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
КИРПИЧЫ IOT123 - это модульные блоки DIY, которые можно смешивать с другими КИРПИЧами IOT123, чтобы добавить функциональность узлу или носимому устройству. В их основе лежат двухсторонние прототипы квадратного сечения дюйма с соединенными между собой сквозными отверстиями.
Предполагается, что некоторое количество этих КИРПИЧОВ будет на нескольких узлах (главные MCU - ESP8266 или ATTINY84) на сайте. MCU не нуждается в предварительных знаниях о назначении датчиков или программных потребностях. Он сканирует узлы I2C, а затем запрашивает дамп свойств (данные датчика) от каждого ведомого устройства. Эти КИРПИЧЫ обеспечивают питание 5,0 В, 3,3 В и другую линию AUX, которую можно настроить.
Этот I2C HEARTBEAT BRICK указывает, жив ли ведомое устройство ATTINY, а также трафик I2C и имеет одно свойство:
СТАТУС («ЖИВУЮ»)
PB1 (белый) указывает на здоровье ATTINY.
PB3 (желтый) переключается с запросами I2C от мастера.
PB4 (оранжевый) переключается с приемом I2C от мастера.
Сквозные отверстия, примыкающие к ATTINY85, остались неиспользованными, чтобы можно было использовать программатор pogo pin, в то время как DIP8 припаян к печатной плате. Еще одна абстракция - упаковка КИРПИЧОВ в маленькие цилиндры, которые подключаются к концентратору D1M WIFI BLOCK и перекачивают значения на сервер MQTT.
Шаг 1. Материалы и инструменты
Есть полный список материалов и источников.
- Бумажная печатная плата (7 x 7 отверстий)
- Светодиоды (красный, зеленый, синий)
- Резисторы (3 шт. По 1 кОм)
- ATTINY85 20ПУ (1)
- 1 "двусторонняя макетная плата (1)
- Мужской заголовок 90º (3P, 3P)
- Мужской заголовок (2P, 2P)
- Перемычка шунта (1)
- Монтажный провод (~ 7)
- Припой и железо (1)
Шаг 2: Подготовьте ATTINY85
ПРИМЕЧАНИЕ. Если вы собираетесь интегрировать Crouton, воспользуйтесь библиотекой отсюда и используйте установленный пример "attiny_heartbeat"
AttinyCore от Boards Manager не требуется. Записать загрузчик «EEPROM Retained», «8mHZ Internal» (все конфигурации показаны выше).
Репозиторий кода можно найти здесь.
ZIP-архив библиотеки можно найти здесь.
Инструкции по «Импорту библиотеки ZIP» здесь.
После установки библиотеки вы можете открыть пример attiny_heartbeat.
Чтобы загрузить прошивку в ATTINY85, вы можете найти более подробную информацию в этих инструкциях:
www.instructables.com/id/Programming-the-….
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
Лучше всего протестировать через макетную плату, прежде чем продолжить.
Если у вас есть ДАТЧИКИ ASSIMILATE, убедитесь, что адрес ведомого устройства отличается в комбинации хоста ДАТЧИК / MCU, например. все субъекты Relay могут иметь один и тот же адрес, если у вас есть только один субъект Relay на MCU / узле.
Шаг 3: Сборка индикаторов
Индикаторы должны быть полностью настраиваемыми. Это сигналы событий от главной цепи, которые отображаются как Heartbeats. Для этой сборки мы будем использовать светодиодные индикаторы; ваша сборка может использовать реле (да, VCC сломан) или другой визуальный / сигнальный индикатор. Номиналы резисторов будут зависеть от личных предпочтений от того, насколько яркими они вам нужны.
- Сверху вставьте синий светодиод в RED1 (+) и BLACK1 (G), а снизу припаяйте.
- Внизу согните провод от RED1 так, чтобы он касался медной площадки на SILVER8, и подрежьте.
- Внизу обрежьте вывод от ЧЕРНОГО 1 над припоем.
- Сверху вставьте зеленый светодиод в RED2 (+) и BLACK2 (G), а снизу припаяйте.
- Внизу согните провод от RED2 так, чтобы он касался медной площадки на SILVER9, и обрежьте.
- Внизу обрезать вывод от ЧЕРНОГО 2 над припоем.
- Сверху вставьте красный светодиод в RED3 (+) и BLACK3 (G), а снизу припаяйте.
- Внизу согните провод от RED3 так, чтобы он касался медной площадки на SILVER10, и подрежьте.
- Внизу обрезать вывод от ЧЕРНОГО 3 над припоем.
- Сверху вставьте резистор 1 кОм в сквозные отверстия SILVER1 и SILVER4.
- Внизу проследите, обрежьте и припаяйте вывод СЕРЕБРЯНЫЙ1 на ЧЕРНЫЙ1.
- Сверху вставьте резистор 1 кОм в сквозные отверстия SILVER2 и SILVER4.
- Внизу проследите, обрежьте и припаяйте вывод СЕРЕБРЯНЫЙ2 на ЧЕРНЫЙ2.
- Сверху вставьте резистор 1 кОм в сквозные отверстия SILVER3 и SILVER4.
- Внизу проследите, обрежьте и припаяйте вывод от SILVER3 к BLACK3.
- Внизу припаяйте провода к SILVER4 и обрежьте их примерно на 5 мм.
- Снизу припаяйте черный провод к SILVER4.
- Внизу припаяйте белый провод к SILVER5, чтобы обеспечить непрерывность вывода от RED1.
- Внизу припаяйте желтый провод к СЕРЕБРЯНОМУ 6, обеспечивая непрерывность от КРАСНОГО2.
- Внизу припаяйте оранжевый провод к SILVER7, обеспечив непрерывность вывода от RED3.
Шаг 4: Сборка главной цепи
Сборка:
- На передней панели вставьте компоненты ATTINY85 (1), 3-полюсные 90-градусные вилочные разъемы (2) (3), 3-полюсные вилочные разъемы (4) (5) и припаяйте сзади.
- Сзади проследите желтый провод от ЖЕЛТОГО1 до ЖЕЛТОГО2 и припаяйте.
- Сзади проследите оранжевый провод от ORANGE1 до ORANGE2 и припаяйте.
- Сзади проследите синий провод от СИНЕГО 1 до СИНЕГО2 и припаяйте.
- Сзади проследите зеленый провод от GREEN1 до GREEN2 и припаяйте.
- Сзади проследите белый провод от БЕЛОГО1 до БЕЛОГО2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО1 до ЧЕРНОГО2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО3 до ЧЕРНОГО4 и припаяйте.
- Сзади проследите красный провод от RED1 до RED2 и припаяйте.
- Сзади проследите оголенный провод от RED3 до RED4 и припаяйте.
- Сзади проследите оголенный провод от SILVER1 до SILVER2 и припаяйте.
- Добавьте перемычку на линию 5V или 3V3.
При использовании индикаторов выше (см. Распиновку):
- Сзади припаяйте белый провод к PB1.
- Сзади припаяйте желтый провод к PB3.
- Сзади припаяйте оранжевый провод к PB4.
- Сзади припаяйте черный провод к GND.
Шаг 5: Тестирование
Предполагается, что некоторые из этих КИРПИЧОВ будут находиться на нескольких узлах (MCU - ESP8266 или ATTINY84) в среде. Это модульный тест: отправляет команды I2C от UNO на ATTINY, который переключает индикатор приема. Светодиод ATTINY ALIVE горит постоянно.
Ранее мы создали 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 (так 16 2 1), и загорится индикатор получения.
- Когда введите в поле отправки 2 0 (так 16 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
Шаг 6. Дальнейшие действия
Последующий ASSIMILATE ACTOR: HEARTBEAT, который использует этот кирпич, имеет автоматическую настройку для Crouton через метаданные, уже установленные в ATTINY85 здесь. Пакет JSON, отправленный в Crouton, отправляется через последнюю версию прошивки для ICOS10. Вы можете сделать Proof-of-Concept на обычном ESP8266, если сборка пока слишком велика.
Скетч UNO, используемый при тестировании, имеет функцию для сохранения нового адреса подчиненного устройства в EEPROM на ATTINY85, если у вас есть конфликт на целевой шине I2C.
Рекомендуемые:
Heartbeat Game - Проект: 4 шага
Heartbeat Game - Project: Сегодня, как мы все знаем, 20 мая. Это уже традиционный китайский День святого Валентина. (520 на китайском означает «Я люблю тебя»). Теперь мы собираемся сделать интерактивное устройство под названием «Лаборатория сердцебиения», чтобы проверить молчаливое понимание пары. Это тест
Нажмите Brick Switch для Макея Макея: 4 шага (с изображениями)
Click Brick Switch для Makey Makey: этот переключатель, напечатанный на 3D-принтере, позволит пользователю превратить Makey Makey в «скольжение пальца»; для " щелчка " в играх или стрелки вправо / влево для прокрутки презентаций. Добавление правого и левого клеммных колодок для
IOT123 - БЛОК D1M - 2xAMUX Сборка: 7 шагов (с изображениями)
IOT123 - БЛОК D1M - 2xAMUX Сборка: БЛОКИ D1M добавляют тактильные футляры, ярлыки, указатели полярности и прорывы для популярных мини-SOC / экранов / клонов Wemos D1. Одна из проблем микросхемы ESP8266 заключается в том, что она имеет только один аналоговый вывод ввода-вывода. В этом руководстве показано, как собрать 2xA
Heartbeat❤Наушник: 7 шагов
Heartbeat❤Headband: Я нашел идею проекта в Makezine: https://makezine.com/projects/make-29/beating-hear… Это носимое устройство со светодиодным сердечком, которое мигает под ритм вашего сердца ❤
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 шага
IOT123 - 5PIN ATTINY85 NRF24L01 КИРПИЧ: ОБНОВЛЕНИЕ: Эта установка в основном академическая или является базой для тестирования программного обеспечения / источника питания. Даже когда PB5 отключен как RESET, он не считывает значения точно с помощью analogRead: основного варианта использования показаний датчиков. Посмотрим на настройку ATTINY84