Мазмуну:

IOT123 - I2C KY019 КИРПИЧ: 5 кадам
IOT123 - I2C KY019 КИРПИЧ: 5 кадам

Video: IOT123 - I2C KY019 КИРПИЧ: 5 кадам

Video: IOT123 - I2C KY019 КИРПИЧ: 5 кадам
Video: Уроки Arduino #8 - управление реле 2024, Ноябрь
Anonim
IOT123 - I2C KY019 КИРПИШ
IOT123 - I2C KY019 КИРПИШ
IOT123 - I2C KY019 КИРПИШ
IOT123 - I2C KY019 КИРПИШ

IOT123 КИРПИЧтери - бул модулдук бирдиктер, алар IOT123 КИРПИЧТЕРИ менен биригип, түйүнгө функционалдык мүмкүнчүлүктү кошууга болот. Алар дюймдук чарчы, тешиктер аркылуу бири-бири менен байланышкан эки жактуу протоборлорго негизделген.

Бул BRICKS бир катар сайтта бир нече түйүндөрдө болушу күтүлүүдө (Master MCUs - ESP8266 же ATTINY84). MCU сенсорлордун максаты же программалык камсыздоо муктаждыктары жөнүндө алдын ала билимге муктаж эмес. Ал I2C түйүндөрүн издейт, андан кийин ар бир кулдан мулк таштандысын (сенсордук маалыматтарды) сурайт. Бул BRICKs 5.0V, 3.3V жана настройкаланган башка AUX линиясын беришет.

Бул I2C KY019 КИРПИЧИ АКТОРЛОРДУН биринчиси жана бир окуу/жазуу касиети бар:

Которуу (чыныгы/жалган)

Keyes тибиндеги кирпичтер биринчи абстракцияланышат, анткени алар витаминдер менен келет (кошумча компоненттер керек) жана салыштырмалуу чийки (мен 37 AUD үчүн сатып алдым). Башка такталар/схемалар I2C BRICKSке киргизилет.

ATTINY85 жанындагы тешиктер DIP8 ПХБга ширетилип жатканда, пого пин программистти иштетүү үчүн колдонулбай калган. Дагы бир абстракция, D1M WIFI BLOCK хабына туташтырылган кичинекей цилиндрлерге кирпичтерди таңгактоо, баалуулуктарды MQTT серверине чыгаруу.

1 -кадам: материалдар жана инструменттер

Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар

Материалдардын жана булактардын толук тизмеси бар.

  1. KY-019 Реле (1)
  2. ATTINY85 20PU (1)
  3. 1 "Эки тараптуу протобер (1)
  4. Эркек Башы 90º (3P, 3P)
  5. Байланыш зымы (~ 7)
  6. Лайнер жана Темир (1)

2 -кадам: ATTINY85ти даярдаңыз

ATTINY85ти даярдаңыз
ATTINY85ти даярдаңыз
ATTINY85ти даярдаңыз
ATTINY85ти даярдаңыз
ATTINY85ти даярдаңыз
ATTINY85ти даярдаңыз

ЭСКЕРТҮҮ: Crouton интеграциясын колдонууну кааласаңыз, ушул жерден китепкананы колдонуңуз жана "attiny_ky019" орнотулган мисалын колдонуңуз.

Такта менеджеринен AttinyCore керек. "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 SENSORS бар болсо, анда SENSOR/MCU Host комбинациясында кул дареги башкача экенин текшериңиз, башкача айтканда, MCE/түйүнүндө бир гана Релейлик актер болгондо, Эстафетанын бардык актерлору бир эле дарекке ээ боло алышат.

3 -кадам: Районду чогултуңуз

Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
  1. Алдыңкы бөлүктө ATTINY85 (1), 3P 90deg эркек баш (2) (3) компоненттерин салыңыз жана арткы жагында ширетүү.
  2. Арткы жагында сары зымды САРЫ 1ден САРЫ2ге чейин издеп, ширетүү керек.
  3. Арткы жагында, BLUE1ден BLUE2ге чейин көк зымды караңыз жана solder.
  4. Арткы жагында GREEN1ден GREEN2ге чейинки жашыл зымды байкап көрүңүз.
  5. Арткы жагында BLACK1ден BLACK2ге чейин кара зымды караңыз жана ширетүү.
  6. Арткы жагында BLACK3төн BLACK4ке чейин кара зымды караңыз жана ширетүү.
  7. Арткы жагында кызыл зымды RED1ден RED2ге чейин жана ширетүүнү издеңиз.
  8. Арткы жагында кызыл зымды RED3төн RED4кө чейин жана ширетүүнү издеңиз.

Эстафета эми анын пинтери аркылуу ПХБга же зымдар аркылуу, пин келишиминде көрсөтүлгөн пункттарга туташтырылышы мүмкүн.

4 -кадам: Тестирлөө

Тестирлөө
Тестирлөө
Тестирлөө
Тестирлөө
Тестирлөө
Тестирлөө

Бул BRICKS бир катар чөйрөдө бир нече түйүндөрдө (MCUs - ESP8266 же ATTINY84) болушу күтүлүүдө. Бул тест бирдиги: I2C командаларын UNOдон ATTINYге жөнөтөт, ал релени ачат же жабат.

Биз мурун Arduino үчүн I2C SHIELD курганбыз.

Эгерде сиз анын ордуна нан жегиси келсе:

  1. БУУдагы 5.0Вды БРИККтеги VCCге туташтырыңыз.
  2. БУУдагы GNDди БРИККтеги GNDге туташтырыңыз.
  3. A5ти БУУда SCL менен BRICKке туташтырыңыз.
  4. БУУдагы А4ты БРИКК боюнча SDAга туташтырыңыз.
  5. SDAдан VCCге 4K7 тартма каршылыгын туташтырыңыз.
  6. SCLден VCCге 4K7 тартма каршылыгын туташтырыңыз.

Тестти иштетүү

  1. UNOну USB менен Dev PCке туташтырыңыз.
  2. Кодду БУУга жүктөңүз.
  3. Arduino консолун ачыңыз. 9600 baudду тандаңыз (БУУну кайра баштаңыз жана керек болсо консолун кайра ачыңыз).
  4. Кулдун дареги консолго басып чыгарылат.
  5. Качан, жөнөтүү кутучасына 2 1 киргизиңиз (ошондо 12 2 1), жана реле күйөт.
  6. Качан, жөнөтүү кутучасына 2 0 киргизиңиз (ошондо 12 2 0), реле өчөт.

UNO кожоюнунун кулдары үчүн I2C BRICK adhoc буйруктары

#кошуу
const байт _num_chars = 32;
char _received_chars [_num_chars]; // алынган маалыматтарды сактоо үчүн массив
логикалык _has_new_data = жалган;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITOR СОНУН");
Serial.println ("консоль терезесинде жаңы сызыктын тандалышын камсыз кылуу");
Serial.println ();
Serial.println ("ADRESS 1 METADATA RECEIPT N/A (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.beginTrmission (дарек);
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 ++;
эгер (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
башка {
_received_chars [ndx] = '\ 0'; // сапты токтотуу
ndx = 0;
_has_new_data = чындык;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String алынды_сап = Стринг (_received_chars);
эгер (_has_new_data == true) {
int idx1 = алынды_string.indexOf ('');
Стринг дареги = алынды_string.substring (0, idx1);
int address_int = address.toInt ();
эгер (address_int <8 || address_int> 127) {
Serial.println ("ЖАРАКСЫЗ АДРЕС КИРИШИ:");
Serial.println (дареги);
кайтуу;
}
int idx2 = алынды_string.indexOf ('', idx1+1);
Стринг коду;
эгер (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;
String parameter;
if (has_parameter) {
параметр = алынды_сап.substring (idx2 + 1, idx2 + 17); // максимум 16 тамга
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = жалган;
кайтуу;
}
} башка {
эгер (code_int> 1) {
Serial.println ("ПАРАМЕТР КЕРЕК!");
_has_new_data = жалган;
кайтуу;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (алынган_сап);
Serial.print ("дарек =");
Serial.println (дареги);
Serial.print ("код =");
Serial.println (код);
Serial.print ("parameter =");
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 = жалган;
}
}

GitHub тарабынан ❤ уюштурулган rawuno_i2c_command_input.ino караңыз

5 -кадам: Кийинки кадамдар

Кийинки кадамдар
Кийинки кадамдар
Кийинки кадамдар
Кийинки кадамдар
Кийинки кадамдар
Кийинки кадамдар
Кийинки кадамдар
Кийинки кадамдар

Кийинки ASSIMILATE ACTOR: KY019 бул кирпичти колдонот, буга чейин ATTINY85те орнотулган метадайындар аркылуу Crouton үчүн автоматтык конфигурациясы бар. Крутонго жөнөтүлгөн JSON пакети ICOS10 үчүн эң акыркы программалык камсыздоо аркылуу жөнөтүлөт. Эгерде сиз азырынча өтө эле көп болсоңуз, анда кадимки ESP8266 боюнча Proof-of-концепциясын жасай аласыз.

Сыноодо колдонулган UNO эскизи, эгерде сиз максаттуу I2C автобусунда кагылышуу болсо, ATTINY85те EEPROMга жаңы кул дарегин сактоо функциясына ээ.

Бир нече схемалар кошулду, бирок сиз каалаган нерсеге жараша ылдыйкы схеманы өткөрүүнүн ар кандай жолдору бар, ошондуктан мен муну сизге калтырам:)

Сунушталууда: