Мазмуну:

IOT123 - I2C ЖҮРӨК КИРПИЧИ: 6 кадам
IOT123 - I2C ЖҮРӨК КИРПИЧИ: 6 кадам

Video: IOT123 - I2C ЖҮРӨК КИРПИЧИ: 6 кадам

Video: IOT123 - I2C ЖҮРӨК КИРПИЧИ: 6 кадам
Video: IOT123 - ICOS10: STRUCTURE 2024, Июнь
Anonim
IOT123 - I2C ЖҮРӨК КИРПИЧИ
IOT123 - I2C ЖҮРӨК КИРПИЧИ
IOT123 - I2C ЖҮРӨК КИРПИЧИ
IOT123 - I2C ЖҮРӨК КИРПИЧИ
IOT123 - I2C ЖҮРӨК КИРПИЧИ
IOT123 - I2C ЖҮРӨК КИРПИЧИ

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

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

Бул I2C HEARTBEAT BRICK ATTINY кулунун тирүү экендигин, ошондой эле I2C трафигин жана бир касиетке ээ экендигин көрсөтөт:

АБАЛ ("ТИРҮҮ")

PB1 (ак) ATTINY ден соолукту көрсөтөт.

PB3 (сары) мастерден I2C сурамдары менен которулат.

PB4 (кызгылт сары) мастерден I2C алуу менен которулат.

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

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

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

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

  1. Кагаз PCB (7 x 7 тешик)
  2. LEDS (Кызыл, Жашыл, Көк)
  3. Резисторлор (3 өчүрүү 1K)
  4. ATTINY85 20PU (1)
  5. 1 "Эки тараптуу протобер (1)
  6. Эркек Башы 90º (3P, 3P)
  7. Эркек баш (2P, 2P)
  8. Jumper Shunt (1)
  9. Байланыш зымы (~ 7)
  10. Лайнер жана Темир (1)

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

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

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

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

3 -кадам: индикаторлорду чогултуу

Көрсөткүчтөрдү чогултуу
Көрсөткүчтөрдү чогултуу
Көрсөткүчтөрдү чогултуу
Көрсөткүчтөрдү чогултуу
Көрсөткүчтөрдү чогултуу
Көрсөткүчтөрдү чогултуу

Көрсөткүчтөр толугу менен ыңгайлаштырылган. Бул жүрөктүн кагышы катары көрүнгөн негизги схемадан окуя сигналдары. Бул курулуш үчүн биз LED көрсөткүчтөрүн колдонобуз; Сиздин түзүлүшүңүз релелерди (ооба VCC бузулган) же башка визуалдык/сигналга негизделген индикаторду колдоно алат. Резистордун баалуулугу сиз каалаганыңызга жараша жеке каалоосуна жараша болот.

  1. Үстүнкү жагына RED1 (+) жана BLACK1 (G) ичине көк LED киргизиңиз, ал эми астына.
  2. Төмөндө, коргошун RED1ден ийип, ал SILVER8деги жез блокнотко тийип, кыркыңыз.
  3. Ылдый жагында коргошунду BLACK1 үстүндөгү ширеткичтен өйдө көтөрүңүз.
  4. Үстүнкү жагына жашыл диодду RED2 (+) жана BLACK2 (G) ичине салыңыз, ал эми астына.
  5. Төмөндө, коргошун RED2ден бүгүңүз, андыктан ал SILVER9 жез төшөгүнө тийип, кыркыңыз.
  6. Ылдый жагында коргошунду BLACK2 үстүндөгү ширеткичтен өйдө көтөрүңүз.
  7. Үстүнкү жагына кызыл LEDды RED3 (+) жана BLACK3 (G) ичине салыңыз, астына болсо ширеткичти.
  8. Төмөндө, коргошун RED3төн ийип, ал SILVER10 жез төшөгүнө тийип, кыркыңыз.
  9. Төмөндө, коргошун үстүнөн BLACK3 үстүнөн эритип коюңуз.
  10. Үстүндө SILVER1 жана SILVER4 тешиктерине 1K каршылыгын салыңыз.
  11. Төмөндө SILVER1ден BLACK1ге коргошунду издеңиз, кыркыңыз жана эриңиз.
  12. Үстүндө SILVER2 жана SILVER4 тешиктерине 1K каршылыгын салыңыз.
  13. Төмөндө SILVER2ден BLACK2ге коргошунду издеңиз, кыркыңыз жана эриңиз.
  14. Үстүндө SILVER3 жана SILVER4 тешиктерине 1K каршылыгын салыңыз.
  15. Төмөндө SILVER3төн BLACK3ке коргошунду издеңиз, кыркыңыз жана эриңиз.
  16. Төмөндө, SILVER4 боюнча ширетүүчү зымдар жана 5ммге жакын узартылган.
  17. Ылдыйда, кара зымды SILVER4ке ээрчиңиз.
  18. Төмөн жагында ак зымды SILVER5ке кошуп, RED1ден коргошун үзгүлтүксүз камсыздоо.
  19. Төмөн жагында сары зымды SILVER6га кошуп, RED2ден коргошун үзгүлтүксүз камсыздоо.
  20. Төмөн жагында кызгылт сары зымды SILVER7ге кошуп, RED3 тартып коргошун үзгүлтүксүз камсыздоо.

4 -кадам: Башкы схеманы чогултуу

Башкы схеманы чогултуу
Башкы схеманы чогултуу
Башкы схеманы чогултуу
Башкы схеманы чогултуу
Башкы схеманы чогултуу
Башкы схеманы чогултуу

Ассамблея:

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

Жогорудагы индикаторлорду колдонуп жатсаңыз (pinout диаграммасын караңыз):

  1. Арткы жагында ак зымды PB1ге туташтырыңыз.
  2. Арткы жагында сары зымды PB3кө кошуңуз.
  3. Арткы жагында кызгылт сары зымды PB4ке туташтырыңыз.
  4. Арткы жагында кара зымды GNDге туташтырыңыз.

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

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

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

Биз мурун 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 консолун ачыңыз.
  4. 9600 байды тандаңыз (БУУну кайра жүктөңүз жана керек болсо консолун кайра ачыңыз).
  5. Кулдун дареги консолго басып чыгарылат.
  6. Качан, жөнөтүү кутучасына 2 1 киргизиңиз (ошентип 16 2 1), жана кабыл алуу LEDи күйөт.
  7. Качан, жөнөтүү кутучасына 2 0 киргизиңиз (ошентип 16 2 0), жана кабыл алуу LEDи өчөт.

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 караңыз

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

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

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

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

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