فهرست مطالب:
- مرحله 1: مواد و ابزارها
- مرحله 2: ATTINY85 را آماده کنید
- مرحله 3: جمع آوری شاخص ها
- مرحله 4: مونتاژ مدار اصلی
- مرحله 5: آزمایش
- مرحله ششم: مراحل بعدی
تصویری: IOT123 - I2C HEARTBEAT BRICK: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
آجرهای IOT123 واحدهای ماژولار DIY هستند که می توانند با سایر آجرهای IOT123 ترکیب شوند تا عملکرد را به یک گره یا پوشیدنی اضافه کنند. آنها بر روی صفحه اصلی مربع دو ضلعی دو طرفه با سوراخ هایی به هم متصل شده اند.
انتظار می رود تعدادی از این آجرها روی چندین گره (Master MCUs - ESP8266 یا ATTINY84) در یک سایت قرار گیرند. MCU نیازی به دانش قبلی در مورد هدف سنسورها یا نیازهای نرم افزاری ندارد. این دستگاه گره های I2C را اسکن می کند و سپس از هر برده درخواست یک دامپ ویژگی (داده های حسگر) می کند. این آجرها 5.0V ، 3.3V و یک خط AUX دیگر را که قابل تنظیم است ، تامین می کند.
این I2C HEARTBEAT BRICK نشان می دهد که آیا برده ATTINY زنده است ، همچنین ترافیک I2C ، و دارای یک ویژگی است:
STATUS ("زنده")
PB1 (سفید) نشان دهنده سلامت ATTINY است.
PB3 (زرد) با درخواست های I2C از استاد تغییر می کند.
PB4 (نارنجی) با دریافت I2C از استاد تغییر می کند.
سوراخ های مجاور ATTINY85 بدون استفاده رها شده اند تا برنامه نویس pogo pin را در حالی که DIP8 به PCB لحیم می شود فعال کند. یک انتزاع دیگر ، بسته بندی آجرها در استوانه های کوچک که به هاب D1M WIFI BLOCK متصل می شوند و مقادیر را به سرور MQTT پمپ می کنند ، در حال توسعه است.
مرحله 1: مواد و ابزارها
لیست کامل مواد و منابع وجود دارد.
- PCB کاغذی (7 7 7 سوراخ)
- LEDS (قرمز ، سبز ، آبی)
- مقاومت (3 خاموش 1K)
- ATTINY85 20PU (1)
- صفحه اصلی 1 اینچی دو طرفه (1)
- سربرگ مرد 90º (3P ، 3P)
- سربرگ مرد (2P ، 2P)
- جامپر شنت (1)
- سیم اتصال (7 پوند)
- لحیم و آهن (1)
مرحله 2: ATTINY85 را آماده کنید
توجه: در صورت تمایل به ادغام Crouton ، لطفاً از کتابخانه اینجا استفاده کنید و از مثال نصب شده "attiny_heartbeat" استفاده کنید.
AttinyCore از مدیر هیئت مدیره مورد نیاز است. بوت لودر "EEPROM حفظ شده" ، "8mHZ داخلی" (همه پیکربندی در بالا نشان داده شده است) رایت کنید.
مخزن کد را می توانید در اینجا پیدا کنید.
فایل کتابخانه را می توانید در اینجا پیدا کنید.
دستورالعمل "وارد کردن کتابخانه 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 موجود دارید ، مطمئن شوید آدرس برده در ترکیب میزبان SENSOR/MCU متفاوت است. همه بازیگران رله می توانند آدرس یکسانی داشته باشند به شرطی که فقط یک بازیگر رله در MCU/node داشته باشید.
مرحله 3: جمع آوری شاخص ها
شاخص ها به طور کامل قابل تنظیم هستند. این سیگنال های رویداد از مدار اصلی است که به عنوان ضربان قلب دیده می شوند. برای این ساخت ما از نشانگرهای LED استفاده می کنیم. بیلد شما می تواند از رله ها استفاده کند (بله VCC خراب شده است) یا یک نشانگر بصری/سیگنال دیگر. مقادیر مقاومت به ترجیح شخصی بستگی به میزان روشنایی آنها دارد.
- در بالا ، یک LED آبی را در RED1 (+) و BLACK1 (G) قرار دهید و در پایین لحیم کنید.
- در قسمت پایین ، سرب را از RED1 خم کنید تا پد مسی روی SILVER8 را لمس کرده و برش دهید.
- در قسمت پایین ، سرب را از BLACK1 بالای لحیم کاری برش دهید.
- در بالا ، یک LED سبز را در RED2 (+) و BLACK2 (G) قرار دهید و در پایین لحیم کنید.
- در پایین ، سرب را از RED2 خم کنید تا پد مسی روی SILVER9 را لمس کرده و برش دهید.
- در قسمت پایین ، سرب را از BLACK2 بالای لحیم کاری برش دهید.
- در بالا ، یک LED قرمز را در RED3 (+) و BLACK3 (G) قرار دهید و در پایین لحیم کنید.
- در قسمت پایین ، سرب را از RED3 خم کنید تا پد مسی روی SILVER10 را لمس کرده و برش دهید.
- در قسمت پایین ، سرب را از BLACK3 بالای لحیم کاری برش دهید.
- در بالا ، یک مقاومت 1K را در سوراخ های SILVER1 و SILVER4 وارد کنید.
- در قسمت پایین ، سربی را از SILVER1 روی BLACK1 بکشید ، برش دهید و لحیم کنید.
- در بالا ، یک مقاومت 1K را در سوراخ های SILVER2 و SILVER4 وارد کنید.
- در قسمت پایین ، سرب را از SILVER2 روی BLACK2 بکشید ، برش دهید و لحیم کنید.
- در بالا ، یک مقاومت 1K را در سوراخ های SILVER3 و SILVER4 وارد کنید.
- در قسمت پایین ، سرب را از SILVER3 روی BLACK3 بکشید ، برش دهید و لحیم کنید.
- در قسمت پایین ، سیم ها را روی SILVER4 لحیم کرده و در حدود 5 میلی متر گسترش دهید.
- در قسمت پایین ، یک سیم سیاه را روی SILVER4 لحیم کنید.
- در قسمت پایین ، یک سیم سفید را به SILVER5 بچسبانید و از تداوم هدایت از RED1 اطمینان حاصل کنید.
- در قسمت پایین ، یک سیم زرد را به SILVER6 بچسبانید و از تداوم هدایت از RED2 اطمینان حاصل کنید.
- در قسمت پایین ، یک سیم نارنجی را به SILVER7 بچسبانید و از تداوم هدایت از RED3 اطمینان حاصل کنید.
مرحله 4: مونتاژ مدار اصلی
مونتاژ:
- در قسمت جلو ، اجزای ATTINY85 (1) ، سربرگ های مردانه 3P 90deg (2) (3) ، سربرگ های مردانه 3P (4) (5) را وارد کرده و در قسمت پشت آن را لحیم کنید.
- در قسمت عقب ، یک سیم زرد از YELLOW1 تا YELLOW2 و لحیم کنید.
- در قسمت عقب ، یک سیم نارنجی از ORANGE1 تا ORANGE2 و لحیم کنید.
- در پشت ، یک سیم آبی را از BLUE1 تا BLUE2 و لحیم کنید.
- در قسمت عقب ، یک سیم سبز از GREEN1 تا GREEN2 و لحیم کنید.
- در قسمت عقب ، یک سیم سفید از WHITE1 تا WHITE2 و لحیم کنید.
- در قسمت عقب ، یک سیم سیاه از BLACK1 تا BLACK2 و لحیم کنید.
- در قسمت عقب ، یک سیم سیاه از BLACK3 تا BLACK4 و لحیم کنید.
- در قسمت عقب ، یک سیم قرمز از RED1 تا RED2 و لحیم کنید.
- در قسمت عقب ، یک سیم برهنه از RED3 تا RED4 و لحیم کنید.
- در پشت ، یک سیم برهنه را از SILVER1 تا SILVER2 و لحیم کنید.
- یک بلوز در خط 5V یا 3V3 اضافه کنید.
در صورت استفاده از شاخص های بالا (به نمودار pinout مراجعه کنید):
- در قسمت عقب ، سیم سفید را به PB1 لحیم کنید.
- در قسمت پشت ، سیم زرد را به PB3 لحیم کنید.
- در قسمت پشت ، سیم نارنجی را به PB4 لحیم کنید.
- در قسمت پشت ، سیم سیاه را به GND لحیم کنید.
مرحله 5: آزمایش
انتظار می رود تعدادی از این آجرها روی چندین گره (MCUs - ESP8266 یا ATTINY84) در یک محیط باشند. این یک آزمایش واحد است: دستورات I2C را از UNO به ATTINY ارسال می کند که LED دریافت را تغییر می دهد. LED ATTINY ALIVE روشن می ماند.
ما قبلاً یک I2C SHIELD برای آردوینو ساخته ایم.
اگر می خواهید به جای آن نان بورد کنید:
- 5.0V را در UNO به VCC در BRICK وصل کنید.
- GND را در UNO به GND در BRICK وصل کنید.
- A5 را در UNO به SCL در BRICK وصل کنید.
- A4 را در UNO به SDA در BRICK وصل کنید.
- یک مقاومت کششی 4K7 را از SDA به VCC وصل کنید.
- یک مقاومت کششی 4K7 را از SCL به VCC وصل کنید.
در حال اجرای آزمون
- UNO خود را با USB به رایانه Dev خود متصل کنید.
- کد را در UNO بارگذاری کنید.
- کنسول آردوینو را باز کنید.
- 9600 baud را انتخاب کنید (UNO را راه اندازی مجدد کنید و در صورت لزوم کنسول را باز کنید).
- آدرس برده در کنسول چاپ می شود.
- وقتی ، کادر ارسال 2 1 (بنابراین 16 2 1) را وارد کنید ، و LED دریافت روشن می شود.
- وقتی ، کادر ارسال 2 0 (بنابراین 16 2 0) را وارد کنید ، و LED دریافت خاموش می شود.
دستورات adhoc I2C BRICK برای برده ها از UNO master
#عبارتند از |
const byte _num_chars = 32؛ |
char _rechaived_chars [_num_chars]؛ // آرایه ای برای ذخیره داده های دریافتی |
boolean _has_new_data = false؛ |
voidsetup () { |
Serial.begin (9600)؛ |
Serial.println ()؛ |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR") ؛ |
Serial.println ("اطمینان از انتخاب خط جدید در پنجره کنسول") ؛ |
Serial.println ()؛ |
Serial.println ("ADDRESS 1 CONFIRM METADATA RECEIPT N/A (FOR 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.begin انتقال (آدرس) ؛ |
const byte error = Wire.endTransmission ()؛ |
if (خطا == 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 ++ ؛ |
if (ndx> = _num_chars) { |
ndx = _num_chars - 1؛ |
} |
} |
دیگری { |
_received_chars [ndx] = '\ 0'؛ // خاتمه رشته |
ndx = 0 ؛ |
_has_new_data = true؛ |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]؛ |
const رشته دریافت شده_سترینگ = رشته (_received_chars)؛ |
if (_has_new_data == true) { |
int idx1 = دریافت_string.indexOf ('')؛ |
آدرس رشته = rece_string.substring (0 ، idx1) ؛ |
int address_int = address.toInt ()؛ |
if (address_int <8 || address_int> 127) { |
Serial.println ("ورودی آدرس نامعتبر:") ؛ |
Serial.println (آدرس) ؛ |
برگشت؛ |
} |
int idx2 = دریافت_string.indexOf (''، idx1+1)؛ |
کد رشته ؛ |
if (idx2 == -1) { |
کد = rece_string.substring (idx1+1) ؛ |
} دیگری { |
کد = rece_string.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؛ |
پارامتر رشته ؛ |
if (has_parameter) { |
پارامتر = rece_string.substring (idx2 + 1 ، idx2 + 17) ؛ // حداکثر 16 حرف |
if (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1")؛ |
_has_new_data = false؛ |
برگشت؛ |
} |
} دیگری { |
if (code_int> 1) { |
Serial.println ("پارامتر مورد نیاز است!")؛ |
_has_new_data = false؛ |
برگشت؛ |
} |
} |
Serial.println ()؛ |
Serial.print ("input orig =")؛ |
Serial.println (رشته_ دریافتی) ؛ |
Serial.print ("آدرس =")؛ |
Serial.println (آدرس) ؛ |
Serial.print ("code =")؛ |
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 ("SIA VIA I2C!") ؛ |
Serial.println ()؛ |
Serial.println ("")؛ |
_has_new_data = false؛ |
} |
} |
مشاهده rawuno_i2c_command_input.ino میزبان با ❤ توسط GitHub
مرحله ششم: مراحل بعدی
پیگیری ASSIMILATE ACTOR: HEARTBEAT که از این آجر استفاده می کند دارای پیکربندی خودکار Crouton از طریق فراداده هایی است که قبلاً در ATTINY85 در اینجا نصب شده است. بسته JSON ارسال شده به Crouton از طریق آخرین سیستم عامل ICOS10 ارسال می شود. اگر ساخت فعلی بسیار زیاد است ، می توانید یک EP8266 معمولی را با یک Proof-of-concept انجام دهید.
طرح UNO مورد استفاده در آزمایش عملکردی برای ذخیره آدرس برده جدید در EEPROM در ATTINY85 دارد ، درصورتی که در گذرگاه I2C موردنظر خود برخورد داشته باشید.
توصیه شده:
روی Brick Switch for Makey Makey کلیک کنید: 4 مرحله (همراه با تصاویر)
روی Brick Switch for Makey Makey کلیک کنید: این سوئیچ چاپ سه بعدی به کاربر اجازه می دهد Makey Makey را به & quot؛ اسلاید انگشت & quot؛ برای & quot؛ کلیک کنید & quot؛ در بازی یا می تواند فلش راست/چپ برای حرکت در ارائه ها باشد. افزودن پایه های ترمینال راست و چپ برای
500 LED-Pixel RGB-Brick: 9 مرحله (همراه با تصاویر)
500 LED-Pixel RGB-Brick: چندی پیش من یک LED-Coffetable 10x10 با برخی از این LED های WS2812 می سازم ، اما حتی اگر امکان بازی قدیمی بازی Snake با تلفن هوشمند متصل به آن وجود داشته باشد ، من چیز بیشتری می خواهم خاص بنابراین تصمیم گرفتم چند راهنمای دیگر برای آن بگذارم ، arra
IOT123 - D1M BLOCK - 2xAMUX مونتاژ: 7 مرحله (همراه با تصاویر)
IOT123 - D1M BLOCK - 2xAMUX مونتاژ: D1M BLOCKS موارد لمسی ، برچسب ها ، راهنماهای قطبی و شکست ها را برای WEMOS D1 Mini SOC/Shields/Clones محبوب اضافه می کند. یکی از مشکلات تراشه ESP8266 این است که تنها یک پین IO آنالوگ در دسترس است. این دستورالعمل نحوه مونتاژ 2xA را نشان می دهد
IOT123 - D1M BLOCK - RFTXRX مونتاژ: 8 مرحله
IOT123 - D1M BLOCK - RFTXRX مونتاژ: D1M BLOCKS موارد لمسی ، برچسب ها ، راهنماهای قطبی و شکست ها را برای Wemos D1 Mini SOC/Shields/Clones محبوب اضافه می کند. فرستنده/گیرنده RF به ESP8266 اجازه می دهد تا به اتوماسیون خانگی/صنعتی موجود دسترسی پیدا کند. این روکش برای 433
IOT123 - ASSIMILATE ACTOR: HEARTBEAT: 4 Step
IOT123 - ASSIMILATE ACTOR: HEARTBEAT: سلامت ترافیک ATTINY ، I2C و MQTT را نشان می دهد. این ساخت بر اساس آجر I2C HEARTBEAT ساخته شده است. ASSIMILATE ACTORS/SENSORS بازیگران/حسگرهای محیطی هستند که دارای یک لایه انتزاعی سخت افزاری و نرم افزاری هستند و این امکان را برای