Кодовий замок з Ардуїно. Електронний замок на Ардуїно Налаштовуємо електронний замок

Провідного каналу youtube AlexGyver просили зробити електронний замок своїми руками. Ласкаво просимо до циклу відео про електронні замки на arduino. У загальних рисахмайстер пояснить ідею.

Є кілька варіантів створення системи електронного замку. Найчастіше використовуються для замикання дверей та ящиків, шаф. А також для створення схованок і таємних сейфів. Тому потрібно зробити макет, з яким зручно працювати і можна наочно та детально показувати пристрій системи зсередини та зовні. Тому вирішив зробити раму із дверцятами. Для цього знадобиться квадратний брус 30 x 30. Фанера 10мм. Дверні петлі. Спочатку хотів зробити фанерна скринька, але згадав, що у кімнаті все завалено запчастинами. Подібний ящик нікуди поставити. Тому буде зроблено макет. Якщо хтось хоче поставити собі електронний замок, то, дивлячись на макет, можна з легкістю все повторити.

Все, що потрібно для замку, знайдете у цьому китайському магазині.

Ціль – розробити максимально ефективні схемита прошивки для електронних замків. Ви зможете використовувати ці результати для встановлення цих систем на свої двері, ящики, шафи та схованки.


Дверцята готові. Тепер потрібно придумати, як відкривати та закривати електронним способом. Для цих цілей підходить потужна соленоїдна клямка з aliexpress (посилання на магазин вище). Якщо подати висновки напруги, вона відкриється. Опір котушки майже 12 ом, значить при напрузі 12 вольт котушка буде їсти близько 1 ампера. З таким завданням впорається і літієвий акумуляторі підвищує модуль. Налаштовуємо на відповідну напругу. Хоча можна й трохи більше. Клямка кріпиться на внутрішній сторонідверцята на відстані, щоб не чіпляли край і могли зачинятися. Клямки повинна бути частиною у відповідь у вигляді металевого короба. Використовувати її без цього незручно та неправильно. Прийде поставити сходинку, хоча б створювалася видимість нормальної роботи.

У неодруженому режимі клямка відкривається нормально, тобто якщо на дверцятах є ручка, подаємо імпульс, дверцята за ручку відчиняємо. Але якщо пружити, цей спосіб вже не підходить. Перетворювач, що підвищує, не справляється з навантаженням. Для відкриття підпружинених дверцят доведеться використовувати великі акумулятори і потужніший перетворювач. Або мережеве джерело живлення і забити на автономності системи. У китайських магазинах є клямки великих розмірів. Вони підійдуть для ящиків. Живлення можна подавати за допомогою реле або мосфет транзистора, або силового ключа на тому ж транзисторі. Більш цікаво і менш витратний варіант - сервопривід, з'єднаний з шатуном з будь-яким замикаючим елементом - шпингалет або більш серйозні засувки. Він може знадобитися також шматочок сталевої спиці, яка виконує роль шатуна. Такій системі не потрібний великий струм. Але вона займає більше місця та хитріша логіка управління.

Є два типи сервоприводів. Маленькі слабенькі та великі потужні, якими можна спокійно засунути в отвори у серйозні металеві штирі. Обидва наведені варіанти працюють як на дверцятах, так і на висувних ящиках. З ящиком доведеться повозитись, проробляючи отвір у висувній стінці.

Друга частина

Сьогодні урок про те, як використовувати RFID-рідер з Arduino для створення простої системи блокування, простими словами- RFID-замок.

RFID (англ. Radio Frequency IDentification, радіочастотна ідентифікація) - спосіб автоматичної ідентифікації об'єктів, у якому за допомогою радіосигналів зчитуються або записуються дані, що зберігаються в так званих транспондерах, або RFID-мітках. Будь-яка RFID-система складається зі зчитувального пристрою (зчитувач, рідер або Інтеррогатор) і транспондера (він же RFID-мітка, іноді також застосовується термін RFID-тег).

В уроці використовуватиметься RFID-мітка з Arduino. Пристрій читає унікальний ідентифікатор (UID) кожного тегу RFID, який ми розміщуємо поруч із зчитувачем, і відображає його на OLED-дисплеї. Якщо тег UID дорівнює визначеному значенню, яке зберігається в пам'яті Arduino, тоді на дисплеї ми побачимо повідомлення «Unlocked» (англ., розблоковано). Якщо унікальний ідентифікатор не дорівнює визначеному значенню, повідомлення "Unlocked" не з'явиться - див. нижче.

Замок закритий

Замок відкритий

Деталі, необхідні для створення цього проекту:

  • RFID-рідер RC522
  • OLED-дисплей
  • Макетна плата
  • Провід

Додаткові деталі:

  • Акумулятор (Powerbank)

Загальна вартість комплектуючих проекту становила приблизно 15 доларів.

Крок 2: RFID-зчитувач RC522

У кожній мітці RFID є невеликий чіп (на фото біла картка). Якщо направити ліхтарик на цю RFID-карту, можна побачити маленький чіп та котушку, яка оточує його. Цей чіп не має батареї для отримання потужності. Він отримує харчування від зчитувача бездротовим чином, використовуючи цю велику котушку. Можна прочитати RFID-карту, подібну до цієї, з відстані до 20 мм.

Той самий чіп існує і в тегах RFID-брелка.

Кожен RFID тег має унікальний номер, який ідентифікує його. Це UID, який відображається на OLED-дисплеї. Крім цього UID, кожен тег може зберігати дані. У цьому типі карток можна зберігати до 1 тисячі даних. Вражає, чи не так? Ця функція не буде використана сьогодні. Сьогодні все, що цікавить, - це ідентифікація конкретної картки її UID. Вартість RFID-зчитувача та цих двох карт RFID складає близько 4 доларів США.

Крок 3: OLED-дисплей

В уроці використовується OLED-монітор 0.96" 128x64 I2C.

Це дуже гарний дисплей для використання з Arduino. Це дисплей OLED, і це означає, що він має низьке енергоспоживання. Потужність цього дисплея становить близько 10-20 мА, і це залежить від кількості пікселів.

Дисплей має роздільну здатність 128 на 64 пікселі і має крихітний розмір. Існує два варіанти відображення. Один із них монохромний, а інший, як той, який використаний в уроці, може відображати два кольори: жовтий та синій. Верхня частинаекрана може бути лише жовтою, а нижня частина – синьою.

Цей OLED-дисплей дуже яскравий і має чудову і дуже приємну бібліотеку, яку розробила компанія Adafruit для цього дисплея. Крім цього, дисплей використовує інтерфейс I2C, тому з'єднання з Arduino неймовірно просте.

Вам потрібно лише підключити два дроти, за винятком Vcc та GND. Якщо ви новачок в Arduino і хочете використовувати недорогий і простий дисплей у вашому проекті, почніть з цього.

Крок 4: З'єднуємо всі деталі

Зв'язок із платою Arduino Uno дуже простий. Спочатку підключимо живлення як зчитувача, і дисплея.

Будьте обережні, зчитувач RFID повинен бути підключений до виходу 3,3 В від Arduino Unoабо він буде зіпсований.

Так як дисплей може працювати на 3,3 В, ми підключаємо VCC від обох модулів до позитивної шини макета. Потім ця шина підключається до виходу 3,3 від Arduino Uno. Після цього з'єднуємо обидві землі (GND) із шиною заземлення макета. Потім ми сполучаємо GND-шину макета з Arduino GND.

OLED-дисплей → Arduino

SCL → Аналоговий Pin 5

SDA → Аналоговий Pin 4

RFID-рідер → Arduino

RST → Цифровий Pin 9

IRQ → Не з'єднаний

MISO → Цифровий Pin 12

MOSI → Цифровий Pin 11

SCK → Цифровий Pin 13

SDA → Цифровий Pin 10

Модуль RFID зчитувача використовує інтерфейс SPI для зв'язку з Arduino. Тому ми маємо намір використовувати апаратні штирі SPI від Arduino UNO.

Висновок RST надходить на цифровий контакт 9. Контакт IRQ залишається нескладним. Контакт MISO підключається до цифрового виходу 12. Штир MOSI йде цифровий контакт 11. Контакт SCK переходить на цифровий контакт 13, і, нарешті, висновок SDA йде цифровий висновок 10. Ось і все.

Зчитувач RFID підключено. Тепер нам потрібно підключити OLED-дисплей Arduino, використовуючи інтерфейс I2C. Таким чином, висновок SCL на дисплеї переходить до аналогового виводу Pin 5 і SDA на дисплеї до аналогового Pin 4. Якщо тепер ми увімкнемо проект і розмістимо RFID-карту поряд з рідером, ми побачимо, що проект працює нормально.

Крок 5: Код проекту

Щоб код проекту було скомпілювано, нам потрібно включити деякі бібліотеки. Насамперед нам потрібна бібліотека MFRC522 Rfid.

Щоб встановити її, перейдіть до Sketch -> Include Libraries -> Manage libraries(Управління бібліотеками). Знайдіть і встановіть MFRC522.

Нам також потрібна бібліотека Adafruit SSD1306 та бібліотека Adafruit GFX для відображення.

Встановіть обидві бібліотеки. Бібліотека Adafruit SSD1306 потребує невеликої модифікації. Перейдіть до папки Arduino -> Libraries, відкрийте папку Adafruit SSD1306 та відредагуйте бібліотеку Adafruit_SSD1306.h. Закоментуйте рядок 70 та розкоментуйте рядок 69, т.к. дисплей має роздільну здатність 128x64.

Спочатку ми оголошуємо значення мітки RFID, яку має розпізнати Arduino. Це масив цілих чисел:

Int code = (69,141,8,136); // UID

Потім ми ініціалізуємо зчитувач RFID та дисплей:

Rfid.PCD_Init(); display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

Після цього функції циклу ми перевіряємо тег на зчитувачі кожні 100 мс.

Якщо на зчитувачі є тег, ми читаємо його UID та друкуємо його на дисплеї. Потім ми порівнюємо UID тега, який ми щойно прочитали, зі значенням, яке зберігається в кодовій змінній. Якщо значення однакові, ми виводимо повідомлення UNLOCK, інакше ми не відображатимемо це повідомлення.

If(match) ( Serial.println("\nI know this card!"); printUnlockMessage(); )else ( Serial.println("\nUnknown Card"); )

Звичайно, ви можете змінити цей код, щоб зберегти більше 1 значення UID, щоб проект розпізнав більше RFID-міток. Це просто приклад.

Код проекту:

#include #include #include #include #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); #define SS_PIN 10 #define RST_PIN 9 MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class MFRC522::MIFARE_Key key; int code = (69,141,8,136); //This is the stored UID int codeRead = 0; String uidString; void setup() ( Serial.begin(9600); SPI.begin(); // Init SPI bus rfid.PCD_Init(); // Init MFRC522 display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with I2D addr 0 (for the 128x64) // Clear the buffer. display.setTextSize(2); display.setCursor(10,0); display.print("RFID Lock"); display.display(); ) void loop() ( if(rfid.PICC_IsNewCardPresent()) ( readRFID(); ) delay(100); ) void readRFID() ( rfid.PICC_ReadCardSerial(); Serial.print(F("\nPICC type: ") ); MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K) ( Serial.println(F("Your tag is not of type MIFARE Classic."); return;) ; Scanned PICC"s UID:"); printDec(rfid.uid.uidByte, rfid.uid.size); String(rfid.uid.uidByte)+ " "String(rfid.uidByte); printUID(); int i = 0;

Крок 6: Підсумковий результат

Як видно з уроку – за невеликі гроші можна додати RFID-рідер у ваші проекти. Можна легко створити систему безпеки за допомогою цього рідера або створити більш цікаві проекти, наприклад, щоб дані з диска USB зчитувалися тільки після розблокування.

Цей проект є модульним, тобто. можна підключати/відключати різні елементи та отримати різну функціональність. На картинках вище показаний варіант з повною функціональністю, а саме:

  • Замикаючий механізм. Служить для ВІДКРИТТЯ та ЗАКРИТТЯ дверей. У цьому проекті розглянуто використання трьох різних механізмів:
    • Сервопривід. Бувають великі, маленькі. Дуже компактний, і разом з важким засувом - чудовий варіант
    • Електропривод замку дверей автомобіля. Велика і потужна штука, але жере просто шалені струми
    • Соленоїдна клямка. Хороший варіант, тому що сама закривається

    У налаштуваннях прошивки можна вибрати будь-який із трьох типів (налаштування lock_type)

  • Кнопка всередині. Служить для ВІДКРИТТЯ та ЗАКРИТТЯ дверей зсередини. Може бути розміщена на ручці дверей (з боку долоні або з боку пальців), на самих дверях, або на одвірку
  • Кнопка зовні. Служить для ЗАКРИТТЯ дверей, а також для ПРОБУДЖЕННЯ з енергозбереження. Може бути розміщена на ручці дверей (з боку долоні або з боку пальців), на самих дверях, або на одвірку
  • Кінцевикна закриття дверей. Служить для автоматичного закриття замка під час закривання дверей. Їм може бути:
    • Тактова кнопка
    • Датчик холу + магніт на самій двері
    • Геркон + магніт на самій двері
  • Секретна кнопка скидання доступу. Служить для скидання пароля/введення нового пароля/запам'ятовування нового ключа/комбінації тощо. Може бути захована десь у корпусі
  • Світлодіоддля індикації. Світлодіод RGB, використовуються червоний та зелений кольори (при змішуванні дають жовтий):
    • Горить зелений – замок ВІДКРИТИЙ. Горить, щоб не забути зачинити двері
    • Горить жовтий - система прокинулася і чекає на введення пароля
    • Блимає червоний - сів акумулятор

Будь-який з цих елементів можна виключити із системи:

  • Забираємо кінцевик. У прошивці в налаштуваннях теж його відключаємо (налаштування tail_button). Тепер, щоб закрити замок, потрібно натискати кнопку
  • Забираємо зовнішню кнопку. У прошивці в налаштуваннях теж її відключаємо (налаштування wake_button). Тепер систему не потрібно будити, вона прокидається сама (споживання енергії трохи більше). А також у нас тепер немає кнопки закрити на передній частині дверей і потрібен кінцевик. Або замок – клямка
  • Забираємо внутрішню кнопку. Цей варіант підходить для шаф і сейфів. У налаштуваннях нічого міняти не потрібно
  • Забираємо світлодіод. У налаштуваннях нічого міняти не потрібно
  • Кнопку скидання доступу можна відпаяти після першого використання, або переписати код під себе.
  • Двері зачинені, натиснуто ЗОВНІ - прокинутися, чекати введення пароля/RFID мітку/електронний ключ/відбиток пальця
  • Двері зачинені, система прокинулася, чекає введення пароля. Час можна налаштувати (налаштування sleep_time)
  • Двері зачинені, введений пароль/мітка/ключ і т.д. - відкрити
  • Двері зачинені, натиснуто ВСЕРЕДИНІ - відкрити
  • Двері відчинені, натиснуто ЗОВНІ - закрити
  • Двері відчинені, натиснуто ВСЕРЕДИНІ - закрити
  • Двері відчинені, натиснуті КІНЦЕВИК - закрити

У замку передбачено роботу від акумулятора в режимі зниженого енергозбереження (включити вимкнути: налаштування sleep_enable), а саме:

  • Прокидатися кожні кілька секунд, стежити за ПОДІЄЮ (опціональний варіант, якщо зовні немає кнопки. Увімкнути можна в налаштуванні wake_button)
  • Кожні кілька хвилин слідкувати за напругою акумулятора (вкл/викл налаштування battery_monitor)
  • Якщо акум розряджений (напруга встановлюється в налаштуванні bat_low):
    • відкрити двері (опціонально, можна налаштувати у прошивці open_bat_low)
    • заборонити подальше відкриття та закриття
    • при натисканні на кнопки блимати червоним світлодіодом
    • перестати стежити за ПОДІЄЮ (тобто введення пароля/мітка тощо)

Коли система не спить, натисніть кнопку зміни пароля (прихована кнопка). Потрапляємо в режим зміни пароля:
Вводимо пароль із цифр ( МАКСИМУМ 10 ЦИФР!)

  • При натисканні * пароль записується в пам'ять і система виходить зі зміни пароля
  • При натисканні пароль скидається (можна вводити заново)
  • Якщо нічого не натискати 10 секунд, автоматично вийдемо з режиму зміни пароля, пароль залишиться старий

Коли система не спить (прокинулися по кнопки або сон вимкнено), натиснути * для входу в режим введення пароля
Якщо система спить і періодично прокидається перевіряти ПОДІЯ, то натискаємо * і утримуємо, доки не загориться червоний світлодіод
Режим введення пароля:

  • Обробка пароля зроблена таким чином, що правильний пароль зараховується тільки при наборі правильної послідовності цифр, тобто якщо пароль 345, то можна вводити будь-які числа до тих пір, поки не з'явиться послідовність 345, тобто. 30984570345 відкриє замок, оскільки закінчується на 345.
  • Якщо пароль введено правильно, двері відчиняться
  • Якщо нічого не натискати, через 10 секунд система повернеться до звичайного (чергового) режиму
  • Якщо натиснути #, одразу вийдемо з режиму введення пароля
  • Якщо натиснути секретну кнопку зміни пароля в режимі введення пароля, теж з нього вийдемо

У цій статті я розповім, як зробити кодовий замок із ардуїно. Для цього нам знадобляться червоний та зелений світлодіоди, зумер, ардуїно нано, LCD дисплей з I2C конвертором, сервопривід та матрична клавіатура 4x4. При включенні дисплей писатиме "Enter code.",

увімкнеться червоний світлодіод,

а зелений згасне, сервопривід встановиться на 0 °. При введенні цифр на дисплеї загоряться *.

Якщо код введено неправильно, дисплей напише "Enter cod.". Якщо код правильний, пролунає звуковий сигнал, сервопривід повернеться на 180°, дисплей напише "Open."

увімкнеться зелений світлодіод,

а червоний відключиться. Після 3 секунд сервопривід повернеться в початкове положення, увімкнеться червоний світлодіод, а зелений згасне, дисплей напише "Close.",

потім дисплей напише "Enter code". Тепер про схему. Спочатку з'єднуємо ардуїно проводами із макетною платою (контакти харчування).

Потім підключаємо до контактів D9 – D2 матричну клавіатуру.

Потім сервопривід. Його підключаємо до контакту 10.

Червоний світлодіод до контакту 11.

Зелений – до контакту 12.

Зуммер – до контакту 13.

Тепер завантажуємо скетч.

#include #include #include #include iarduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd(0x27, 16, 2); Servo servo; int pass = (3, 6, 1, 8); int in; int r = 11; int g = 12; void setup() ( KB.begin(KB1); pinMode(r, OUTPUT); pinMode(g, OUTPUT); lcd.init(); lcd.backlight(); digitalWrite(g, LOW); digitalWrite(r, HIGH) ), servo.attach(10); servo.write(0); !KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.setCursor(0, 0); check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); lcd.print("*"); while (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; (in == pass) ( if (in == pass) ( if (in == pass) ( lcd.clear(); lcd.setCursor(0, 0); lcd.print("Open."); tone( 13, 400, 750); print("Close."); ) ) ) ) )

Ось і все. Насолоджуйтесь кодовим замком!

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
Е1 Плата Arduino

Arduino Nano 3.0

1 До блокноту
Е8, Е9 Резистор

220 Ом

2 SMD До блокноту
Е6 Світлодіод

АЛ102Г

1 Червоний До блокноту
Е7 Світлодіод

АЛ307Г

1 Зелений До блокноту
Е3 LCD-дисплейІнтерфейс I2C1 Зелене підсвічування До блокноту
Е5 СервопривідSG901 180 градусів До блокноту
Е2 Зумер1 Bu До блокноту
Е4 Клавіатура4Х41 Матрична До блокноту
Ні BreadBoard640 пікселів1 Без паяння
Так сталося, що вирішили ми на роботі встановити кодовий замок на свої двері, тому, як постійно вбігаємо - вибігаємо з кабінету, двері в який повинні бути зачинені постійно без мешканців. Ключі часто виявляються забутими всередині. Втім, вирішили, що кодовий замок це чудовий вихід.

Порившись на китайських барахолках і ebay, я нічого дешевого і більш-менш серйозного не знайшов і вирішив зробити його своїми руками. Обмовлюся відразу, що платформа Arduino була обрана за свою простоту, оскільки досвіду спілкування з мікроконтролерами не було взагалі.

Ідея

На двері із зовнішнього боку дверей повинна розташовуватись клавіатура, на якій вводиться пароль, з внутрішньої сторони закріплена решта конструкції. Для контролю повного закриття дверей використовується геркон. Виходячи з кабінету людина натискає на клавіатурі «*» і не чекаючи, поки двері зачиняться доводчиком іде у своїх справах, коли двері будуть повністю зачинені, геркон замкнеться і замок буде закритий. Відчиняються двері за допомогою введення 4х значного пароля та натисканням на «#».

Комплектуючі

Arduino UNO = $18
Arduino protoshield + breadboard = $6
L293D = $1
Пучок дротів 30шт для бредборда = $4
2 розетки RJ45 = $4
2 вилки RJ45 = $0.5
актуатор центрального замку = 250 руб.
Геркон = безкоштовно відірвано від старого вікна.
Шпінгалет металевий гігантських розмірів = безкоштовно
Корпус від старого хаба D-LINK із півтораміліметрового заліза = безкоштовно
Блок живлення від того ж хаба D-LINK на 12 та 5в = теж безкоштовно
Купа гвинтів та гайок для кріплення всього цього добра до корпусу = 100руб.
Пульт управління від сигналізації = безкоштовно.

Разом:$33,5 і 350руб.

Не так вже й мало, скажете ви, і будете, безперечно, мають рацію, але ж за задоволення треба платити! А зібрати щось своїми руками завжди приємно. До того ж конструкцію можна здешевити, якщо використовувати голий МК без Arduino.

Підготовка до збирання

Хочеться кілька слів сказати про покупку ключового елемента конструкції актуатора. У місцевому авто-магазині мені запропонували актуатори двох видів: «з двома проводами та з п'ятьма». За словами продавщиці, вони були абсолютно однаковими і різниця в кількості проводів не означала абсолютно нічого. Однак, як виявилось пізніше, це не так! Я вибрав девайс із двома проводами, він харчувався від 12в. У конструкції з п'ятьма проводами встановлені кінцеві вимикачі, що дозволяє контролювати рух важеля. Зрозумів, що купив не той я, тільки коли розібрав його і міняти його було пізно. Хід важеля виявився занадто коротким, щоб нормально засунути клямку, тому необхідно було трохи його доопрацювати, а саме видалити дві гумові шайби, що вкорочують хід важеля актуатора. Для цього корпус довелося розпиляти вздовж звичайної ножівки, тому що друга шайба знаходилася всередині. Синя ізолятора нам, як завжди, допомогла нам у подальшому при складанні його назад.
Для керування мотором актуатора був використаний драйвер моторів L293D, який витримує пікове навантаження до 1200 мА, у нас при зупинці двигуна актуатора пікова навантаження зростала лише до 600 мА.
З пульта управління від охоронної сигналізації було виведено контакти з клавіатури, динаміка та двох світлодіодів. Пульт і основний пристрій передбачалося з'єднати за допомогою кручений пари і RJ45 роз'ємів

Програмування.

Так як досвіду програмування Arduino у мене не було досі. Я скористався чужими напрацюваннями та статтями із сайту arduino.cc. Кому цікаво, може подивитися цей потворний код :)

Фото та відео



Ардуїно та актуатор


Блок живлення


Клавіатурка


Шпінгалет (з'єднаний з актуатором металевою спицею і на яку надіта термоусадка для краси)

Відео процесу роботи пристрою:



 
Статті потемі:
Лікування манії переслідування: симптоми та ознаки Чи може манія переслідування пройти з часом
Манія переслідування - це психічна дисфункція, яка також може іменуватися маренням переслідування. Цей розлад психіатри відносять до основних ознак психічного божевілля. Під манією психіатрія розуміє порушення діяльності психіки,
Навіщо приснилося шампанське?
Що не бачимо ми у мріях – все, без винятків, є символами. Символічні значення несуть всі предмети і явища в мріях – від простих і звичних до яскравих і фантастичних.
Як прибрати подразнення на підборідді у жінок та чоловіків Роздратування шкіри на підборідді
Червоні плями, що з'явилися на підборідді, можуть виникати з різних причин. Як правило, їхня поява не свідчить про серйозну загрозу здоров'ю, і якщо згодом зникають самі, то приводу для занепокоєння немає. Червоні плями на підборідді виникають
Валентина Матвієнко: біографія, особисте життя, чоловік, діти (фото)
Термін закінчення повноважень *: вересень 2024 року Народилася у квітні 1949 року. 1972 року закінчила Ленінградський хіміко-фармацевтичний інститут. З 1984 по 1986 р. працювала першим секретарем Червоногвардійського райкому КПРС м. Ленінграда. У 1985