Мертві душі Helsi 🔥

Розробник SoftServe створив smart-підставку для квітів. Чим корисний цей гаджет

Senior Software Engineer у компанії SoftServe Олександр Вітер створив smart-підставку для квітів. Розповідаємо, що це за штука і навіщо вона потрібна.

Залишити коментар
Розробник SoftServe створив smart-підставку для квітів. Чим корисний цей гаджет

Senior Software Engineer у компанії SoftServe Олександр Вітер створив smart-підставку для квітів. Розповідаємо, що це за штука і навіщо вона потрібна.

«Я почав вирощувати квіти, щоб на якомусь абстрактно-психологічному рівні компенсувати оточуючі смерть і руйнування. Як казав пан Зеленський: „Життя переможе смерть“. Звісно, коли айтішник за щось береться, воно не може бути „як у всіх нормальних людей“ — треба обов’язково додати якусь автоматизацію і перетворити всю ідею у цирк на дроті зі скрам-покером й тестувальницями. З чого все почалося та до чого дійшло і піде мова у цій статті», — розповідає Олександр на форумі DOU.

Коли айтівець тільки почав саджати перші кісточки від авокадо та спостерігати за тим, як йде ріст, то помітив, що ця рослина не така жвава, як, наприклад, соняшник, що обертається за сонцем протягом дня.

Враховуючи обраний варіант дій та той набір речей, які вже давно валялися на поличках від минулих незавершених проєктів, Олександр вирішив, що можна зібрати «smart підставку для квітів», яка буде вдень обертати горщик з рослиною оптимальним чином. «Прикладом подібної поведінки можуть слугувати розумні сонячні панелі, які не закріплені стаціонарно, а можуть обертатися таким чином, щоб максимально ефективно поглинати сонячне світло (зазвичай, займаючи положення, перпендикулярне падінню сонячних променів)», — поясниює він.

Цю велику задачу розробник розділив на декілька підзадач, умовно поділених на 2 групи:

Hardware:

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

Software:

  • логіка для передачі команд від контролера до двигуна;
  • логіка для визначення потрібного часу для обертання (у різні дні сонце сходить та заходить у різний час, а вночі взагалі немає сенсу обертати рослинку);
  • математична логіка для визначення оптимальних кутів повороту підставки, враховуючи такі фактори як: час сходу та заходу сонця; частина світу, на яку виходить вікно, на підвіконні якого стоїть підставка з рослиною; оточуюча архітектура, будинки, що блокують сонячне світло у той чи інший час.

У якості підставки він використав старий кулер від стаціонарного комп’ютера у поєднанні з деякими елементами конструктора Lego. За рух відповідав сервопривід MG996R, а у якості контролера використовувався міні-комп’ютер Raspberry Pi 4, на якому я колись запускав власних Telegram-ботів.

Щодо першого пункту з розділу Software, все було досить нескладно, бо і Raspberry Pi, і обрана модель сервоприводу є досить популярними у DIY (do it yourself) ком’юніті, так що знайти інструкцію з налаштування не склало проблем.

«Єдиним не досить очевидним моментом тут була не зовсім продумана конструкція кабелів сервоприводу, через що довелося використовувати додаткові джампери, щоб з’єднати сервопривід і міні-комп’ютер. Проте це ніяк не вплинуло на якість їхньої роботи, лише трошки зіпсувало естетику виробу», — розповідає Олександр.

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

Код розробки наступний: 

import time
import json
import pytz
import lgpio
import requests
from dateutil import tz 
from datetime import datetime, tzinfo

PIN = 17  # RPi pin id where servo is connected
FREQ = 50  # default for our purpose
LAT, LNG = 46.4769954, 30.7302463  # where your device is located
endpoint = f'https://api.sunrise-sunset.org/json?lat={lat}&lng={lng}&formatted=0'
h = lgpio.gpiochip_open (0)

while True:     
response = requests.get (endpoint)     
response = json.loads (response.text)     
sunrise = datetime.fromisoformat (response['results']['sunrise'])     
sunset = datetime.fromisoformat (response['results']['sunset'])     
sunrise = sunrise.astimezone (pytz.timezone («Europe/Kyiv»))     
sunset = sunset.astimezone (pytz.timezone («Europe/Kyiv»))    
now = datetime.now ()         

if now.hour == sunrise.hour and now.minute == sunrise.minute:       
lgpio.tx_pwm (h, PIN, FREQ, 4.5)  # go to initial position         
delta = sunset — sunrise         
light_day = delta.total_seconds ()         
time.sleep (int (light_day / 4))  # wait until sun will be in the right place                  

for i in range (100):            
lgpio.tx_pwm (h, PIN, FREQ, 4.5+((i+1)*0.05))             
time.sleep (int (light_day / 200))     

else:        
 time.sleep (60)

Український айтівець створив бот для відправлення токенів на адреси гаманців у блокчейні Tron
Український айтівець створив бот для відправлення токенів на адреси гаманців у блокчейні Tron
По темi
Український айтівець створив бот для відправлення токенів на адреси гаманців у блокчейні Tron
Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram
За лаштунками лабораторії, військової школи та минулого героя

Ігор Федірко, співзасновник «Вектор-оптичної лабораторії» в Ukrainian Underdogs від dev.ua

Читайте також
«Пастка початківця». 5 найпоширеніших помилок джунів на співбесідах та як їх уникнути
«Пастка початківця». 5 найпоширеніших помилок джунів на співбесідах та як їх уникнути
«Пастка початківця». 5 найпоширеніших помилок джунів на співбесідах та як їх уникнути
Напевно, кожен хоч раз у своєму житті переживав ситуацію, коли після співбесіди замість запрошення на роботу приходила відмова. «Як же так? Це несправедливо!», — чимало з нас корили долю і не розуміли, що пішло не так. Катерина Нікітіна, SoftServe IT Academy Recruiter, розповіла про п’ять найпопулярніших помилок кандидатів-початківців на співбесідах.
У 18 років «захантив» SoftServe, у 21 — відкрив власну компанію. Історія львівського IT-вундеркінда
У 18 років «захантив» SoftServe, у 21 — відкрив власну компанію. Історія львівського IT-вундеркінда
У 18 років «захантив» SoftServe, у 21 — відкрив власну компанію. Історія львівського IT-вундеркінда
Гліб Щур — випускник кафедри систем штучного інтелекту НУ «Львівська політехніка». На молодших курсах його запросила на роботу IT-компанія SoftServe, де він працював майже 3 роки розробником у R&D-відділі. А вже у 2021 році Гліб заснував власну компанію та став CSO у 21 рік. Розповідаємо історію львівського «самородка».
1 коментар
Розробник Softserve справляв потребу у центрі Львова. Був суд. Хлопець не прийшов. Що йому було?
Розробник Softserve справляв потребу у центрі Львова. Був суд. Хлопець не прийшов. Що йому було?
Розробник Softserve справляв потребу у центрі Львова. Був суд. Хлопець не прийшов. Що йому було?
В планах SoftServe на 2022 рік - 15 000 айтішників. Хочете стати частиною команди, «залишайтеся у західних регіонах»
В планах SoftServe на 2022 рік - 15 000 айтішників. Хочете стати частиною команди, «залишайтеся у західних регіонах»
В планах SoftServe на 2022 рік - 15 000 айтішників. Хочете стати частиною команди, «залишайтеся у західних регіонах»

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.