^

Od majsterkowania do programowania

Jaromir Kopp

3 września 2017

Artykuł dedykuję Karolowi (Tacie), bo dzięki niemu nuda jest u mnie zjawiskiem rzadkim.
W domu zawsze coś się tworzyło Mama robiła na drutach, zapewniając nam za czasów „komuny” ciut lepsze zaopatrzenie (sweterki były w cenie). Tato majsterkował, tworzył elektroniczne urządzenia lub czasem modele latające oraz makiety kolejowe. I tak to pod wpływem i z pomocą Taty robiłem półeczki, zabawki „z niczego”, pierwsze latające modele, radyjka „na diodkę” i inne interesujące rzeczy.
Od wczesnego dzieciństwa wiele czasu spędzałem na majsterkowaniu i tworzeniu różnych dziwnych przedmiotów. Najwspanialszymi prezentami były dla mnie zestawy „młody chemik” (dziś musiałyby być zakazane), elementy i tabor do kolejki elektrycznej, a potem balsa i inne materiały potrzebne modelarzom. Dodatkowo majsterkowanie miało w tamtych czasach wiele pozytywnych aspektów. Pozwalało mile spędzić czas, rozwijało oraz zapewniało jako taki komfort w domu, bo jak się chciało mieć coś zrobione dobrze, trzeba to było zrobić samemu. I w ten sposób zostałem dziedzicznie obciążoną domową „złotą rączką”.

Majsterkowanie ma dużo zalet, ale też pewnie ograniczenia

Otóż poza pomysłem i pewną wiedzą trzeba było mieć materiały oraz narzędzia (miejsce na „warsztat” zawsze się jakieś znalazło, co powodowało utyskiwania żeńskiej części rodziny). Na szczęście również pod wpływem Taty wcześnie, bo na początku lat 80. zeszłego wieku, poznałem komputery. Co to ma wspólnego z majsterkowaniem? Otóż to,  że można za ich pomocą tworzyć przeróżne „rzeczy”. Tworzyć, nie mając materiałów, warsztatu, nie brudząc, a od kilku lat nawet nie mając miejsca… MacBook zmieści się na kolanach.
Aby coś „stworzyć” za pomocą komputera,wystarczy go mieć, mieć pomysł (to chyba najważniejsze), jakąś wiedzę i wymagane do realizacji pomysłu aplikacje. W przypadku programistów Xcode czy też inne narzędzia zazwyczaj dostępne za darmo. Nie musimy mieć materiałów, wielu narzędzi. Nie nabrudzimy, nie wypalimy dziur w stole lub podłodze. Po prostu siadamy i tworzymy. I właśnie to pociągało mnie w komputerach przez wiele lat najbardziej. Możliwość „tworzenia” bez poszukiwań materiałów i narzędzi.

Czym skorupka za młodu nasiąknie, tym na starość trąci…

Jednak programowanie ma swoje wady. Zrobisz coś, jesteś z siebie dumny, ale otoczenie widzi tylko jakieś znaczki na ekranie. I jak tu zaimponować? Na szczęście jak już zaglądający na stronę mojmac.pl mogli się przekonać, odkryłem IoT. IoT jest skrótem od angielskiego zwrotu „internet rzeczy”. Często, tak jak w moim przypadku, jest to kojarzone z Inteligentnym Domem. W ten sposób połączyłem programowanie z majsterkowaniem, bo jak inaczej nazwać dodawanie do instalacji elektrycznej, różnych przełączników, instalowanie sensorów i termometrów oraz za pomocą oprogramowania podłączanie tego wszystkiego do HomeKit w iOS?

Zaczęło się niewinne od znalezienia i uwolnienia od „chińskiego serwera” tanich przełączników (prądu) na WiFi. Użyłem gotowego, dostępnego na licencji MIT firmware, lutownicy oraz darmowego programowania na macOS oczywiście. Gdy wszystko się udało w zasadzie za pierwszym razem, to dumny i bady pokazałem rodzinie, jak za pomocą przeglądarki www włączam i wyłączam lampkę. To był tylko miły… początek. Dalej zapragnąłem podłączyć te tanie, ale już uwolnione od chińskiego nadzoru urządzenia z Home Kit. Niestety dostępne do Home Bridge (to taki „oszust” pozwalający na podpięcie do Home Kit Apple, niewspieranych urządzeń) dodatki były po prostu kiepskie. Aby zrobić ładne, musiałem nauczyć się programowania w Java Script, którym szczerze pogardzam, a jest wymagane do tworzenia dodatków.
Zaowocowało to stworzeniem całej serii pluginów do Home Bridge działających ze wspomnianymi przełącznikami Sonoff i Electrodragon oraz firmware’em Tasmota. Następnie wprowadziłem kilka udoskonaleń do firmware’u Tasmota, jak się potem okazało, przy okazji „nauczyłem się” programowania w C++ stosowanym w modułach zgodnych z Arduino, nawet o tym nie wiedząc. Z dumą pokazywałem wyświetlacz LCD podłączony do maleńkiego urządzonka, pokazujący wartości temperatury przesłane z podobnego ustrojstwa zainstalowanego na dworze, podkreślając, że mają one tylko 64 KB pamięci RAM!
Następnie samodzielnie od podstaw napisałem na jedno z takich urządzeń (dokładnie Electrodragona) program, który po podłączaniu nadajnika i odbiornika sygnałów radiowych w paśmie 433 MHz (za 6 zł) stosowanym zazwyczaj w tanich włącznikach sterowanych pilotem, umożliwił przełączanie ich za pomocą iPhone’a. Z dumy aż zesztywniałem.

Na tym nie koniec…

Do otrzymanego od firmy Electrdragon bardzo zaawansowanego modułu deweloperskiego z układem ESP32 o dwóch rdzeniach taktowanych zegarem 240 MHz i aż 240 KB RAM. Dodałem ekran graficzny i stworzyłem stację pogodową z menu przełączanym guziczkami lub pilotem RF. Ta stacja już przyniosła mi nieocenione usługi podczas wędzenia, a było to tak. Jeden z Electrodragonów zaopatrzony w hermetyczny czujnik temperatury, przekazywał dane za pomocą WiFi i brokera MQTT zainstalowanego na QNAP NAS do Home Kit oraz wspomnianej stacji pogodowej, a ja dzięki temu nie musiałem co 15 minut biegać do wędzarni. Jednak apetyt rośnie w miarę jedzenia.
Postanowiłem oprogramowanie „pogodynki” przenieść na Electrodragona, który ma jedyne 64 KB RAM. Nie dość, że się udało, to jeszcze pozostało 40 KB pamięci wolnej, na dalsze pomysły, których mam wiele: termostat z harmonogramem, sterowanie przełącznikami WiFi bez użycia iPhone’a (na wszelki wypadek), wykresy ciśnienia i temperatury, prognozy, a to nie koniec.
Niestety niedawno kolega Mariusz, któremu pomagam w tworzeniu jego własnej instalacji „Inteligentnego domu”, zadał mi pytanie, czy da się podłączyć czujnik temperatury do nadajnika RF 433 MHz. Otóż nie da się bezpośrednio, ale szukając odpowiedzi na to pytanie, dokonałem „odkrycia”, że są komputery (mikrokontrolery), posiadające 512 BAJTÓW pamięci RAM i 8 KB pamięci Flash lub mniej i mimo to można na nie pisać całkiem zaawansowane programy. Może za miesiąc dam Wam znać, czy byłem w stanie zmusić takie maleństwa do posłuszeństwa i jakie przyniosło to efekty, bo niestety już są zamówione.

Jak mogliście zobaczyć na fotografiach, poza programowaniem praktykuję zajęcia ręczne jak lutowanie, wyszywanie (kabelkami), przykręcanie, kombinowanie, a niebawem czeka mnie w końcu stworzenie obudów dla moich wynalazków, czyli znów zacząłem majsterkować! I tak oto koło się zamyka.
Jeżeli chcecie śledzić moje dokonania, zapraszam do czytania cyklu Inteligentny dom tanim kosztem, homekit, ale uważajcie… to wciąga!

Artykuł oryginalnie pojawił się w numerze 5/2017 Mój Mac Magazynu.

Jaromir Kopp

Użytkownik komputerów Apple od 1991 roku. Dziennikarz technologiczny, programista i deweloper HomeKit. Propagator przyjaznej i dostępnej technologii. Lubi programować w Swift i czystym C. Tworzy rozwiązania FileMaker. Prowadzi zajęcia z IT i programowania dla dzieci oraz młodzieży, szkoli też seniorów. Współautor serii książek o macOS wydanych przez ProstePoradniki.pl. Projektuje, programuje oraz samodzielnie wykonuje prototypy urządzeń Smart Home. Jeździ rowerem.
Komentarze (0)
L

0 komentarzy