قائمة بما نحتاج إليه:
- Digispark Attiny85
- شاشة Oled 128x64 I2C
- مستشعر درجة حرارة ds18b20
- المقاوم 4.7 كوم 0.25 وات
- مبرمج ISP أو اردوينو مجلس البرامج الثابتة Digispark Attiny85
- قرص بلاستيكي مع مشبك ورق أو ورقة بلاستيكية رقيقة
- الأسلاك
- وصلات دوبونت 2.54 مم "انثى"
- ازرار 2 قطعة.
- لوحة دائرة صغيرة أو تقليم صغير
- لحام الحديد
- اللحيم ، الصنوبري
- مقص
- سكين كتابي
- مسدس غراء ساخن
- غراء ساخن
الخطوة 1 اختيار المكونات.
بصفتنا وحدة التحكم الرئيسية ، سنستخدم Digispark Attiny85. هناك عدة أنواع منها. نحتاج إلى لوحة مزودة بموصل USB صغير. البقية لن تتناسب مع علبة الساعة.
للعرض ، نحتاج إلى شاشة Oled 128x64 I2C. تأتي بألوان مختلفة: الأبيض والأزرق والأزرق والأصفر. ألفت انتباهكم! يعني مصطلح "لونين" في وصف أو عنوان هذه الشاشة شريطًا من لون واحد في أعلى الشاشة واللون الثاني في الشاشة المتبقية بالكامل ، وليس القدرة على عرض لونين مع هذه الشاشة! تعرض جميع الشاشات من هذا النوع لونًا واحدًا فقط ، أو في الأعلى شريط بلون واحد في الأسفل - آخر. مثل ، على سبيل المثال ، الذي سأستخدمه. الشريط أعلاه أصفر ، وبقية الشاشة زرقاء. يمكنك اختيار أي لون تريده.
نحتاج أيضًا إلى مستشعر درجة الحرارة المدمج DS18B20. لم يتم اختياره عن طريق الصدفة. أولاً ، يتواصل DS18B20 مع وحدة التحكم الدقيقة عبر خط اتصال أحادي السلك باستخدام بروتوكول واجهة 1-Wire. في حالتنا ، هذا مهم ، لأن استنتاجات Attiny85 بدون جهاز استشعار قليلة. ثانيًا ، هذا المستشعر عبارة عن رقم ، أي أنه يأخذ جميع القياسات نفسها وينقل ببساطة بيانات درجة الحرارة دون إنفاق موارد الحوسبة في Attiny85.
أما بالنسبة للبقية ، أعتقد أنه لن تكون هناك أسئلة ، لذلك دعنا ننتقل إلى تصنيع القضية.
الخطوة 2 تجميع الإسكان.
ستكون علبة الساعة مصنوعة من البلاستيك الرقيق. كان لدي قرص بلاستيكي مع مشبك ورق على يدي. إنه قوي بما يكفي للاحتفاظ بشكله ، وفي نفس الوقت يمكن قطعه بمقص عادي وسكين مكتب. جاء بشكل مثالي.إذا لم يكن في متناول اليد ، يمكنك شراء جهاز لوحي من متجر الأدوات المكتبية أو العثور على البلاستيك المناسب لاستبدال الجهاز اللوحي. نضع علامات على البلاستيك وفقًا للمخطط:
قطع جميع الخطوط الصلبة. منقط - مقطوع قليلاً بسكين كتابي. الخطوط المنقطة هي خطوط مطوية. كما فهمت بالفعل ، هذا هو تخطيط المكعب المعتاد. بعد ذلك ، تحتاج إلى لحام الأسلاك على الشاشة ، فمن الأفضل أن تأخذ متعدد الألوان وتدون ما يؤدي إلى ما. الصق الشاشة على اللاصق المذاب بالحرارة في المنتصف ، بحيث يخرج الجانب الأمامي منه من الخلف. كما ترون ، لقد أغلقنا تعيينات دبوس الشاشة. لذلك ، كان من الضروري كتابتها. سلمت قليلا إلى السكين ، وبالتالي قطع الجزء السفلي من الجسم. لا حرج في ذلك ، يمكن لصق كل شيء. لكن من الأفضل عدم تكرار أخطائي.
يجب أن تكون النتيجة كما يلي:
في هذه الحالة جاهز. لا يزال بإمكانك قطع الغطاء الخلفي من نفس البلاستيك ، لكن هذا اختياري.
الخطوة 3 نحن اللحيم.
قضيتنا صغيرة ، وعلينا أن نحشر الكثير هناك. لذلك ، نأخذ قطعة من لوحة الدائرة لا يزيد حجمها عن 2.8 × 2.8 مم ولحام في زرين ، ومستشعر ds18b20 ، ومقاوم والعديد من جهات الاتصال. وفق المخطط التالي:
ليس من الضروري لحام الأسلاك مباشرة إلى Attiny ، نظرًا لأنه من الضروري فصل كل شيء عن البرامج الثابتة. يجب أن تكون النتيجة شيء من هذا القبيل:
الأزرار مطلوبة لضبط الوقت. يمكن الحصول على الطاقة من منفذ USB للكمبيوتر. الجمع بين الجمع والطرح ، على التوالي:
إذا كنت ترغب في الاستغناء عن الأسلاك ، فأنت بحاجة إلى العثور على بطارية ليثيوم أيون صغيرة. إليك واحد ، على سبيل المثال:
تناسب هذه البطارية داخل العلبة. من الضروري فقط تقديم استنتاجات لشحن البطارية.
الخطوة 4 إعداد المبرمج.
يمكن برمجة Digispark Attiny85 من خلال موصل USB الصغير الموجود على اللوحة ، باستخدام Arduino IDE كبيئة برمجة. ولكن في نفس الوقت ، يجب عليك التضحية بـ 2 كيلوبايت من الذاكرة من أجل برنامج bootloader. يحتوي Attiny 85 على إجمالي 8 كيلوبايت فلاش. لا يتناسب الرسم الخاص بي مع أداة تحميل التشغيل ، لذلك أحتاج إلى البرمجة من خلال مبرمج ISP. ليس لدي مثل هذا المبرمج ، ولكن هناك لوحة Arduino Uno ، والتي سأستخدمها كمبرمج. إذا كان لديك مبرمج ISB ، يمكنك تخطي هذا العنصر. افتح Arduino IDE واملأ رسمنا المسمى ArduinoISP في Arduino Uno. يمكنك العثور عليه مثل هذا الملف - أمثلة - Arduino ISP. يبدأ الرسم بتلميح حول كيفية توصيل Arduino بجهاز التحكم القابل للبرمجة. بدلاً من Arduino Uno ، يمكن أن يكون هناك أي لوحة Arduino أخرى.
// 10: إعادة ضبط الرقيق
// 11: وزارة الشؤون الاجتماعية
// 12: MISO
// 13: SCK
مخطط اتصال Digispark Attiny85:
اردوينو UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
الخطوة 5 تجهيز بيئة البرمجة.
لتحرير البرامج الثابتة وملء الرسم في Attiny 85 ، تحتاج إلى إعداد ليس فقط المبرمج ، ولكن أيضًا بيئة البرمجة نفسها. للقيام بذلك ، قم بتثبيت Arduino IDE من موقع Arduino.cc الرسمي ، وقم أيضًا بتثبيت الوظيفة الإضافية Attiny للمتحكمات الدقيقة من خلال Boards Manager.
قم بتشغيل Arduino IDE ، ثم File - Settings - في حقل عناوين URL الإضافية لـ Boards Manager ، والصق الرابط:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
انقر فوق "موافق" (يمكنك إدخال عدة ارتباطات مفصولة بفاصلة في هذا الحقل). الأدوات التالية - لوحة - مدير المجالس في حقل المرشح ، أدخل Attiny وانقر على "attiny by David A. Mellis". انقر فوق تثبيت وانتظر حتى ينتهي التنزيل. الآن في قائمة الأدوات ، حدد:
المجلس - Attiny 25/45/85
المعالج - Attiny 85
الساعة - داخلية 16
وحدد المنفذ التسلسلي الذي يتصل به مبرمج ISP أو Arduino كمبرمج.
لقد جربت العديد من المكتبات المختلفة للعمل مع الشاشة. في رأيي الأكثر ملاءمة والعمل على Attiny85: TinyOzOLED.
يحتاج مستشعر درجة الحرارة إلى مكتبة OneWire.
قم بتثبيت هاتين المكتبتين. يمكنك تثبيت مكتبات الطرف الثالث مباشرة في بيئة البرمجة. بدون تفريغ الأرشيفات التي تم تنزيلها ، في Arduino IDE ، حدد قائمة Sketch - Connect Library. في أعلى القائمة المنسدلة ، حدد عنصر مكتبة إضافة .Zip. في مربع الحوار الذي يظهر ، حدد المكتبة التي تريد إضافتها. افتح قائمة Sketch - Connect Library مرة أخرى. سترى مكتبة جديدة في أسفل القائمة المنسدلة. الآن يمكن استخدام المكتبة في البرامج. لا تنس إعادة تشغيل Arduino IDE بعد كل هذا.إذا لم يساعد ذلك ، فقط قم بفك ضغط الأرشيفات في مجلد "المكتبات" الموجود في المجلد مع تثبيت Arduino IDE.
الخطوة 6 قم بتحرير الرسم وملءه.
يعمل مستشعر درجة الحرارة وفقًا لبروتوكول One Wire وله عنوان فريد لكل جهاز - رمز 64 بت. موارد الاهتمام لا تكفي للبحث عن هذا الرمز في كل مرة. لذلك ، يجب عليك أولاً توصيل المستشعر بأي لوحة Arduino ، وملء الرسم الموجود في ملف - أمثلة - درجة حرارة دالاس - قائمة OneWireSearch. بعد ذلك ، قم بتشغيل الأدوات - مراقب المنفذ. يجب أن يجد Arduino مستشعرنا ، ويكتب عنوانه وقراءات درجة الحرارة الحالية. نقوم بنسخ أو كتابة عنوان جهاز الاستشعار الخاص بنا. افتح الرسم Attiny85_Oled_SPI_Term_2 ، ابحث عن السطر:
بايت addr [8] = {0x28، 0xFF، 0x75، 0x4E، 0x87، 0x16، 0x5، 0x63} ؛
نكتب عنوان المستشعر الخاص بك بين الأقواس ، ونستبدل عنوان المستشعر الخاص بي. بعد ذلك ، قم بتوصيل Attiny بالمبرمج أو Arduino كمبرمج (هذا موضح في الخطوة 4) واملأ الرسم التخطيطي. يبقى لفصل المبرمج وتوصيل كل شيء وفقًا للمخطط في 3 خطوات. يتحول التجميع إلى شيء من هذا القبيل:
الشاشة صغيرة ، من المستحيل وضع الوقت ودرجة الحرارة بحيث تكون مرئية. لذلك ، تغير الساعة الوقت بقراءة درجة الحرارة كل 10 ثوانٍ.