💳 Потрібна європейська картка з лімітом 50к євро? Встановлюй Trustee Plus 👉

Вітер

Senior Software Engineer у компанії 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
Підключай Megogo зі знижками за акційними тарифами.

від 99 гривень на місяць

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

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментариев пока нет.