Съдържание:
- Стъпка 1: Проектиране и избор на материали
- Стъпка 2: Подгответе акрилните части
- Стъпка 3: Електроника
- Стъпка 4: Код
- Стъпка 5: Android APP и BT връзка
- Стъпка 6: APPInventor
Видео: Стенният часовник TheSUN, Arduino Powered Design: 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте отново Instructables-folks!:-P
Поради проблеми с доставката не успях да продължа проекта си ABTW, затова реших да ви покажа друго, най-новото си творение.
Мисля, че много от нас, като мен, харесват тези хубави адресируеми LED ленти (наричани още NEOPIXEL LED). Можете да ги получите от ADAFRUIT. Други доставчици също ще предоставят подобни продукти. Има налична библиотека на ADAFRUITS - GitHub (щракнете върху мен), включително примерен код. Така че кодирането трябва да бъде директно …
Видях тези НЕОПИКСЕЛИ една мисъл, какво по дяволите… мога да направя с тези лъскави малки неща.
- LED-матричен дисплей? -> Прекалено сложно и не го използвам (в момента)
- X-Mas осветление? -> Подхожда на сезона, но би било по-евтино да си купите такъв:-P
- часовник? -> Защо не! Но трябва да е стилно и нестандартно
Така че, нека направим стенен часовник.
Ако разгледаме внимателно часовника си за китка (ако имате аналог като мен), ще забележим, че имаме 12 часа и 60 минути (надявам се). Това ще означава, че имаме нужда от 60 адресируеми светодиода, phu! Ако вземем лента с 60 светодиода / метър, ще получим диаметър ~ 318 мм (радиус = обхват / (2*Π)), което определено е твърде голям.
Истината е, че ако попитате някого за времето, никой няма да каже, че е 2 минути след 3! Ще получите „Това е 5 след 3“като отговор. Така че защо да не намалим всичко до стъпки от 5 минути? За това ще ни трябват само 12 светодиода, което означава, че получаваме диаметър 63,6 мм. Също така можем да разграничим часовете и минутите, като им дадем отделен цвят. Също така ще можем да предоставим „липсващите“единични минутни стъпки с допълнителна лента от 4 светодиода (или единичен адресируем светодиод.
ТОВА Е ПЛАНА! Нека да видим как направих всичко. Както винаги ще предоставя списък/сметка на материалите и инструкции как да го изградим.
Ако мислите, че само швейцарците могат да правят готини часовници, нека бъдем доказателство, че грешите (съжалявам Швейцария:-P)
Стъпка 1: Проектиране и избор на материали
Дизайн:
Ако погледнем отблизо нашия аналогов часовник/часовник отново, виждаме, че кръгът е разделен на 12 * 30 ° стъпки, които знаем, че имаме нужда от 63,6 мм за LED лентата. Така че трябва да е възможно по някакъв начин да подравните лентата около тръба. Реших да използвам акрилно стъкло, защото изглежда хубаво и е възможно да се капсулира LED светлината в него и при всеки дефект в стъклото ще се получи известно разсейване на светлината. Така че, да кажем: повече примеси ще доведат до повече разсейване на светлината! Точно това искаме. Така че не се колебайте да вземете инструментите си за гравиране и бъдете креативни:-)
Ако се обърнете към моя BoM-списък и името, което дадох на часовника, аз съм избрал дизайн, подобен на слънце. Взех всички акрилни части от немски продавач на E-Bay (линк, предоставен в BoM). За моя дизайн ще имаш нужда:
- акрилна заземена плоча, прозрачна дебелина = 6 мм, диаметър = 300 мм
- акрилна средна плоча, прозрачна дебелина = 3 мм, диаметър = 150 мм
- акрилна предна плоча, сатен, дебелина = 3 мм, диаметър = 90 мм
- акрилна тръба, прозрачна, външен диаметър = 64 мм (ще означава, че трябва да променим малко с LED лентата)
- акрилен прът, прозрачен, диаметър = 5 мм (това ще бъдат нашите греди); Наоколо има и акрилни пръчки с мехурчета вътре, препоръчвам ги, но нямам ги наоколо.
- акрилно лепило
Електроника (вижте файловете на Fritzing):
- Arduino mini (или подобен)
- 1 адресируема LED лента (12 светодиода за час и 5 минути стъпки)
- 4 адресируеми светодиода (единични минути)
- 2 резистора от 330 ома
- 1 1000µF кондензатор
- 1 захранване (5V/500mA)
- RTC DS-1307 (по избор!)
- Bluetooth модул (по избор! Да, можете да зададете часа чрез BT и смартфон с Android)
Ако се запитате защо имам чипове MAX485 на моя BoM. Отговорът е, че искам да синхронизирам часовника със системата за домашна автоматизация, която ще направя (никога повече няма да се налага да настройвам часовник за лятно часово време:-P). Ще опиша това в моя блог в следващия няколко седмици/месец.
Както забелязахте, аз също ще се опитам да извадя часовника извън мрежата с някои слънчеви панели и LiPo, но не покривам това в този Instructable не се колебайте да опитате сами.
Стъпка 2: Подгответе акрилните части
Инструментите:
На първо място, това е наистина полезно, ако отпечатате плана DWG, който добавих в мащаб 1: 1. Това ще ви помогне да подравните всички части и ще ви служи като план за пробиване. Освен това ще ви трябва:
- хоби нож
- митромер
- ножовка
- щипки
- ръчна бормашина
- може да пробива, диаметър 65 мм
- комплект метални бормашини
- малка метална пила
- акрилно лепило
Да започваме:
Вземете заземителната плоча и я подравнете по плана, за да можете да получите центъра на кръга. Сега вземете ръчната бормашина с монтираната върху нея бормашина и пробийте (много бавно! Не до много налягане!) Отвор в центъра на заземителната плоча, външният кръг трябва да е с дълбочина ~ 2-3 мм. Това е за да потъне LED лентата в заземителната плоча (LED лента ~ 10 мм широка, лъчи само 5 мм в диаметър) и да ги подравните с лъчите (вижте снимка 1).
Сега се нуждаем от ножовка, скоба и акрилна тръба. Просто го нарязах на парчета и реших да направя корпуса (тръбата) с дължина 40 мм (снимка 2). Сега отново вземете ножовката и направете малко рабче от едната страна на тръбата, направете го гладко с металната пила. Там ще излязат проводниците;-) (вижте снимка 3)
Време е за малко лепило … Вземете средната плоча (d = 150 мм) и предната плоча (сатинираната). Подравнете ги отново върху плана, поставете малко лепило в центъра на средната плоча, подравнете предната плоча и изчакайте лепилото е леко втвърдено. Лепилото, което използвах, е леко втвърдяващо се и може да отнеме до 2-3 часа, така че може да искате да използвате скоба … (снимка 3 и 4)
Направете същото за залепването на тръбата върху заземената плоча, уверете се, че рабът е обърнат към плочата и е подравнен някъде, където искате да бъде първият светодиод (12 часа).
Изчакайте да се втвърди!
Сега можем да подравним 2 -те части (с подравнение) върху плана и пробием нашите 4 единични минутни отвора (5 мм в диаметър или диаметърът на светодиода, който сте избрали; пробийте го бавно с не много натиск). Пробийте с дълбочина около 8-9 мм. Бъдете внимателни, сатинираната плоча е много крехка и може да се спира, ако пробиете дълбоко. Вече можете да ги залепите или решите, като мен да нарязвам заплаха в заземителната плоча и да я прикрепя с винт.
Отново изчакайте лепилото да се втвърди. Сега подравнете и залепете гредите върху заземената плоча. (снимка 6) Познайте какво … изчакайте лепилото да се втвърди:-) Нека да преминем към електрониката …
Стъпка 3: Електроника
Инструментите:
- поялник
- спойка
- нож за хоби
- малко парче прототипираща платка
- емайлирана тел или друга тел, която предпочитате
- горещо лепило
Започнах с единичните светодиоди. Ако използвате емайлирана тел, не забравяйте да изстържете лака преди запояване. Можете да използвате нож за хоби за това. Свържете ги, можете да се обърнете към снимката с разпечатката на flikto.de. Обърнете внимание, че DOUT преминава към DIN на следващия светодиод! (вижте снимка 2) След това можете да изрежете LED лентата на 4 елемента всеки с по 3 светодиода. Не забравяйте, че имаме 63,6 мм LED лента и 64 мм външен диаметър на тръбата, така че се нуждаем от "допълнителна дължина, за да я подравним точно към гредите. Свържете я с емайлирана тел, както е на снимка 4. Направих малко прото платка, която ще служи като "захранващ кабел" и ще съдържа компонентите за LED лентите (двата резистора по 330 ома и 1000 μF кондензатор, снимка 7).
Сега монтирайте лентата около тръбата, подравнете светодиодите към гредите. Първият Pixel съвпада с 12 часа. Ако сте обърнали жилището си, не забравяйте, че всичко е огледално. Продължете обратно на часовниковата стрелка! Използвайте малко горещо лепило, за да го прикрепите към тръбата. Малка капка за всеки сегмент ще го направи!
Можете да направите същото за единичните светодиоди (в крайна сметка огледални), просто добавете малко горещо лепило и ги натиснете в предварително пробити отвори.
Все още не свързвайте Arduino, ще използваме хардуерно-сериен за BT връзката, така че първо проверете следващите стъпки, където описвам софтуера.
Стъпка 4: Код
Вече можете да заредите скицата в Arduino. Вече можете да свържете и LED лентите. Не свързвайте BT модула !!! Първо искаме да разгледаме кода, трябва да знаете къде можете да промените няколко неща …
Изтеглете Arduino IDE и библиотеките. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC
Инсталирайте IDE и поставете библиотеките в папката на библиотеката, Отворете прикачения INO файл и го качете на вашия arduino. Описаният тук код е същият, но с допълнителни коментари! Ако сте направили всичко както трябва, сега можете да видите "bootanimation". Възможно е да настроите времето през серийния монитор. Просто въведете @"час"/"мин"/"сек" напр. @10/33/00 (10:33).
Чувствайте се свободни да играете с кода … Тук няма да ви дам кратко описание на кода (Настройка без RTC!)
ОПРЕДЕЛЕНИЯ:
#дефинирайте ПИН 6 // Часова LED лента #дефинирайте MINPIN 5 // LED за единична минута #дефинирайте NUMPIXELS 12 // Брой пиксели за час #дефинирайте MINNUMPIXELS 4 // Брой пиксели за една минута #дефинирайте BAUDRATE 115200 // Скорост, трябва да съвпада скоростта на предаване на BT модул #define utch '@' // стартиране на BYTE на TimeSync
int timeset = 0; // флаг за съхранение, ако часът е зададен след зареждане delayval = 20; // забавяне за избледняване на анимацията int clocktimer = 10000; // time refresh int timebright = 250; // яркост на час Strip int mtimebright = 50; // яркостта на singelminint initialize = 0; // флаг за извикване на функцията clearpixels след час на зареждане; int oldahour = 0; // магазин пред. час в минута; int oldamin = 0; // съхранява предишната минута за опресняване за секунда; int aday; int amonth; int година; int mmin; tmElements_t tm;
// Настройка за 2 -те LED масива NeoPixel (ИМЕ = ТИП (БРОЙ ПИКСЕЛИ, КОИТО ПИН, ФОРМАТ RGB ИЛИ GRB, FREQ); Вижте ръководството за Adafruit за повече информация.); Adafruit_NeoPixel минпиксели = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);
НАСТРОЙВАМ:
void setup () {
Serial.begin (BAUDRATE); Wire.begin (); // Инициализиране на лентите, всички OFFpixels.begin (); minpixels.begin (); pixels.show (); minpixels.show ();
// Направете малко animationSerial.println ("SUNRISE"); изгрев (); забавяне (1000); Serial.println ("SUNSET"); залез (); pixels.show (); Serial.println ("ГОТОВ"); }
LOOP:
void loop () {// проверете за timesync while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // ако има @ на реда, прочетете следващите байтове /ints {readtime (); }} // инициализирайте светодиодите, изчистете анимацията при зареждане
if (инициализира == 0) {clearpixels (); инициализира = 1; }
ahour = час ();
аминута = минута (); if (timeset == 1 || timeset == 0) // тук можете да проверите дали Time е зададен, можете да спрете програмата тук, ако Timeset = FALSE, просто премахнете "|| timeset == 0"!
{
if (oldamin <aminute || oldahour задайте всичко на OFF, покажете ново време {clearpixels (); ClockDisplay ();}}}
Показване на часовника:
void ClockDisplay () {
oldahour = час;
олдамин = аминут; int xhour, xmin;
ако (ahour> = 12) {xhour = ahour-12; // имаме само 12 светодиода за 24 -часов дисплей} else {xhour = ahour; } // го мащабира на 5min стъпки xmin = (aminute /5); ако (олдамин <аминута) {олдамин = аминута; чисти пиксели (); } // вземете останалата част от отделението за светодиода singelmin mmin = (aminute % 5); // модулен оператор напр. 24 % 5 = 4! много полезно: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // можете да промените цветовете тук! играйте наоколо! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pixels.show ();
// показваме единичния minsfor (int m = 0; m
minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, пиксели. Color (255, 255, 0)); minpixels.show (); }} Прочетете и обработете TIMEinformation от Serial
void readtime () // ако вече имаме водещ "@" процес на идващите данни и съхраняваме времето за TIME Lib {
ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Serial.print (час); Serial.print (":"); Serial.println (аминут); setTime (ahour, aminute, asecond, aday, amonth, ayear); }
Изчисти всичко
void clearpixels () // поставете всеки PIXEL на изключен, за да опресните дисплея {
pixels.begin (); minpixels.begin (); за (int i = 0; ipixels.setPixelColor (i, пиксели. Color (0, 0, 0)); minpixels.setPixelColor (i, пиксели. Color (0, 0, 0)); pixels.show (); minpixels.show ();}}
Стъпка 5: Android APP и BT връзка
Ако сте успели с предишните стъпки, сега можете да свържете вашия BT модул. (надявам се, че сте се уверили, че скоростта на предаване съвпада). не забравяйте да пресечете TX & RX линии:-)
Изтеглете и инсталирайте приложението, свържете се с вашия BT ключ, стартирайте приложението, свържете се с ключа и синхронизирайте времето с мобилния си телефон. Приложението по същество прави същото като преди. Той просто изпраща @hh/mm/ss/dd/mm/YYYY, генериран от неговото системно време. Предоставих и AIA файла на APPInventor и обяснение за следващата стъпка (за тези, които се интересуват).
Стъпка 6: APPInventor
APP Inventor е доста лесен за използване и си струва усилията за такава проста програма.
Ако правите нов проект, ще намерите себе си на екрана ДИЗАЙНЕР. (снимка 1) Тук добавяме таблици, бутони, сензори и други елементи за по -нататъшна употреба. В нашия случай се нуждаем от:
- таблица (за подравняване на всички елементи)
- списък за избор (за избор на BT устройството, към което се свързваме)
- бутон (за задействане на TIME през BT)
- някои етикети (показват действителното време и дата)
- сензор за часовник (опресняване на часа)
- клиентският сензор за Bluetooth (свързаност)
Добавянето им е също толкова лесно, колкото плъзгане и пускане! На снимка 2 можете да видите преглед на „APP“в екрана BLOCKS. Е, това е принципно мястото, където се случва цялата "магия". В горната част създадох някои променливи за съхраняване на часа и датата. Първият блок в горния ляв ъгъл ще инициализира елемента listpicker със списъка на сдвоените BT устройства. втори блок решаваме какво да правим с предварително избрания елемент. Е, искаме да се свържем с него.
Ако разгледате внимателно следващия блок, можете да видите, че ние генерираме, ако състоянието на BT "е свързано", съобщението BT. Това е същото, което въведохме в SerialMonitor преди. Последният блок вляво ще ни даде водещите нули за показване на времето (напр. 01:08). От дясната страна можете да намерите последния ни блок, където използваме часовника. Тук актуализираме променливите и ги обединяваме с процедурата с цифри, това ще се случва на всеки 1000 ms (настройка по подразбиране, променете я в режим на дизайнер) и покажете актуализираните стойности с етикета. Това е само кратко описание, но APPInventor наистина е толкова лесно:-) Може би има някой в общността, който иска да напише софтуер за iOS или WindowsPhone. (Би било чудесно)
Надявам се, че моят Instructable ви е харесал! Забавлявайте се с новия си стенен часовник! Може би искате да го подарите на някой, когото обичате (Неговият коледен сезон):-)
И ако има въпроси, не се колебайте да ме попитате!
Сърдечни поздрави и Весела Коледа.
Препоръчано:
Часовник за пенсиониране / Брой нагоре / Dn часовник: 4 стъпки (със снимки)
Пенсионен часовник / Брой нагоре / Dn часовник: Имах няколко от тези 8x8 LED матрични дисплеи в чекмеджето и мислех какво да правя с тях. Вдъхновен от други инструктажи, имам идеята да създам дисплей за обратно броене/нагоре за обратно броене до бъдеща дата/час и ако целевото време p
ESP8266 Мрежов часовник без RTC - Nodemcu NTP Часовник Няма RTC - ИНТЕРНЕТЕН ЧАСОВНИК ПРОЕКТ: 4 стъпки
ESP8266 Мрежов часовник без RTC | Nodemcu NTP Часовник Няма RTC | ИНТЕРНЕТЕН ЧАСОВНИК ПРОЕКТ: В проекта ще се прави часовник проект без RTC, ще отнеме време от интернет с помощта на wifi и ще го покаже на дисплея st7735
C51 4 -битов електронен часовник - дървен часовник: 15 стъпки (със снимки)
C51 4 -битов електронен часовник - Дървен часовник: Имах малко свободно време този уикенд, затова продължих и сглобих този 4 -битов DIY електронен цифров часовник за 2,40 австралийски долара, който купих от AliExpress преди малко
Създаване на часовник от часовник: 11 стъпки (със снимки)
Създаване на часовник от часовник: В тази инструкция, аз вземам съществуващ часовник и създавам това, което чувствам, че е по -добър часовник. Ще преминем от снимката вляво към снимката вдясно. Преди да започнете със собствен часовник, моля, знайте, че сглобяването може да бъде предизвикателство, тъй като изображението
Преобразувайте обикновения домашен часовник в самостоятелно светещ часовник: 8 стъпки (със снимки)
Преобразувайте обикновения домашен часовник в самостоятелно светещ часовник: ПЪРВО ДАВАМ МОИТЕ СЪРДЕЧНИ БЛАГОДАРНОСТИ НА ИНСТРУКТИВНИТЕ ОТБОРИ, КОИТО МОИТЕ ДНИ ЗА ОЗДРАВЛЕНИЕ НА ЗДРАВЕТО СЕ ОЩЕ ОТГОВОРЯТ ….. В тази инструкция искам да споделя с вас как да превърнете домашния си обикновен часовник в самостоятелно светещ часовник. > > За да направите това