Хто я?
Всім привіт, я є невизначений програміст, який починав з верстки сайтів, а закінчив… Ще не закінчив, пробую все що можна і не можна. Робив ігри, програмував мікроконтролери, писав бек для сайтів, телеграм ботів, діскорд ботів і всяке різне.
Чому я вирішив написати бібліотеку
Одного дня я вирішив, що паркан біля мого дому повинен мати підсвітку. Отже я замовив 25 метрів світлодіодної стрічки з двома контролерами від компанії MagicHome.
Усе б нічого і прекрасно, але я не врахував єдине. Я НЕ МОЖУ НИМИ КЕРУВАТИ В АВТОМАТИЧНОМУ РЕЖИМІ З МІКРОКОНТРОЛЕРА. На той час плата NodeMcu ESP8266, контролювала зовнішнє освітлення мого дому і включала його через 15 хв після заходу сонця та за 1 годину до сходу. Отже, появилась чи мала проблема, а якщо її вирішення немає в інтернеті, то вирішити її повинен я один.
Процес розробки
Для початку я повинен був зрозуміти яким чином телефон та контролер, що підключені до однієї мережі, комунікують. Найбільшої проблемою могло стати те, що контролер міг комунікувати з телефоном через зовнішній сервер, допустимо в Китаї, але все обійшлось і телефон сам розумів, який протокол зв’язку використовувати (локальний, або “глобальний”).
Після цього я почав робити різні дії в додатку на телефоні та відловлював пакети даних, щоб зрозуміти, які команди летять на контролер.
Коли я завершив відловлювання пакети даних прийшов час коду, на період тестування так як я не знав як правильно відправляти команди в мережу через мікроконтролер, я підняв веб сервер на Python в себе на ПК, щоб я міг розуміти, які дані я отримаю з мікроконтролера. Таким чином я зміг швидко розібратись із переліком необхідних бібліотек (не без допомоги гугла).
Під час написання коду як таких проблем не було, все йшло гладко і як по маслу. Хоча довелось трохи посидіти з яскравістю, бо вона задавалась не окремим параметром, як я думав, а зміною інтенсивності кольору. Наступною стіною стало формування власне бібліотеки, це був абсолютно новий досвід для мене, але вроді як все запрацювало.
Фініш
Після завершення усіх етапів, я оформив репозиторій на GitHub і залив бібліотеку туди.
Висновок
Отже, що ми маємо. Я здобув класний досвід і вирішив свою проблему, ще раз спробував пояснити собі, що потрібно спочатку думати і гуглити, а потім робити. Також, періодично різні люди клонують репозиторій і використовують в своїх цілях, деякі з них навіть писали мені і дякували, а один взагалі добавив підтримку до ще одного типу цього сімейства контролерів світлодіодної стрічки.