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

IOT123 - I2C KY019 тоосго: 5 алхам
IOT123 - I2C KY019 тоосго: 5 алхам

Видео: IOT123 - I2C KY019 тоосго: 5 алхам

Видео: IOT123 - I2C KY019 тоосго: 5 алхам
Видео: Arduino keypad door lock with i2c LCD -Test1 2024, Арваннэгдүгээр
Anonim
IOT123 - I2C KY019 тоосго
IOT123 - I2C KY019 тоосго
IOT123 - I2C KY019 тоосго
IOT123 - I2C KY019 тоосго

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

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

Энэхүү I2C KY019 BRICK бол ЖҮЖИГЧДИЙН анхных бөгөөд нэг унших/бичих өмчтэй:

Шилжүүлэх (үнэн/худал)

Keyes төрлийн мэдрэгч тоосго нь витамин (нэмэлт бүрэлдэхүүн хэсгүүд) агуулсан, харьцангуй цэвэрхэн байдаг тул эхлээд хийсвэрлэх болно (би 37 AUD худалдаж авсан). Бусад самбар/хэлхээг I2C BRICKS -т танилцуулна.

ATTINY85-ийн хажуугийн нүхийг ашиглаагүй тул DIP8-ийг ПХБ-д гагнах үед пого пин програмистыг идэвхжүүлнэ. Дараагийн хийсвэрлэл, D1M WIFI BLOCK төвд холбогдсон жижиг цилиндрт BRICKS -ийг савлаж, утгыг 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 хадгалагдсан", "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 хослол дээр боолын хаяг өөр байгаа эсэхийг шалгаарай, өөрөөр хэлбэл MCU/зангилаан дээр ганцхан релей тоглогч байхад л бүх реле тоглогчид ижил хаягтай байж болно.

Алхам 3: Хэлхээ угсрах

Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
Цахилгаан хэлхээг угсрах
  1. Урд талд ATTINY85 (1), 3P 90deg эрэгтэй толгой (2) (3) хэсгүүдийг оруулж, ар талд нь гагнах хэрэгтэй.
  2. Ар талд нь шар утсыг YELLOW1 -ээс YELLOW2 хүртэл хайчилж, гагнана.
  3. Ар талд нь BLUE1 -ээс BLUE2 хүртэлх цэнхэр утсыг хайчилж, гагнана.
  4. Ар талд GREEN1 -ээс GREEN2 хүртэлх ногоон утсыг хайчилж, гагнана.
  5. Ар талд нь BLACK1 -ээс BLACK2 хүртэлх хар утсыг хайчилж, гагнана.
  6. Ар талд нь BLACK3 -аас BLACK4 хүртэлх хар утсыг хайчилж, гагнана.
  7. Ар талд нь улаан утсыг RED1 -ээс RED2 хүртэл хайчилж, гагнана.
  8. Ар талд RED3 -аас RED4 хүртэлх улаан утсыг хайчилж, гагнана.

Одоо релеийг зүүгээрээ ПХБ эсвэл утсаар холбож, зүү гэрээнд заасан цэгүүдэд холбож болно.

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

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

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

Бид өмнө нь 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 консолыг нээнэ үү. 9600 Baud -ийг сонгоно уу (НҮБ -ыг дахин эхлүүлж, шаардлагатай бол консолыг дахин нээнэ үү).
  4. Боолын хаягийг консол болгон хэвлэх болно.
  5. Хэзээ, илгээх хайрцагт 2 1 оруулна уу (тэгвэл 12 2 1), реле асна.
  6. Хэзээ, илгээх хайрцагт 2 0 (12 12 0) гэж оруулаад реле унтарна.

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 -г үзэх

Алхам 5: Дараагийн алхамууд

Дараагийн алхмууд
Дараагийн алхмууд
Дараагийн алхмууд
Дараагийн алхмууд
Дараагийн алхмууд
Дараагийн алхмууд
Дараагийн алхмууд
Дараагийн алхмууд

Энэхүү тоосгоныг ашигладаг ASSIMILATE ACTOR: KY019 нь ATTINY85-д аль хэдийн суулгасан мета өгөгдлөөр Crouton-ийн автомат тохиргоог хийсэн болно. Crouton руу илгээсэн JSON пакетыг ICOS10 -ийн хамгийн сүүлийн үеийн програм хангамжаар дамжуулан илгээдэг. Хэрэв та одоохондоо хэтэрхий их бүтэцтэй бол энгийн ESP8266 дээр үзэл баримтлалын нотолгоо хийж болно.

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

Хэд хэдэн схемийг нэмж оруулсан боловч таны хүсч буй зүйлээс хамаарч доош гүйдлийн хэлхээг холбох янз бүрийн арга байдаг тул би үүнийг танд үлдээх болно:)

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