Агуулгын хүснэгт:

IOT123 - I2C Зүрхний цохилтын тоосго: 6 алхам
IOT123 - I2C Зүрхний цохилтын тоосго: 6 алхам

Видео: IOT123 - I2C Зүрхний цохилтын тоосго: 6 алхам

Видео: IOT123 - I2C Зүрхний цохилтын тоосго: 6 алхам
Видео: IOT123 - ICOS10: STRUCTURE 2024, Оны зургадугаар сарын
Anonim
IOT123 - I2C Зүрхний цохилтын тоосго
IOT123 - I2C Зүрхний цохилтын тоосго
IOT123 - I2C Зүрхний цохилтын тоосго
IOT123 - I2C Зүрхний цохилтын тоосго
IOT123 - I2C Зүрхний цохилтын тоосго
IOT123 - I2C Зүрхний цохилтын тоосго

IOT123 BRICKS бол зангилаа эсвэл өмсөж зүүх боломжтой функцийг нэмэгдүүлэхийн тулд бусад IOT123 тоосгоны хамт нухаж хийх боломжтой DIY модульчлагдсан нэгж юм. Эдгээр нь нүхээр хоорондоо холбогдсон инчийн дөрвөлжин, хоёр талт протобор дээр суурилдаг.

Эдгээр тоосгоны хэд хэдэн сайт дээр олон зангилаа (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 төвд холбогдсон жижиг цилиндрт BRICKS -ийг савлаж, утгыг MQTT сервер рүү шахах ажлыг боловсруулж байна.

Алхам 1: Материал ба багаж хэрэгсэл

Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл

Материал ба эх үүсвэрийн бүрэн жагсаалт байдаг.

  1. Цаасан ПХБ (7 х 7 цооног)
  2. LED (улаан, ногоон, цэнхэр)
  3. Резистор (3K 1K)
  4. ATTINY85 20PU (1)
  5. 1 "Хоёр талт протобоард (1)
  6. Эрэгтэй толгой 90º (3P, 3P)
  7. Эрэгтэй толгой (2P, 2P)
  8. Холбогч шунт (1)
  9. Холбох утас (~ 7)
  10. Гагнуур ба төмөр (1)

Алхам 2: ATTINY85 -ийг бэлтгэ

ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ
ATTINY85 -ийг бэлтгэ

ТАЙЛБАР: Хэрэв та Crouton интеграцчлахыг хүсч байвал эндээс номын санг ашиглаж, суулгасан "attiny_heartbeat" жишээг ашиглана уу.

Самбарын менежерээс AttinyCore хэрэгтэй байна. Ачаалагч "EEPROM хадгалагдсан", "8mHZ Дотоод" шарна уу (бүх тохиргоог дээр харуулав).

Кодын санг эндээс олж болно.

Номын сангийн 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. Дээд талд, цэнхэр өнгийн LED -ийг RED1 (+) ба BLACK1 (G) -д оруулж, доод талд нь гагнуур хийнэ.
  2. Доод талд нь RED1 -ээс хар тугалгыг нугалж, SILVER8 дээрх зэс дэвсгэр дээр хүрч, засаарай.
  3. Доод талд, гагнуурын дээрх BLACK1 -ээс хар тугалга хайчилж ав.
  4. Дээд талд нь ногоон LED -ийг 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. Ар талд нь шар утсыг YELLOW1 -ээс YELLOW2 хүртэл хайчилж, гагнана.
  3. Ар талд нь ORANGE1 -ээс ORANGE2 хүртэлх улбар шар утсыг хайчилж, гагнана.
  4. Ар талд нь BLUE1 -ээс BLUE2 хүртэлх цэнхэр утсыг хайчилж, гагнана.
  5. Ар талд GREEN1 -ээс GREEN2 хүртэлх ногоон утсыг хайчилж, гагнана.
  6. Ар талд нь WHITE1 -ээс WHITE2 хүртэлх цагаан утсыг хайчилж, гагнана.
  7. Ар талд нь BLACK1 -ээс BLACK2 хүртэлх хар утсыг хайчилж, гагнана.
  8. Ар талд нь BLACK3 -аас BLACK4 хүртэлх хар утсыг хайчилж, гагнана.
  9. Ар талд нь улаан утсыг RED1 -ээс RED2 хүртэл хайчилж, гагнана.
  10. Ар талд нь RED3 -аас RED4 хүртэлх нүцгэн утсыг хайчилж, гагнана.
  11. Ар талд SILVER1 -ээс SILVER2 хүртэлх нүцгэн утсыг хайчилж, гагнана.
  12. 5V эсвэл 3V3 шугам дээр холбогчийг нэмнэ үү.

Хэрэв дээрх үзүүлэлтүүдийг ашиглаж байгаа бол (холболтын диаграмыг үзнэ үү):

  1. Ар талд цагаан утсыг PB1 болгон гагнана.
  2. Ар талд нь шар утсыг PB3 болгон гагнана.
  3. Ар талд нь улбар шар утсыг PB4 болгон гагнана.
  4. Ар талд нь хар утсыг GND руу гагнана.

Алхам 5: Туршилт

Туршилт
Туршилт
Туршилт
Туршилт
Туршилт
Туршилт
Туршилт
Туршилт

Эдгээр хэд хэдэн тоосго нь олон зангилаа (MCUs - ESP8266 эсвэл ATTINY84) дээр байх төлөвтэй байна. Энэ нь нэгжийн туршилт юм: I2C командыг UNO -аас ATTINY руу илгээдэг бөгөөд энэ нь хүлээн авах LED -ийг сэлгэнэ. ATTINY ALIVE LED асаалттай хэвээр байна.

Бид өмнө нь Arduino -д зориулан I2C SHIELD барьсан.

Хэрэв та үүнийг талхаар хийхийг хүсвэл:

  1. UNO дээрх 5.0V -ийг BRICK дээрх VCC холбоно уу.
  2. UNO дээрх GND -ийг BRICK дээр GND -тэй холбоно уу.
  3. UNO дээрх A5 -ийг BRICK дээрх SCL руу холбоно уу.
  4. UNO дээрх A4 -ийг BRICK дээрх SDA -тай холбоно уу.
  5. SDA-аас VCC руу 4K7 татах эсэргүүцлийг холбоно уу.
  6. SCL-ээс VCC руу 4K7 татах эсэргүүцлийг холбоно уу.

Тестийг ажиллуулж байна

  1. НҮБ -аа USB төхөөрөмжөөрөө Dev компьютерт холбоно уу.
  2. НҮБ -д код байршуулна уу.
  3. Arduino консолыг нээнэ үү.
  4. 9600 baud сонгоно уу (НҮБ -ыг дахин эхлүүлж, шаардлагатай бол консолыг дахин нээнэ үү).
  5. Боолын хаягийг консол дээр хэвлэх болно.
  6. Хэзээ, илгээх хайрцагт 2 1 оруулна уу (ингэснээр 16 2 1), хүлээн авах LED асна.
  7. Хэзээ, илгээх хайрцагт 2 0 (16 2 0) гэж оруулаад Хүлээн авах LED унтарна.

I2C BRICK НҮБ -ын мастераас гаргасан боолуудад зориулсан adhoc командууд

#оруулах
const байт _num_chars = 32;
char _ хүлээн авсан_чар [_нум_чарс]; // хүлээн авсан өгөгдлийг хадгалах массив
boolean _has_new_data = худал;
voidsetup () {
Цуваа эхлэх (9600);
Serial.println ();
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITOR ASSIMILATE");
Serial.println ("консолын цонхонд шинэ мөрийг сонгосон эсэхийг баталгаажуулах");
Serial.println ();
Serial.println ("ADDRESS 1 METADATA RECEIPT N/A (M2M -ийн хувьд) хүлээн зөвшөөрч байна");
Serial.println ("ADDRESS 2 ACTOR COMMAND");
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 ();
хэрэв (rc! = end_marker) {
_ хүлээн авсан_чарс [ndx] = rc;
ndx ++;
хэрэв (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
өөр {
_ хүлээн авсан_чарс [ndx] = '\ 0'; // мөрийг зогсоох
ndx = 0;
_has_new_data = үнэн;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String хүлээн авсан_ мөр = String (хүлээн авсан_чарс);
хэрэв (_has_new_data == үнэн) {
int idx1 = хүлээн авсан_стринг.indexOf ('');
String хаяг = хүлээн авсан_мөр.субстринг (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("ХҮРГҮЙ ХАЯГЫН ОРОЛЦОО:");
Serial.println (хаяг);
буцах;
}
int idx2 = хүлээн авсан_стринг.indexOf ('', idx1+1);
String код;
хэрэв (idx2 == -1) {
код = хүлээн авсан_мөр.субстринг (idx1+1);
} өөр {
код = хүлээн авсан_мөр.субстринг (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 параметр;
if (has_parameter) {
параметр = хүлээн авсан_мөр.субстринг (idx2 + 1, idx2 + 17); // хамгийн ихдээ 16 тэмдэгт
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = худал;
буцах;
}
} өөр {
хэрэв (code_int> 1) {
Serial.println ("PARAMETER REUUIRED!");
_has_new_data = худал;
буцах;
}
}
Serial.println ();
Serial.print ("оролтын ориг =");
Serial.println (хүлээн авсан_ мөр);
Serial.print ("хаяг =");
Serial.println (хаяг);
Serial.print ("код =");
Serial.println (код);
Serial.print ("параметр =");
Serial.println (параметр);
// I2C -ээр илгээх
Wire.beginTransmission (address_int);
Wire.write (code_int);
if (has_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 автомат тохируулгатай байдаг. Crouton руу илгээсэн JSON пакетыг ICOS10 -ийн хамгийн сүүлийн үеийн програм хангамжаар дамжуулан илгээдэг. Хэрэв та одоохондоо хэтэрхий их бүтэцтэй бол энгийн ESP8266 дээр үзэл баримтлалын нотолгоо хийж болно.

Туршилтанд ашигласан UNO ноорог нь таны зорилтот I2C автобусанд мөргөлдөөн гарсан тохиолдолд ATTINY85 дээр EEPROM руу шинэ боолын хаягийг хадгалах функцтэй.

Зөвлөмж болгож буй: