Агуулгын хүснэгт:
- Алхам 1: Материал ба багаж хэрэгсэл
- Алхам 2: ATTINY85 -ийг бэлтгэ
- Алхам 3: Хэлхээ угсрах
- Алхам 4: Туршилт
- Алхам 5: Дараагийн алхамууд
Видео: IOT123 - I2C KY019 тоосго: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
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: Материал ба багаж хэрэгсэл
Материал ба эх үүсвэрийн бүрэн жагсаалт байдаг.
- 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 хослол дээр боолын хаяг өөр байгаа эсэхийг шалгаарай, өөрөөр хэлбэл MCU/зангилаан дээр ганцхан релей тоглогч байхад л бүх реле тоглогчид ижил хаягтай байж болно.
Алхам 3: Хэлхээ угсрах
- Урд талд ATTINY85 (1), 3P 90deg эрэгтэй толгой (2) (3) хэсгүүдийг оруулж, ар талд нь гагнах хэрэгтэй.
- Ар талд нь шар утсыг YELLOW1 -ээс YELLOW2 хүртэл хайчилж, гагнана.
- Ар талд нь BLUE1 -ээс BLUE2 хүртэлх цэнхэр утсыг хайчилж, гагнана.
- Ар талд GREEN1 -ээс GREEN2 хүртэлх ногоон утсыг хайчилж, гагнана.
- Ар талд нь BLACK1 -ээс BLACK2 хүртэлх хар утсыг хайчилж, гагнана.
- Ар талд нь BLACK3 -аас BLACK4 хүртэлх хар утсыг хайчилж, гагнана.
- Ар талд нь улаан утсыг RED1 -ээс RED2 хүртэл хайчилж, гагнана.
- Ар талд RED3 -аас RED4 хүртэлх улаан утсыг хайчилж, гагнана.
Одоо релеийг зүүгээрээ ПХБ эсвэл утсаар холбож, зүү гэрээнд заасан цэгүүдэд холбож болно.
Алхам 4: Туршилт
Эдгээр хэд хэдэн тоосго нь олон зангилаа (MCUs - ESP8266 эсвэл ATTINY84) дээр байх төлөвтэй байна. Энэ бол нэгжийн туршилт юм: I2C командыг UNO -аас ATTINY руу илгээдэг бөгөөд энэ нь релейг нээж, хаадаг.
Бид өмнө нь Arduino -д зориулан I2C SHIELD барьсан.
Хэрэв та үүнийг талхаар хийхийг хүсвэл:
- UNO дээрх 5.0V -ийг BRICK дээрх VCC холбоно уу.
- UNO дээрх GND -ийг BRICK дээр GND -тэй холбоно уу.
- UNO дээрх A5 -ийг BRICK дээрх SCL руу холбоно уу.
- UNO дээрх A4 -ийг BRICK дээрх SDA -тай холбоно уу.
- SDA-аас VCC руу 4K7 татах эсэргүүцлийг холбоно уу.
- SCL-ээс VCC руу 4K7 татах эсэргүүцлийг холбоно уу.
Тестийг ажиллуулж байна
- НҮБ -аа USB төхөөрөмжөөрөө Dev компьютерт холбоно уу.
- НҮБ -д код байршуулна уу.
- Arduino консолыг нээнэ үү. 9600 Baud -ийг сонгоно уу (НҮБ -ыг дахин эхлүүлж, шаардлагатай бол консолыг дахин нээнэ үү).
- Боолын хаягийг консол болгон хэвлэх болно.
- Хэзээ, илгээх хайрцагт 2 1 оруулна уу (тэгвэл 12 2 1), реле асна.
- Хэзээ, илгээх хайрцагт 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 руу шинэ боолын хаягийг хадгалах функцтэй.
Хэд хэдэн схемийг нэмж оруулсан боловч таны хүсч буй зүйлээс хамаарч доош гүйдлийн хэлхээг холбох янз бүрийн арга байдаг тул би үүнийг танд үлдээх болно:)
Зөвлөмж болгож буй:
Тоосго солих товчийг дарж Makey Makey: 4 алхам (зурагтай)
Тоосго солих товчийг дарж Makey Makey -ийг дарна уу: Энэхүү 3D хэвлэсэн унтраалга нь хэрэглэгч Makey Makey -ийг " хурууны слайд " болгох боломжийг олгоно. " дарна уу " Тоглоом дээр эсвэл презентацийг гүйлгэхийн тулд баруун/зүүн сумтай байж болно. Баруун болон зүүн терминалын бэхэлгээг нэмж оруулав
Гар утасны батерейны тоосго: 6 алхам
Гар утасны батерейны тоосго: Энэ бол жижиг самбар дээр гагнах ажлыг үргэлжлүүлэн хийх боломжийг олгодог сайхан амралтын өдрийн сайхан төсөл юм. Энэ нь DIY төслүүдэд хамрагдах хүсэлтэй хүмүүст зориулсан маш сайн эхлэгч болохын тулд эд ангиудыг авахад хямд бөгөөд хялбар байдаг
IOT123 - LIR2032 батерейны тоосго: 4 алхам
IOT123 - LIR2032 BATTERY BRICK: IOT123 тоосго нь DIY модульчлагдсан төхөөрөмж бөгөөд бусад IOT123 тоосгоны хамт нухаж, зангилаа эсвэл өмсөж зүүх боломжтой. Эдгээр нь нүхээр хоорондоо холбогдсон инчийн дөрвөлжин, хоёр талт протобор дээр суурилсан болно
IOT123 - 3.3V ХҮЧНИЙ Тоосго: 4 алхам
IOT123 - 3.3V ХҮЧНИЙ ТӨВРӨГ: IOT123 Тоосго нь бусад модульчлагдсан модулиар хийгдсэн бөгөөд зангилаа эсвэл өмсдөг хэсэгт функц нэмэх зорилгоор бусад IOT123 тоосгоны хамт нухаж болно. Эдгээр нь нүхээр хоорондоо холбогдсон инчийн дөрвөлжин, хоёр талт протобор дээр суурилсан болно
IOT123 - 5PIN ATTINY85 NRF24L01 тоосго: 4 алхам
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Энэхүү тохиргоо нь ихэвчлэн академик эсвэл програм хангамж/цахилгаан хангамжийг турших суурь юм. PB5 -ийг RESET гэж идэвхгүй болгосон ч гэсэн энэ нь analogRead ашиглан утгыг зөв уншдаггүй: мэдрэгчийн уншилтын үндсэн тохиолдол юм. ATTINY84 -ийн тохиргоог үзэх болно