Оглавление:
- Шаг 1. Материал и инструменты
- Шаг 2: Подготовьте ATTINY85
- Шаг 3: соберите схему
- Шаг 4: Тестирование
- Шаг 5. Дальнейшие действия
Видео: IOT123 - I2C MQ2 BRICK: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
КИРПИЧЫ IOT123 - это модульные блоки DIY, которые можно смешивать с другими КИРПИЧами IOT123, чтобы добавить функциональность узлу или носимому устройству. В их основе лежат двухсторонние прототипы квадратного сечения дюйма с соединенными между собой сквозными отверстиями.
Предполагается, что некоторое количество этих КИРПИЧОВ будет на нескольких узлах (главные MCU - ESP8266 или ATTINY84) на сайте. MCU не нуждается в предварительных знаниях о назначении датчиков или программных потребностях. Он сканирует узлы I2C, а затем запрашивает дамп свойств (данные датчика) от каждого ведомого устройства. Эти КИРПИЧЫ обеспечивают питание 5,0 В, 3,3 В и другую линию AUX, которую можно настроить.
Этот КИРПИЧ I2C MQ2 сбрасывает 3 свойства:
LPG (частей на миллион), CO (PPM), ДЫМ (PPM)
Этот датчик предоставил интересный сценарий: ему нужно как минимум 2 минуты (до 5 минут) для разогрева, затем его необходимо откалибровать в течение 20 секунд перед использованием. Поскольку MCU хоста предназначен только для получения пар имя / значение (и сообщения продолжения), мы ввели свойство «PREPARE». Поскольку его сообщение продолжения - «1» (еще больше), MCU хоста будет продолжать опрашивать КИРПИЧ, пока он не будет готов. Также рекомендуется «прогреть» MQ2 перед использованием, т.е. оставить подключенным к цепи 5 В на 24 часа.
Сначала мы рассмотрим сенсорные блоки типа Keyes, поскольку они поставляются с витаминами (необходимы дополнительные компоненты) и относительно дешевы (я купил 37 за 10 австралийских долларов). Другие платы / схемы будут представлены в I2C BRICKS.
Сквозные отверстия, примыкающие к ATTINY85, остались неиспользованными, чтобы можно было использовать программатор pogo pin, в то время как DIP8 припаян к печатной плате.
Еще одна абстракция - упаковка КИРПИЧОВ в маленькие цилиндры, которые подключаются к концентратору D1M WIFI BLOCK и перекачивают значения на сервер MQTT.
Шаг 1. Материал и инструменты
Есть полный список материалов и источников.
- Блок датчиков MQ2 (1)
- ATTINY85 20ПУ (1)
- 1 "двусторонняя макетная плата (1)
- Мужской заголовок 90º (3P, 3P)
- Мужской заголовок (2P, 2P)
- Перемычка шунта (1)
- Монтажный провод (~ 7)
- Припой и железо (1)
Шаг 2: Подготовьте ATTINY85
AttinyCore от Boards Manager не требуется. Записать загрузчик «EEPROM Retained», «8mHZ Internal» (все конфигурации показаны выше).
Используйте включенный источник; скомпилировать и запрограммировать на ATtiny85.
GIST здесь:
gist.github.com/IOT-123/4c501046d365d01a60…
Вы можете найти более подробную информацию в этих инструкциях:
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, убедитесь, что адрес ведомого устройства отличается в комбинации хоста ДАТЧИК / MCU, то есть все датчики температуры могут иметь один и тот же адрес, если у вас есть только один датчик температуры на MCU / узле.
Шаг 3: соберите схему
- На лицевой стороне вставьте компоненты ATTINY85 (1), 3-полюсные 90-градусные вилочные разъемы (2) (3), 2-полюсные вилочные разъемы (4) (5) и припаяйте сзади.
- Сзади проследите оранжевый провод от ORANGE1 до ORANGE2 и припаяйте.
- Сзади проследите синий провод от СИНЕГО 1 до СИНЕГО2 и припаяйте.
- Сзади проследите зеленый провод от GREEN1 до GREEN2 и припаяйте.
- Сзади проследите оголенный провод от SILVER1 до SILVER2 и припаяйте.
- Сзади проследите оголенный провод от SILVER3 до SILVER4 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО1 до ЧЕРНОГО2 и припаяйте.
- Сзади проследите черный провод от ЧЕРНОГО3 до ЧЕРНОГО4 и припаяйте.
- Сзади проследите красный провод от RED1 до RED2 и припаяйте.
- Сзади проследите красный провод от RED3 до RED4 и припаяйте.
- Сзади проследите желтый провод от ЖЕЛТОГО1 до ЖЕЛТОГО2 и припаяйте.
Теперь датчик можно подключить напрямую через контакты к печатной плате или с помощью проводов к точкам, указанным на контакте контактов.
Шаг 4: Тестирование
Предполагается, что некоторые из этих КИРПИЧОВ будут находиться на нескольких узлах (MCU - ESP8266 или ATTINY84) в среде. Это модульный тест: проверяет запросы / ответы UNO до тех пор, пока все данные не будут сброшены, затем игнорирует ведомое устройство I2C.
- Загрузите код UNO в свой тестовый комплект UNO. Убедитесь, что ADDRESS_SLAVE совпадает с адресом I2C КИРПИЧА.
- Подключите 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.
- Откройте консоль Arduino и выберите 9600 бод (перезапустите UNO и снова откройте консоль, если необходимо).
- Имена и значения свойств должны быть выведены на консоль один раз, после чего слово «сон» повторяется.
Если вы видите «setup», то 3 строки мусора повторяются, возможно, ваши линии SDA и SCL перевернуты на передний план.
Ведущее устройство I2C ведет журнал с ведомого устройства I2C с поддержкой плоттера / метаданных
#включают |
# defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"имя", "значение"}; |
voidsetup () { |
Wire.begin (); // подключаемся к шине i2c (адрес для мастера необязательный) |
Serial.begin (9600); // запускаем серийник для вывода |
задержка (1000); |
if (! _outputPlotterOnly) { |
Serial.println («настройка»); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _confirmedMetadata) {// даем ведомому знать, что нужно начать отправку данных датчика |
задержка (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
задержка (100); |
_confirmedMetadata = true; |
} |
_i2cNodeProcessed = false; |
if (! _outputPlotterOnly) { |
Serial.println (); |
} |
возвращение; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
пакет char [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (третий) 1 = больше, 0 = последний |
while (Wire.available ()) {// ведомое устройство может отправить меньше, чем запрошено |
char c = Wire.read (); |
пакет [индекс] = int (c)> -1? c: ''; // заменяем недопустимые символы пробелами |
if (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 в последнем свойстве |
_i2cNodeProcessed = true; |
// отправляем значения в MQTT |
перерыв; |
} |
} |
index ++; |
} |
if (! isContinueSegment) { |
if (! _outputPlotterOnly) { |
Serial.println (пакет); |
} |
strcpy (_property [_packetSegment - 1], packet); // устанавливаем локальную переменную с именем / значением |
}еще{ |
if (_outputPlotterOnly && _confirmedMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
}еще{ |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
просмотреть rawuno_i2c_generic_sensor_test_w_plotter_v2.ino, размещенный на ❤ на GitHub
Шаг 5. Дальнейшие действия
Базовая схема схемы и уровень программного обеспечения I2C связаны со многими различными датчиками. Главное, с чего нужно начать, - это пакетный контракт между ведущим и ведомым.
Я запланировал / запустил (3D-печать) упакованную сеть датчиков, которые используют эту структуру, и буду ссылаться на нее по мере публикации частей.
Этот БЛОК используется ДАТЧИКОМ MQ2 ASSIMILATE SENSOR.
Рекомендуемые:
Нажмите 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 - ДАТЧИК АССИМИЛЯЦИИ: MQ2: 4 ступени
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS - это датчики среды, которые имеют добавленный уровень аппаратной и программной абстракции, что позволяет добавлять совершенно новые типы в ASSIMILATE SENSOR HUB и передавать показания на сервер MQTT без добавления кода
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 шага
IOT123 - 5PIN ATTINY85 NRF24L01 КИРПИЧ: ОБНОВЛЕНИЕ: Эта установка в основном академическая или является базой для тестирования программного обеспечения / источника питания. Даже когда PB5 отключен как RESET, он не считывает значения точно с помощью analogRead: основного варианта использования показаний датчиков. Посмотрим на настройку ATTINY84