Съдържание:
- Стъпка 1: Материали и инструменти
- Стъпка 2: Подгответе ATTINY85
- Стъпка 3: Сглобете веригата
- Стъпка 4: Тестване
- Стъпка 5: Следващи стъпки
Видео: IOT123 - I2C KY019 ТУХА: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Тухлите IOT123 са модулни единици „Направи си сам“, които могат да бъдат комбинирани с други IOT123 ТУКЛИ, за да се добави функционалност към възел или носим. Те се основават на инчови квадратни, двустранни протобордове със свързани помежду си отвори.
Очаква се редица от тези ТУРКИ да бъдат на множество възли (Master MCUs - ESP8266 или ATTINY84) на сайт. MCU не се нуждае от предварителни познания за целите на сензорите или софтуерните нужди. Той сканира за I2C възли, след което иска дамп на свойство (данни на сензора) от всяко подчинено устройство. Тези тухли захранват 5.0V, 3.3V и друга AUX линия, която може да се персонализира.
Тази I2C KY019 тухла е първата от АКТОРИТЕ и има едно свойство за четене/запис:
Превключване (вярно/невярно)
Сензорните тухли тип Keyes първо ще бъдат абстрахирани, тъй като идват с включени витамини (необходими са допълнителни компоненти) и са сравнително евтини (купих 37 за 10 австралийски долара). Други платки/вериги ще бъдат представени на I2C тухлите.
Проходните отвори, съседни на ATTINY85, са оставени неизползвани, за да се даде възможност за програмиране на pogo pin, докато DIP8 е запоен към печатната платка. Разработва се още една абстракция, опаковане на ТУКЛИТЕ в малки цилиндри, които се включват в D1M WIFI BLOCK хъб, изпомпвайки стойностите към MQTT сървър.
Стъпка 1: Материали и инструменти
Има пълен списък на материали и източници.
- KY-019 реле (1)
- ATTINY85 20PU (1)
- 1 "Двустранна протоборд (1)
- Заглавие за мъже 90º (3P, 3P)
- Свързващ проводник (~ 7)
- Припой и желязо (1)
Стъпка 2: Подгответе ATTINY85
ЗАБЕЛЕЖКА: Ако възнамерявате да имате интеграция на Crouton, моля, използвайте библиотеката от тук и използвайте инсталирания пример „attiny_ky019“.
Необходим е AttinyCore от мениджъра на борда. Записване на буутлоудъра „EEPROM запазена“, „8mHZ Вътрешна“(всички конфигурации са показани по -горе).
Хранилището на кодовете може да се намери тук.
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 SENSORS, уверете се, че подчиненият адрес е различен в комбинацията SENSOR/MCU Host, т.е. всички релейни актьори могат да имат един и същ адрес, стига да имате само един Relay актьор на MCU/възел.
Стъпка 3: Сглобете веригата
- Отпред поставете компонентите ATTINY85 (1), 3P 90deg мъжки заглавки (2) (3) и спойнете отзад.
- Отзад проследете жълт проводник от ЖЪЛТО1 до ЖЪЛТО2 и запойте.
- Отзад проследете син проводник от СИН1 до СИН2 и запойте.
- Отзад проследете зелен проводник от ЗЕЛЕН1 до ЗЕЛЕН2 и запойте.
- Отзад проследете черен проводник от BLACK1 до BLACK2 и запойте.
- Отзад проследете черен проводник от BLACK3 до BLACK4 и запойте.
- Отзад проследете червен проводник от RED1 до RED2 и запойте.
- Отзад проследете червен проводник от RED3 до RED4 и запойте.
Релето вече може да бъде свързано директно чрез своите щифтове към печатната платка или чрез проводници, към точките, показани в договора на щифта.
Стъпка 4: Тестване
Очаква се редица от тези ТУРКИ да бъдат на множество възли (MCUs - ESP8266 или ATTINY84) в среда. Това е единичен тест: изпраща I2C команди от UNO към ATTINY, който отваря или затваря релето.
По -рано сме изградили I2C SHIELD за Arduino.
Ако вместо това искате да го направите на червено:
- Свържете 5.0V на UNO към VCC на BRICK.
- Свържете GND на UNO към GND на BRICK.
- Свържете 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 adhoc команди за подчинени от UNO master
#включва |
const байт _num_chars = 32; |
char _received_chars [_num_chars]; // масив за съхраняване на получените данни |
логически _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
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; |
for (байт адрес = 8; адрес <127; адрес ++) |
{ |
Wire.beginTransmission (адрес); |
грешка в байта на const = 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 = _ брой_чарси - 1; |
} |
} |
иначе { |
_received_chars [ndx] = '\ 0'; // прекратяваме низа |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const Низ получен_стринг = Низ (_received_chars); |
if (_has_new_data == true) { |
int idx1 = получен_стринг.indexOf (''); |
Адрес на низ = получен_стринг.подстринг (0, idx1); |
int address_int = address.toInt (); |
if (address_int <8 || address_int> 127) { |
Serial.println ("INVALID ADDRESS INPUT:"); |
Serial.println (адрес); |
връщане; |
} |
int idx2 = получен_стринг.indexOf ('', idx1+1); |
Код на низ; |
ако (idx2 == -1) { |
код = получен_стринг.подстринг (idx1+1); |
} else { |
код = получен_стринг.подстринг (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("INVALID CODE INPUT:"); |
Serial.println (код); |
връщане; |
} |
bool has_parameter = idx2> -1; |
Низов параметър; |
if (has_parameter) { |
параметър = получен_стринг.подстринг (idx2 + 1, idx2 + 17); // 16 символа макс |
if (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = false; |
връщане; |
} |
} else { |
if (code_int> 1) { |
Serial.println ("ИЗИСКВАН ПАРАМЕТЪР!"); |
_has_new_data = false; |
връщане; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (получен_стринг); |
Serial.print ("address ="); |
Serial.println (адрес); |
Serial.print ("code ="); |
Serial.println (код); |
Serial.print ("параметър ="); |
Serial.println (параметър); |
// ИЗПРАЩАНЕ ЧРЕЗ I2C |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
if (has_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.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 тук. Изпратеният до Crouton пакет JSON се изпраща чрез най -новия фърмуер за ICOS10. Можете да направите Proof-of-concept на обикновен ESP8266, ако компилацията е твърде много за сега.
Скицата UNO, използвана при тестване, има функция за запазване на нов подчинен адрес в EEPROM на ATTINY85, ако имате сблъсък на целевата си I2C шина.
Добавени са няколко схеми, но има различни начини за свързване на веригата надолу по веригата в зависимост от това какво искате да постигнете, така че ще оставя това за вас:)
Препоръчано:
IOT123 - D1M БЛОК - 2xAMUX Монтаж: 7 стъпки (със снимки)
IOT123 - D1M БЛОК - 2xAMUX Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. Един от проблемите с чипа ESP8266 е, че има само един аналогов IO пин. Тази инструкция показва как да сглобите 2xA
IOT123 - D1M БЛОК - RFTXRX Монтаж: 8 стъпки
IOT123 - D1M БЛОК - RFTXRX Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. RF предаватели/приемници позволяват на ESP8266 достъп до съществуваща домашна/индустриална автоматизация. Този корпус осигурява пробиви за 433
IOT123 - D1M БЛОК - GY521 Монтаж: 8 стъпки
IOT123 - D1M BLOCK - GY521 Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. Този D1M БЛОК дава лесно свързване между Wemos D1 Mini и модула GY-521 (щифтовете за адрес и прекъсване могат да бъдат закачени
IOT123 - АСИМИЛИРАЩ АКТОР: KY019: 4 стъпки
IOT123 - АСИМИЛИРАЩ АКТОР: KY019: Той е с 5V TIL контролен сигнал, който може да контролира DC / AC сигнал. Тази конструкция се основава на I2C KY019 BRICK. Ако имате нужда от 2 канала, препоръчвам да замените този актьор за 2CH RELAY BRICK. АСИМИЛИРАНИТЕ АКТОРИ/СЕНЗОРИ са актьори от околната среда/сензо
IOT123 - LIR2032 АКУМУЛАТОРНА ТУХА: 4 стъпки
IOT123 - LIR2032 АКУМУЛАТОРНА ТУХА: IOT123 ТУРЦИТЕ са модулни модули „Направи си сам“, които могат да се комбинират с други IOT123 ТУКЛИ, за да се добави функционалност към възел или носим. Те се основават на инчови квадратни, двустранни протобордове със свързани помежду си отвори. Въпреки че инструкциите