Съдържание:

Свързан нощен часовник за деца: 12 стъпки
Свързан нощен часовник за деца: 12 стъпки

Видео: Свързан нощен часовник за деца: 12 стъпки

Видео: Свързан нощен часовник за деца: 12 стъпки
Видео: SHMEKERA - 03 (prod. by Laykx) - [OFFICIAL VIDEO] 2024, Юли
Anonim
Свързан нощен часовник за деца
Свързан нощен часовник за деца

Следвайки тези инструкции, ще можете да изградите часовник с активирано движение и ще показва дата, час и съответното събитие за деня. Той ще показва нощен режим, когато е време за сън и когато децата се събудят, те бързо могат да си спомнят какво ще бъде основната дейност за деня: училище, празник, рожден ден на приятел, мач по ръгби или волейбол и т.н.

Той също така автоматично ще се настрои за лятно часово време и ще събира информация за празниците от празничен календар.

Това не е будилник (бях свикнал да се събуждам от родителите си като дете и ще се опитам да направя същото за децата си, показвайки им, че някой се грижи за тях, откакто отворят очи сутрин).

Устройството ще събира информация от календара на Google (или всяка друга услуга, която може да предоставя календари във формат ICS) и ще се синхронизира с времето в интернет, премахвайки необходимостта от ръчна настройка.

Схематичен, софтуерен и 3D дизайн за корпуса са отворени и достъпни в линковете. Чувствайте се свободни да допринесете за всяка идея или подобрение тук или на github.

Устройството се основава на модул ESP-32, може лесно да се адаптира към различни базирани на ESP-23 платформи и вероятно също към ESP8266 и други устройства, съвместими с Arduino, които могат да осигурят връзка.

Стъпка 1: Компоненти

Компоненти
Компоненти
Компоненти
Компоненти
Компоненти
Компоненти

Децата ми спят на двуетажно легло и нямат нощно шкафче, така че часовникът е проектиран да бъде прикрепен към дървената конструкция на леглото. Може да искате да го преработите, за да отговаря по -добре на вашите нужди (не се колебайте да го направите и да споделите резултатите!), Затова разделих списъка между електронни части (винаги необходими) и монтажни части (специфични за този дизайн).

Електронни компоненти:

  • Модул, базиран на ESP-32. Можете да използвате Huzzah-32 на Adafruit или всеки модул ESP-32, който поддържа средата за програмиране Arduino. Използвах модул от do-it, който се предлага от Amazon.it на много разумна цена (за съжаление разпространението на Adafruit в Италия не е много добро).
  • PIR сензор (тук използвах on e, но можете лесно да ги намерите в мрежата или в местните магазини за производители). Моят сензор изисква 5V захранване и генерира 3.3V изходен сигнал, който е съвместим и с 5V устройства. Проверете дали вашите собствени сензори имат същите спецификации или адаптирайте дизайна съответно.
  • I2C олеен дисплей. Използвах монохромен дисплей с размери 128 x 64 пиксела и той е съвместим със собствения модел на Adafruit, който просто изисква по -малко връзки за работа (като по подразбиране е конфигуриран към I2C интерфейс). Ако използвате различен дисплей, може да се наложи да промените софтуера, но графиката е внедрена с помощта на отличната GFX библиотека на Adafruit, така че пренасянето към съвместим дисплей не трябва да бъде твърде трудно.
  • Джъмперни кабели (много съм лош в запояването, затова предпочитам да не запоявам директно върху щифтове).
  • 5V захранване. Типът на конектора не е важен, тъй като ще го отрежем и ще използваме кабелите директно. Ако искате просто да захранвате модула ESP-32, без монтаж, базиран на магнит, можете да използвате USB-микро захранващ адаптер.

Монтажни компоненти:

  • 3D отпечатан калъф (можете да намерите връзка към дизайна в урока, не се колебайте да ми пишете, ако искате връзка към оригиналния дизайн на thinkercad, за да го промените)
  • Магнити. Те се използват за поддържане на устройството, прикрепено към монтажната плоча, а също и за осигуряване на захранване към него. Избрах това решение, за да имам нещо, което лесно мога да премахна за поддръжка (и отстраняване на грешки) и което може лесно да се рестартира, като се отдели и прикрепи към стената.
  • Винтове за дърво/стена

Инструменти:

  • Поялник
  • Отвертка
  • Компютър с инсталирана Arduino IDE и среда за разработка на ESP-32 Arduino Core, конфигурирана, както е описано на тази страница.

Стъпка 2: Настройка на Google Календар

Настройка на Google Календар
Настройка на Google Календар
Настройка на Google Календар
Настройка на Google Календар
Настройка на Google Календар
Настройка на Google Календар

Тук ще покажа как да използвате Google Календар за създаване на календар, който ще се използва от вашето устройство, можете да използвате всяка календарна услуга, която ви позволява достъп до календара във формат iCal. Имената и настройките на полетата ще бъдат различни, разбира се, но стига да можете да експортирате календара си във формат iCal с фиксиран https URL, той трябва да работи с часовника ви.

За достъп до Google Календар се нуждаете от акаунт в Google.

След това можете да посетите calendar.google.com.

Инструкциите са предназначени да се следват с помощта на браузър на вашия компютър/Mac. Трябва да можете да извършвате същите операции и от собственото мобилно приложение на Google.

В Google Календар ще трябва да създадете нов календар, като изберете иконата „+“до „Добавяне на календар на приятел“(не толкова интуитивен) и след това изберете „Нов календар“от изскачащото меню (по -интуитивно).

Можете да зададете заглавие на календара си (полезно, когато ще трябва да добавите събития към него, за да конфигурирате часовника), а в полето за описание можете да настроите часове за събуждане по подразбиране и „лягане“.

За да конфигурирате часовете, трябва да вмъкнете буква: „W“за времето за събуждане по подразбиране, „H“за времето за събуждане в края на седмицата и празниците и „B“за времето за лягане, след това точка и запетая и времето във формат 24HR (Съжалявам за моите американски приятели). Трябва да се добавят множество параметри в отделни редове.

Например:

W: 08:00

Ч: 08:30

Б: 22:00

Означава, че времето за събуждане обикновено е 8 сутринта и 8:30 сутринта за WE/празници, а времето за лягане е 10 вечерта.

В този момент можете да кликнете върху „създаване на календар“, за да го добавите към списъка с календари, управлявани от Google Календар.

Ще трябва да получите URL, който може да се използва за изтеглянето му във формат iCal. За да направите това, трябва да щракнете върху вертикалните точки, които се появяват вдясно от името на календара, когато го задържите с мишката (не интуитивно) и след това щракнете върху „Настройки и споделяне“.

Ще трябва да превъртите надолу страницата с настройки (поне ако нямате 4k дисплей) и да потърсите в полето „Secret address in iCal format“. Копирайте и запишете текста (той е замъглен в моята екранна снимка), защото ще ви е необходим за конфигуриране на вашето устройство.

Ако нямате празничен календар, свързан с вашия акаунт, е време да го добавите.

Изберете отново иконата „+“до „Добавяне на календар на приятел“и този път изберете „разглеждане на календари по интереси“.

Това ще покаже списък с множество календари, включително местни празнични календари, изберете този, който искате да използвате и той ще се появи в списъка до текущия ви календар.

Отворете страницата „настройки“, като използвате менюто с вертикални точки, както е описано по -горе за обикновения календар и този път копирайте и запазете URL адреса под „Публичен адрес във формат iCal“.

Ако не можете да намерите подходящ празничен календар, вероятно само търсенето в Google може да ви помогне да намерите уебсайт, който предоставя iCal календар за вашето конкретно местоположение.

На този етап ще имате необходимата информация, за да позволите на устройството да изтегли вашите календари:

  • URL адрес на вашия основен часовник календар
  • URL на празничния календар

Стъпка 3: Съберете информация за часовата зона

Събирайте информация за часовата зона
Събирайте информация за часовата зона
Събирайте информация за часовата зона
Събирайте информация за часовата зона

Часовникът може да се синхронизира с интернет базирани услуги, но ще трябва да знае в коя часова зона се намирате, за да може да регулира текущото си време и часовете на събитията към него.

Часовите зони могат да бъдат изразени с помощта на символен низ, описващ изместването му от GMT (Гринуичско време) и правилата, които се използват за превключване между лятното и нормалното часово време. Изграждането на този низ не е много лесно, но за щастие г -н. Павел Гуренко внедри хубав инструмент, който ни позволява да генерираме този низ, като просто предоставим името на нашата timezoe, което можете да намерите на https://www.pavelgurenko.com/2017/05/getting-posix-tz-strings-from- olson.html

Имената на часовата зона зависят от континента/държавата/града, където се намирате. В Европа обикновено е достатъчно да посочите Европа/, за страни с множество часови зони нещата могат да бъдат малко по-сложни, но тази страница в wikipedia https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ще ви помогне да намерите правилната.

След като намерите името на часовата зона, можете да го въведете във формата на mr. Блогът на Гуренко и натиснете бутона за подаване, за да получите правилния низ (както можете да видите на екранните снимки).

Например низът за моята часова зона (Европа/Рим) е: Европа/Рим (CET-1CEST, M3.5.0, M10.5.0/3)

Копирайте и запазете тази информация, защото ще трябва да я предоставите при конфигурирането на вашето устройство.

Стъпка 4: Конфигурирайте и добавете персонализирани изображения за вашите събития

Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития
Конфигурирайте и добавете персонализирани изображения за вашите събития

Тъй като ще имаме графичен дисплей, свързан с нашия часовник, можем да добавим някои графики към нашите събития, така че децата веднага да разберат коя е основната дейност за деня. Стандартните икони за учебни дни, WE/празници и време за сън са вградени в кода (можете да намерите инструкции как да ги персонализирате в github repo), но можете да добавите изображения за конкретни събития.

За съжаление дисплеят е доста малък и монохромен, така че това ще ограничи малко сложността на вашите изображения.

Устройството поддържа 48x48 пиксела монохромни растерни изображения. Той може да ги изтегли от google drive, но ще трябва да предоставите индексен файл, който да ги съпостави с думи в описанието на вашето събитие.

Създавайте персонализирани изображения

На първо място, трябва да създадете растерни изображения, можете да използвате всяко графично приложение, което искате, стига да го запишете като некомпресиран файл с растерна карта на Windows (BMP). Размерът на файла трябва да бъде 446 байта.

Ако използвате MS-Paint, можете да създадете ново изображение и да го преоразмерите до 48x48 пиксела (вижте първата екранна снимка).

След това можете да нарисувате изображението, можете да използвате само черно-бяло и пикселът ще бъде обърнат на екрана (белите пиксели ще бъдат бели и обратно).

Когато сте доволни от резултатите (втора екранна снимка), можете да изберете „запазване като …“и да изберете формата на изображението като монохромен файл с растерна картина на Windows (трета екранна снимка).

Качвайте изображения в Google Диск и събирайте връзки

След като създадете всички необходими изображения, можете да ги качите в google диск. Предлагам да създадете папка за тази цел.

След като качите вашите изображения, трябва да получите директни връзки за изтегляне за тях, като използвате този метод:

www.labnol.org/internet/direct-links-for-g…

или тази страница, за да конвертирате връзки за споделяне в такива за директно изтегляне:

sites.google.com/site/gdocs2direct/

Трябва да свържете всяка връзка към изображение с мнемонично име. За да направите това, трябва да създадете нов текстов файл (можете да използвате бележник на машина с Windows) и да добавите изображение на ред, като използвате следния формат:

:

трябва да прекратите списъка с ключовата дума „край“на нов ред (вижте екранна снимка четири за пример).

Качете индексния файл

След като приключите, можете да качите индексния файл и да съберете неговия собствен URL за изтегляне, ще трябва да го предоставите при конфигурирането на вашето устройство.

За съжаление, Google Drive няма да ви позволи да изтеглите файла, ако сте го променили с помощта на редактора на Google Документи, така че трябва да редактирате текстовия файл на вашия компютър и да го качите в google drive всеки път, когато искате да добавите нови снимки или да промените нещо.

Стъпка 5: Инсталиране на софтуер

Инсталиране на софтуер
Инсталиране на софтуер
Инсталиране на софтуер
Инсталиране на софтуер

За да инсталирате софтуер на вашето устройство, ще трябва да го изградите от изходния код.

Настройка на Arduino IDE и ESP-32 поддръжка

Трябва да инсталирате Arduino IDE, който можете да изтеглите от официалния уебсайт на Arduino.

След това трябва да инсталирате поддръжка на ESP-32, като следвате инструкциите на github.

На този етап трябва да тествате дали образците могат да бъдат изградени и изтеглени на вашето устройство, преди да изградите специфичен за проекта код.

Изтеглете библиотеки и код

Трябва да добавите библиотеките, необходими за проекта, като използвате мениджъра на библиотеката Arduino.

Изберете „Sketch / Include Library / Manage Libraries…“от главното меню на Arduino IDE (вижте първата снимка на екрана).

За да изградите кода, трябва да търсите и инсталирате:

  • Библиотека Adafruit GFX
  • Adafruit SSD1306
  • RootCertificates

За да инсталирате библиотека, просто напишете нейното име в полето за търсене, натиснете enter, изберете дясната библиотека от списъка, най -новата версия от списъка с версии и изберете „инсталиране“(вижте втората екранна снимка).

Изтеглете код

След като инсталирате необходимите библиотеки, можете да изтеглите изходния код от моето хранилище на github.

Можете просто да го разархивирате или клонирате в папката, където се съхраняват вашите скици на Arduino.

Софтуерът все още се работи, така че не се колебайте да отворите проблеми в github, ако срещнете проблеми и да го следите за бъдещи актуализации.

Стъпка 6: Настройка на софтуера

Настройка на софтуера
Настройка на софтуера
Настройка на софтуера
Настройка на софтуера
Настройка на софтуера
Настройка на софтуера
Настройка на софтуера
Настройка на софтуера

За да позволите на часовника си да се свърже със собствения си календар и да събира допълнителна информация (празничен календар, персонализирани икони и т.н.), първо трябва да стартирате конфигурационната скица.

Изпълнете скица на конфигурацията

В IDE на Arduino можете да изберете „File / Open…“и да отидете в папката, където запазвате кода, който сте изтеглили от github.

След това можете да преместите папката "KidsClockConfig" и да отворите скицата "KidsClockConfig.ino" (вижте първата екранна снимка).

Трябва да свържете вашата ESP-32 платка с помощта на USB кабел, това също ще я захранва.

Вашият компютър ще му назначи сериен порт, трябва да го изберете в десния порт в подменюто "tools / ports" на Arduino IDE.

След това можете да изберете бутона „качване“(стрелка, сочеща надясно) от лентата с инструменти на Arduino, за да изградите и изтеглите кода на вашия модул.

Последното съобщение в изходния прозорец (дъното на Arduino IDE) трябва да бъде:

Твърдо нулиране чрез RTS пин …

Ако процесът приключи успешно, можете да отворите терминален прозорец, за да вмъкнете конфигурационните данни.

За да отворите терминала, изберете „tools / serial monitor…“в главното меню на IDE на Arduino, това ще отвори нов прозорец, който ще ви позволи да комуникирате с устройството през сериен (използвайки същия USB кабел, който сте използвали за изтегляне на код).

Конфигурирайте серийната скорост на 115200 бода (вижте приложената екранна снимка) и натиснете бутона „изпрати“.

Устройството ще ви попита за SSID (име на вашата Wi-Fi мрежа). Настройките се съхраняват в EEPROM на устройството (постоянно съхранение), ако нещо вече е запазено, просто трябва да натиснете бутона за изпращане, за да остане такова, каквото е, в противен случай просто копирайте или въведете информацията в текстовото поле и натиснете изпращане.

Ще бъдете помолени за:

  • SSID (вижте екранната снимка)
  • wi-fi ключ (парола)
  • публичен URL на календара, използван за събития (този, който сте създали в стъпка 2)
  • URL на празничния календар (за вашата страна/местоположение, събрани в стъпка 2)
  • Часова зона във формата, получен на стъпка 3 (например часовата зона за Италия е „CET-1CEST, M3.5.0, M10.5.0/3“вмъкната без кавички)
  • URL на индексния файл (създаден в стъпка 4)

След като вмъкнете последната информация, трябва да видите:

Настройките са запазени.

Отпечатано на серийната конзола.

Вашето устройство вече е готово за пускане на последната скица и ще се използва като часовник до леглото.

Изпълнете последната скица

В този момент можете да отворите скицата с име „KidsClock“и да я изтеглите на устройството.

Той ще зареди конфигурацията и ще изведе информация за серийния порт, като изтегли информацията от мрежата.

Проверете дали там не се съобщават грешки и изключете устройството от компютъра си, готови сте да свържете другите хардуерни компоненти и да го използвате.

Стъпка 7: Основна плоча и захранване

Основна плоча и захранване
Основна плоча и захранване
Основна плоча и захранване
Основна плоча и захранване
Основна плоча и захранване
Основна плоча и захранване

Децата ми спят на двуетажно легло, затова трябваше да проектирам часовник, който да може да бъде прикрепен към дървената конструкция на леглото. Исках също да имам лесен достъп до вътрешността (за отстраняване на проблеми) и лесен начин за изключване и връщане на часовника, ако нещо се обърка от страна на софтуера.

Реших да използвам магнити, за да държа часовника си прикрепен към малка опорна плоча, прикрепена към леглото. Тъй като магнитите също провеждат електричество, реших да ги свържа към захранването. По този начин отделянето и връщането на часовника към плочата също ще го нулира. Можете да намерите 3D дизайн на корпуса на часовника на thinkercad.

Първият компонент, от който се нуждаете, е основната плоча. Трябва да можете да поставите магнита в отворите. Това ще изисква известен натиск, но закрепването им на място е необходимо, за да се гарантира, че те няма да останат прикрепени към основния корпус, когато изключите часовника.

Запоявах проводници от 5V захранване директно към магнитите. Първо можете да поставите магнитите, след това да запоите проводниците от задната страна. Нагряването на магнитите също ще разтопи малко PLA около тях, като гарантира, че те няма да бъдат лесно извадени от плочата.

Консумацията на енергия на устройството е доста ниска, така че 500mA захранване би било подходящо. Внимавайте какъв магнит свързвате към положителния и отрицателния проводник на захранването (добра идея е да напишете "+" и "-" с маркер, за да не ги смените).

Стъпка 8: Основен случай

Основен случай
Основен случай
Основен случай
Основен случай
Основен случай
Основен случай

Трябва да свържете два допълнителни магнита и да ги използвате за предаване на мощност към платката, към дисплея и към сензора за движение.

За да опростя нещата, отрязах някои джъмперни кабели (платката и другите компоненти имат щифтове 2,54 мм) и направих два кабела с множество изходи (вижте първата снимка). Един с 3 изхода за 5V захранване и един с 4 за заземяване.

Трябва да вземете проводника без съединител и да го запоите към магнит, но първо трябва да направите две неща:

  • проверете коя страна на магнита съответства на полярността на магнита, който сте вградили в основната плоча. Можете просто да прикрепите двата магнита, които планирате да използвате, върху тези, които вече са върху основната плоча.
  • плъзнете жицата вътре в десния отвор в кутията, в тази стъпка първо ще трябва да запоите проводника към магнита и след това да го включите, както е показано на снимките.

Проверете отново дали червеният и черният проводник съвпадат с полярностите на основата, като окабеляването им по грешен начин може да повреди компонентите ви.

Стъпка 9: Монтиране на компоненти вътре в кутията

Монтажни компоненти вътре в кутията
Монтажни компоненти вътре в кутията
Монтажни компоненти вътре в кутията
Монтажни компоненти вътре в кутията
Монтажни компоненти вътре в кутията
Монтажни компоненти вътре в кутията

3D отпечатаният калъф има два монтажни отвора, един (отгоре) за PIR сензора и един отдолу от дисплея.

Първо трябва да монтирате дисплея. Внимателно го натиснете вътре в мястото за монтаж (стъклото не е много устойчиво, поне на дисплея, който използвах, така че бъдете внимателни) и го заключете на място с една от малките правоъгълни части. Това би трябвало да е достатъчно, за да се държи заключено на място, оставяйки щифтовете достъпни за окабеляване.

Сега трябва да монтирате PIR сензора, но първо трябва да намалите малко неговата чувствителност, за да избегнете това да се задейства от движения по време на сън. Използвах малко тиксо, за да маскирам предната леща, оставяйки само отвор близо до горната част на сензора, по този начин ще трябва да махнете с ръка над часовника, за да го активирате. Използвах и винтовете за калибриране на чувствителността до ниско ниво, така че само ръка близо до сензора ще го активира. Проверете документацията на вашия PIR сензор, за да разберете как да конфигурирате неговата чувствителност (ако това е възможно, разбира се).

След като сте маскирали и конфигурирали сензора, можете да заключите обектива на място и да плъзнете сензора в монтажния му отвор, като го фиксирате с правоъгълния блок, както направихте за дисплея.

Стъпка 10: Окабеляване и тестване

Окабеляване и тестване
Окабеляване и тестване
Окабеляване и тестване
Окабеляване и тестване
Окабеляване и тестване
Окабеляване и тестване

Сега е време да свържете компонентите си заедно и да проверите дали часовникът работи.

Можете да видите схемата, като изтеглите PDF файла, прикачен към тази стъпка.

Първо трябва да свържете I2C щифтовете (SCL и SDA) на платката ESP-32 към дисплея.

На платката за doit това са щифтове, обозначени с GPIO21 и GPIO22, позицията и етикетите могат да се променят на други базирани на ESP-32 платки, но лесно ще намерите SCL и SDA, споменати в документацията.

След това трябва да свържете изходния щифт на PIR (среден щифт за моя сензор, но отново проверете документацията, ако използвате друг) към GPIO12.

В този момент ще трябва да свържете 5V захранването (червен кабел) към VIN щифтове на платката, PIR и дисплея и заземен кабел (черен) към 2 -те заземителни щифта на платката (един би трябвало да е достатъчен, но аз предпочетох да използвайте и двете, за да поддържате платката по -плътно свързана вътре в кутията), PIR и дисплея

Нещата може да изглеждат малко объркани, но трябва да можете да плъзнете всичко вътре в кутията, като оставите модула ESP32 отгоре и след това прикрепете кутията към основната плоча.

Дисплеят трябва да се включи за по -малко от една секунда, показвайки съобщение: "свързва се с" и вашия SSID.

След няколко секунди той трябва да покаже текущото време и след това да коригира изображенията според него.

Стъпка 11: Добавяне на записи в календара

Добавяне на записи в календара
Добавяне на записи в календара

Сега можете да добавяте нови записи към календара.

Можете просто да използвате уебсайта на календара или приложението за телефон.

Натиснете голямата икона "+" и конфигурирайте вашето събитие.

Важните неща, които трябва да забележите (вижте екранната снимка) са:

- уверете се, че сте избрали правилния календар, Google използва основния ви календар по подразбиране, ще трябва да го промените

- началният час на събитието също е време за събуждане, така че времето, когато дисплеят превключва от нощен режим към събитието

- устройството поддържа само единични събития, без повтарящи се/периодични

- Текстът в полето за тема (до 32 знака) ще бъде показан под иконата

- В полето за описание можете да добавите името на едно от изображенията, които сте конфигурирали в стъпка 4, или да го оставите празно, за да използвате иконата по подразбиране

Приложението изтегля календара на всеки 10 минути, така че вашето събитие може да не се появи веднага, ако сте го конфигурирали за текущия ден.

Добра идея е да изтриете стари записи в календара, така че количеството данни, които устройството ще трябва да изтегли, за да актуализира собствения си график, няма да се увеличи с течение на времето.

Стъпка 12: Заключение

Заключение
Заключение

Надявам се, че ще се опитате да създадете и модифицирате това малко устройство, като го използвате като начин да научите за микроконтролерите, свързаността и т.н., а също и да направите събуждането сутрин малко по -забавно за вашите деца.

Планирам скоро да го документирам в блога си, като добавя още някои технически подробности в сравнение с тези инструкции за изграждане.

Ако имате проблеми с изграждането му, не се колебайте да използвате коментари тук. Ако имате проблеми със софтуера, моля, използвайте github repo.

Това, разбира се, не е готов продукт. Това е просто забавен експеримент, показващ как можете да прехвърляте данни от интернет услуга на физическо специално устройство. За мен все още се работи, като приемам предложения от децата за това как може да се подобри. Чувствайте се свободни да споделите и вашето мнение и предложения!

Препоръчано: