<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Lista artykułów na blogu on Jonatan Miarecki</title><link>https://miarecki.eu/pl/posts/</link><description>The latest posts on Jonatan Miarecki</description><language>pl-pl</language><managingEditor>jonatan@miarecki.eu (Jonatan Miarecki)</managingEditor><webMaster>jonatan@miarecki.eu (Jonatan Miarecki)</webMaster><atom:link href="https://miarecki.eu/pl/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Odbieranie obrazów z Międzynarodowej Stacji Kosmicznej</title><link>https://miarecki.eu/pl/posts/odbieranie-obrazow-z-iss/</link><pubDate>Fri, 25 Jul 2025 21:00:00 +0200</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/pl/posts/odbieranie-obrazow-z-iss/</guid><description>Jak odebrałem obrazy SSTV nadawane z Międzynarodowej Stacji Kosmicznej w Kosmosie</description><content:encoded><![CDATA[ 
<figure class="entry-cover">
        <img loading="lazy" srcset='https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl_hu_eda250c2d65b1bb8.webp 360w,https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl_hu_c5e4950605494004.webp 480w,https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl_hu_652d4529e71f574e.webp 720w,https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl_hu_35659ca2d56bef10.webp 1080w,https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl_hu_38998d0073b6bffa.webp 1500w,https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl.webp 2400w' src="https://miarecki.eu/posts/receiving-images-from-the-iss/ISS_cover_pl.webp"
            sizes="(min-width: 768px) 720px, 100vw" width="2400" height="1409"
            alt="Międzynarodowa Stacja Kosmiczna jest wyraźnie widoczna na środku na czarnym tle. Na górze obrazu biały tekst głosi: &#39;Odbieranie obrazów z ISS&#39;. W lewym i prawym dolnym rogu znajdują się dwa mniejsze, zdekodowane obrazy SSTV.">
</figure>]]>
<![CDATA[<p>Czy kiedykolwiek chciałeś odbierać obrazy bezpośrednio z kosmosu? Ostatnio dowiedziałem się, że Międzynarodowa Stacja Kosmiczna (ISS) od czasu do czasu przesyła obrazy na Ziemię za pomocą fal radiowych, a przy użyciu prostego sprzętu można je odbierać w domu. Pomyślałem, że to całkiem fajne, więc spróbowałem.</p>
<p>W chwili pisania tego tekstu, ostatnie wydarzenie ARISS SSTV miało miejsce około tydzień temu. Oto, jak udało mi się odebrać obrazy z ISS i jak Ty również możesz to zrobić.</p>
<p>ISS nie wysyła tych obrazów przez czały czas, więc musisz sprawdzać <a href="https://www.ariss.org/upcoming-sstv-events.html">stronę wydarzeń ARISS SSTV</a> w poszukiwaniu przyszłych transmisji.</p>
<h2 id="czym-jest-sstv">Czym jest SSTV?</h2>
<p><strong>SSTV (Slow Scan Television)</strong>, czyli telewizja o powolnym skanowaniu, to sposób na przesyłanie obrazów za pomocą dźwięku na częstotliwościach radiowych. Tym razem ISS używa trybu o nazwie <strong>PD-120</strong>, który przesyła jeden obraz w około 126 sekund. Transmisje są zwykle wysyłane na częstotliwości <strong>145.800 MHz FM Wide</strong> w 2-metrowym paśmie amatorskim.</p>
<p>Między obrazami zazwyczaj występuje 2-minutowa przerwa, więc jeśli po odebraniu jednego obrazu usłyszysz ciszę, jest to normalne. Efektem końcowym jest obraz o wymiarach 640px x 496px.</p>
<h2 id="mój-sprzęt">Mój sprzęt</h2>
<h3 id="baofeng-uv-5r">Baofeng UV-5R</h3>
<p>Najprostszym sposobem na odbieranie obrazów SSTV jest użycie taniego ręcznego radiotelefonu, takiego jak Baofeng UV-5R. Użyłem go z ulepszoną anteną - Nagoya NA-771, która jest dostrojona do 144 MHz (wystarczająco blisko 145.800 MHz). To znacznie poprawiło jakość sygnału, zwłaszcza gdy ISS była nisko nad horyzontem.</p>
<p>Aby ustawić częstotliwość, można użyć narzędzia takiego jak <strong>Chirp</strong> do zaprogramowania radia. Ustaw je na 145.800 MHz. Ustawiając Duplex na Off, wyłączysz możliwość przypadkowego nadawania.</p>
<p>Warto wyłączyć Squelch w radiu. Można to zrobić, ustawiając poziom blokady szumów na 0 (najniższe ustawienie). W ten sposób usłyszysz sygnały dźwiękowe nawet przy słabym sygnale. Zaszumiony sygnał jest lepszy niż żaden.</p>
<p>Aby nagrać dźwięk, możesz po prostu przytrzymać telefon przy głośniku i nagrać sygnał dźwiękowy. Ale dla lepszej jakości podłączyłem Baofenga do laptopa za pomocą kabla AUX 3,5 mm (upewnij się, że używasz kabla 4-pinowego, aby faktycznie uzyskać wejście mikrofonowe). Unika to hałasu z głośnika (jak trzaski przy zaszumionych sygnałach) i daje czystszy sygnał do późniejszego dekodowania. Nagrywałem za pomocą programu Audacity.</p>
<p>Po podłączeniu kabla AUX, Baofeng wycisza swój głośnik. Jeśli nadal chcesz słyszeć w czasie rzeczywistym, co jest odbierane (na przykład, aby sprawdzić, czy sygnał jest zaszumiony), możesz użyć narzędzia takiego jak <strong>Helvum</strong> lub innego oprogramowania do krosowania audio, aby przekierować wejście mikrofonowe do głośników laptopa. Audacity również obsługuje monitorowanie wejścia, ale ma niewielkie opóźnienie.</p>
<h3 id="rtl-sdr">RTL-SDR</h3>
<p>Przetestowałem również <strong>odbiornik USB RTL-SDR</strong> z komputerem i oprogramowaniem takim jak <strong>Gqrx</strong>. Chociaż działało, miałem problem z uzyskaniem silnego sygnału - prawdopodobnie dlatego, że antena, której użyłem, nie była dostrojona. Baofeng dał ogólnie lepsze wyniki.</p>
<p>Mimo to, RTL-SDR ma jedną zaletę: Gpredict może współpracować z Gqrx, aby automatycznie dostosować częstotliwość strojenia w celu kompensacji przesunięcia Dopplera. Nie jestem pewien, czy jest to absolutnie konieczne, ale to fajna funkcja.</p>
<p>Jeśli nie masz żadnego z tych urządzeń, możesz poszukać w internecie odbiorników WebSDR, które udostępniają tę funkcjonalność online.</p>
<h2 id="śledzenie-iss">Śledzenie ISS</h2>
<p>Musisz wiedzieć, <strong>kiedy ISS będzie nad Twoją lokalizacją</strong>. Oto niektóre aplikacje i narzędzia, których użyłem do tego celu:</p>
<ul>
<li><strong>ISS Detector</strong> (Android)</li>
<li><strong>Spot the Station</strong> (oficjalna aplikacja NASA)</li>
<li><strong>Gpredict</strong> (Linux)</li>
</ul>
<p>Typowy przelot ISS trwa około 10 minut. Gdy ISS znajdzie się w zasięgu i jeśli akurat nadaje, usłyszysz serię sygnałów dźwiękowych - to jest sygnał SSTV. Obraz w trybie PD-120 potrzebuje nieco ponad 2 minut na przesłanie. W zależności od czasu i kąta przelotu, możesz odebrać jeden, a nawet dwa obrazy na przelot. Jeśli będziesz ich słuchać przez tydzień, możesz nawet zacząć rozpoznawać każdy obraz po jego dźwięku. Czasami może być konieczne poszukanie w aplikacji ustawień, aby pokazywała również przeloty dzienne, ponieważ większość z nich jest przeznaczona do obserwacji stacji gołym okiem, a nie do odbioru radiowego.</p>
<p>Podczas przelotu trzymałem antenę skierowaną w stronę pozycji ISS, korzystając ze śledzenia na żywo w aplikacji. Jeśli sygnał stawał się zaszumiony, dostosowywałem orientację anteny.</p>
<p>Jeśli usłyszysz dźwięk podobny do tego (nagłówek SSTV), oznacza to, że rozpoczyna się transmisja SSTV:</p>
<p><audio controls src="/posts/receiving-images-from-the-iss/SSTV_Header.mp3" preload="metadata"></audio></p>
<p>Spróbuj słuchać o różnych porach dnia, aby przechwycić różne slajdy.</p>
<h2 id="dekodowanie-obrazów">Dekodowanie obrazów</h2>
<p>Gdy już nagrasz dźwięk, możesz go zdekodować na obraz za pomocą oprogramowania SSTV. Oto narzędzia, których użyłem:</p>
<ul>
<li><strong>Linux</strong>: QSSTV</li>
<li><strong>Windows</strong>: MMSSTV</li>
<li><strong>Android</strong>: Robot36</li>
</ul>
<p>Po prostu pozostaw program otwarty podczas nagrywania lub użyj go do późniejszego dekodowania nagrania. Te programy zwykle automatycznie wykrywają tryb PD-120, ale jeśli nie, możesz go wybrać ręcznie.</p>
<p>Jeśli używasz <strong>MMSSTV</strong>, potrzebuje on dźwięku w specjalnym formacie <code>.mmv</code>. Możesz przekonwertować swoje nagranie za pomocą <code>ffmpeg</code>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">ffmpeg -i <span class="s1">&#39;input.mp3&#39;</span> -ac <span class="m">1</span> -ar <span class="m">11025</span> -f s16le -c:a pcm_s16le -y <span class="s2">&#34;output.mmv&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Następnie w MMSSTV przejdź do <strong>&ldquo;File&rdquo; → &ldquo;Play Sound from the file&hellip;&rdquo;</strong> i załaduj plik <code>.mmv</code>.</p>
<p>Testowałem dekodowanie zarówno przy użyciu nagrań z mikrofonu telefonu, jak i bezpośrednich nagrań przez AUX. Bezpośrednie połączenie dało znacznie lepsze wyniki: mniej szumów tła od chrumkania głośnika i lepsza jakość dźwięku.</p>
<p>Jeśli na Twoim obrazie pojawiają się zielone linie, spróbuj dostosować ustawienie slant w oprogramowaniu.</p>
<h3 id="dzielenie-się-obrazami">Dzielenie się obrazami</h3>
<p>Gdy już zdekodujesz kilka obrazów, możesz podzielić się nimi ze społecznością za pośrednictwem <a href="https://ariss-usa.org/ARISS_SSTV/">Galerii SSTV ARISS</a>. Możesz nawet otrzymać certyfikat uczestnictwa, jeśli prześlesz je podczas aktywnego wydarzenia. To świetny sposób, aby stać się częścią globalnego wysiłku krótkofalarskiego.</p>
<h2 id="otrzymanie-karty-qsl">Otrzymanie karty QSL</h2>
<p><strong>Aktualizacja:</strong> Niedawno otrzymałem kartę QSL potwierdzającą mój odbiór!</p>
<p>Jeśli chcesz mieć fizyczną pamiątkę z tego wydarzenia, możesz poprosić o <strong>kartę QSL</strong> - pisemne potwierdzenie odbioru sygnału radiowego. Ja wysłałem zgłoszenie bezpośrednio (Direct), a nie przez biuro.</p>
<p>Aby dowiedzieć się, dokąd wysłać raport, sprawdź <a href="https://www.ariss.org/qsl-cards.html">stronę kart QSL ARISS</a> dla swojego regionu. Dla Europy menedżer QSL znajduje się we Francji.</p>
<p>Przy bezpośredniej prośbie międzynarodowej zazwyczaj dołącza się zaadresowaną kopertę zwrotną (SAE) oraz kupon IRC (International Reply Coupon) lub „Green Stamps&quot; (dolary amerykańskie) na pokrycie kosztów przesyłki zwrotnej. Deutsche Post jednak już nie sprzedaje IRC-ów.</p>
<p>Ponieważ wysyłałem do Francji, znalazłem praktyczne obejście: kupiłem znaczki bezpośrednio na stronie La Poste (francuskiej poczty), wydrukowałem je i przykleiłem na kopercie zwrotnej.</p>
<p>Gotową kopertę włożyłem do głównej koperty razem z raportem odbioru i wysłałem.</p>
<figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/iss_postcard.jpg"
         alt="Złożony obraz przedstawiający obie strony karty QSL ARISS. Góra: zdjęcie ISS nad Ziemią z niebieskim oceanem, znaki wywoławcze NA1SS, RS0ISS i OR4ISS. Dół: szczegóły techniczne i odręczna tabela potwierdzająca odbiór sygnałów SSTV przez &#39;Jonatan Miarecki&#39; (SWL) 15 i 17 lipca 2025 na 145.800 MHz."/> <figcaption>
            <p>Oficjalna karta QSL, którą otrzymałem. U góry: awers karty z ISS i znakami wywoławczymi. Na dole: rewers z odręcznym potwierdzeniem.</p>
        </figcaption>
</figure>

<h2 id="galeria-obrazów">Galeria Obrazów</h2>
<p>Oto niektóre z obrazów, które udało mi się odebrać podczas wydarzenia SSTV w lipcu 2025 roku. Do każdego obrazu dołączyłem pliki dźwiękowe, abyś mógł usłyszeć tony SSTV, które zostały przesłane.</p>
<p><figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/ISS_20250717_215917.webp"
         alt="Obraz SSTV z ISS, slajd 1 z 12, upamiętniający 40. rocznicę misji STS-51F. Obraz przedstawia dwa logotypy na tle czarnego, gwiaździstego nieba. Po lewej stronie znajduje się okrągła naszywka misji Spacelab 2, przedstawiająca prom kosmiczny nad Ziemią. Po prawej stronie znajduje się prostokątne logo SAREX (Shuttle Amateur Radio Experiment), również z promem i Ziemią. Tekst poniżej identyfikuje je jako &#39;Logotypy misji STS-51F i SAREX&#39;."/> <figcaption>
            <p>Slajd 1/12 - <a href="../../../posts/receiving-images-from-the-iss/ISS_20250717_215917.mp3">Plik dźwiękowy</a></p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/ISS_20250716_011150.webp"
         alt="Obraz SSTV z ISS, slajd 2 z 12. Obraz przedstawia siedmioosobową załogę misji promu kosmicznego Challenger, unoszącą się razem w środowisku mikrograwitacji modułu Spacelab. Wszyscy astronauci mają na sobie okulary przeciwsłoneczne i uśmiechają się do grupowego zdjęcia. Tekst na dole głosi &#39;Załoga STS-51F&#39;."/> <figcaption>
            <p>Slajd 2/12 - <a href="../../../posts/receiving-images-from-the-iss/ISS_20250716_011150.mp3">Plik dźwiękowy</a></p>
        </figcaption>
</figure>
</p>
<figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/ISS_20250715_233553.webp"
         alt="Obraz SSTV z ISS, slajd 3 z 12, 40. rocznica. Obraz przedstawia portret astronauty Tony&#39;ego Englanda, który uśmiecha się i patrzy w kierunku aparatu. Ma na sobie niebieską koszulkę polo z naszywką misji na piersi. Tło ukazuje wnętrze promu. Tekst na dole identyfikuje obraz jako &#39;Obraz SSTV Tony&#39;ego Englanda W0ORE&#39;. Obraz ma lekko niebieskawy odcień."/> <figcaption>
            <p>Slajd 3/12 - <a href="../../../posts/receiving-images-from-the-iss/ISS_20250715_233553.mp3">Plik dźwiękowy</a></p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/ISS_20250719_002157.webp"
         alt="Obraz SSTV z ISS, slajd 9 z 12, upamiętniający 50. rocznicę misji Apollo-Sojuz. Obraz to formalny portret grupowy amerykańskich astronautów i radzieckich kosmonautów. Członkowie załogi pozują razem przed flagami amerykańską i radziecką, trzymając model zadokowanych statków Apollo i Sojuz. Tekst na dole głosi &#39;Załoga Apollo Sojuz&#39;."/> <figcaption>
            <p>Slajd 9/12 - <a href="../../../posts/receiving-images-from-the-iss/ISS_20250719_002157.mp3">Plik dźwiękowy</a></p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/ISS_20250718_224608.webp"
         alt="Obraz SSTV z ISS, slajd 10 z 12, upamiętniający 50. rocznicę misji Apollo-Sojuz. Obraz przedstawia zestawienie dwóch startów rakiet. Po lewej stronie widać startującą rakietę Sojuz ze swojej wyrzutni. Po prawej stronie widać rakietę Apollo Saturn V na wieży startowej. Podpis pod spodem głosi &#39;Starty Sojuza (P) i Apollo (L)&#39;."/> <figcaption>
            <p>Slajd 10/12</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="/posts/receiving-images-from-the-iss/ISS_20250718_225030.webp"
         alt="Obraz SSTV z ISS, slajd 11 z 12, z okazji 50. rocznicy misji Apollo-Sojuz. Obraz przedstawia artystyczną wizję statków kosmicznych Apollo i Sojuz zadokowanych razem na orbicie nad Ziemią. Poniżej statków kosmicznych znajdują się portrety pięciu członków załogi: astronautów Thomasa Stafforda, Vance&#39;a Branda i Deke&#39;a Slaytona oraz kosmonautów Aleksieja Leonowa i Walerija Kubasowa. Tekst na dole głosi &#39;Artystyczna wizja Apollo Sojuz&#39;."/> <figcaption>
            <p>Slajd 11/12</p>
        </figcaption>
</figure>

]]></content:encoded></item><item><title>Konfiguracja Web Key Directory</title><link>https://miarecki.eu/pl/posts/konfiguracja-web-key-directory/</link><pubDate>Sun, 17 Mar 2024 15:00:00 +0000</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/pl/posts/konfiguracja-web-key-directory/</guid><description>Web Key Directory (WKD) to protokół umożliwiający odkrywanie publicznych kluczy OpenPGP przesłanych na własny serwer w celu zabezpieczenia komunikacji.</description><content:encoded> <![CDATA[<p>Uzyskanie klucza PGP jest łatwe, ale podzielenie się nim z innymi może być kłopotliwe.</p>
<h2 id="dlaczego-używać-web-key-directory">Dlaczego używać Web Key Directory</h2>
<p>Udostępnianie swojego publicznego klucza jest ważne dla zabezpieczenia komunikacji, ponieważ pozwala innym na szyfrowanie wiadomości, które tylko Ty z odpowiadającym prywatnym kluczem możesz odszyfrować i zweryfikować, że wiadomości pochodzą od Ciebie. Jest to szczególnie ważne dla poczty e-mail, która domyślnie nie jest szyfrowana i może być przechwycona i odczytana przez podmiot obsługujący e-mail. Wymaga to jednak, aby odbiorca miał Twój publiczny klucz, który musi być udostępniony.</p>
<h3 id="tradycyjne-sposoby-udostępniania-publicznego-klucza">Tradycyjne sposoby udostępniania publicznego klucza</h3>
<p>Tradycyjnym sposobem udostępniania publicznego klucza jest przesłanie go na serwer kluczy, ale ta metoda ma swoje wady. Każdy może przesłać klucz na serwer kluczy, a nie ma sposobu na zweryfikowanie, czy klucz rzeczywiście należy do osoby, do której twierdzi, że należy.</p>
<p>Inną opcją byłoby pobranie klucza ze strony internetowej osoby, ale znalezienie klucza byłoby o wiele trudniejsze, ponieważ strona każdego byłaby inna i nadal wymagałoby ręcznej pracy, aby uzyskać klucz.</p>
<p>Nawet wysłanie klucza przez e-mail nie jest dobre, ponieważ pierwszy e-mail byłby nieszyfrowany, a klucz mógłby być przechwycony i zastąpiony złośliwym, a nadal wymagałby ręcznej pracy do importu klucza.</p>
<h3 id="rozwiązanie">Rozwiązanie</h3>
<p>Tutaj pojawia się Web Key Directory. <dfn title="Web Key Directory">WKD</dfn> to protokół umożliwiający odkrywanie publicznych kluczy OpenPGP przesłanych na serwery osób, omijając potrzebę dedykowanych serwerów kluczy i umożliwiając większą kontrolę nad kluczami. Korzystając z HTTPs do uzyskania klucza, możesz być trochę pewniejszy, że klucz używany dla adresu e-mail został dystrybuowany przez właściciela domeny, który może być tą samą osobą.</p>
<p>WKD pozwala klientom poczty e-mail, takim jak Thunderbird, na automatyczne odkrywanie publicznego klucza odbiorcy i bezpośrednie użycie go podczas pierwszej rozmowy.</p>
<h2 id="konfiguracja-web-key-directory">Konfiguracja Web Key Directory</h2>
<p>WKD ma dwa rodzaje konfiguracji: konfigurację bezpośrednią i zaawansowaną. Pomimo swoich nazw, obie wymagają mniej więcej tych samych kroków. Konfiguracja bezpośrednia nie wymaga dodatkowych wpisów DNS, podczas gdy konfiguracja zaawansowana wymaga utworzenia subdomeny o nazwie <code>openpgpkey</code>, która zostanie najpierw przetestowana, zanim przejdzie do konfiguracji bezpośredniej.</p>
<h3 id="wymagania">Wymagania</h3>
<ol>
<li>
<p>Domena:</p>
<p>Domena jest wymagana do hostowania publicznego klucza, ponieważ w przeciwnym razie nie mogłbyś używać WKD. Dla podstawowej konfiguracji wystarczy umiejętność umieszczenia plików w katalogu <code>.well-known</code> Twojej domeny. Dla zaawansowanej konfiguracji musisz być w stanie utworzyć subdomenę o nazwie <code>openpgpkey</code> i umieścić pliki w katalogu <code>.well-known</code> tej subdomeny.</p>
</li>
<li>
<p>Publiczny klucz, który pasuje do adresu e-mail hostowanego na domenie</p>
</li>
<li>
<p>Serwer WWW:</p>
<p>Serwer WWW jest wymagany do hostowania publicznego klucza. Jeśli nie masz hostingu WWW lub nie możesz kontrolować serwera WWW, możesz skorzystać z <a href="https://keys.openpgp.org/about/usage#wkd-as-a-service">WKD-as-a-service Openpgp.org</a>. Ta usługa pozwala na hostowanie publicznego klucza na ich serwerach, wykorzystując zaawansowaną konfigurację. Ten sposób ma wadę braku pełnej kontroli nad kluczem i zawiera wszystkie dostępne klucze dla tej tożsamości.</p>
</li>
</ol>
<h3 id="uzyskanie-hasza">Uzyskanie hasza</h3>
<p>Podstawowy tryb oczekuje klucza pod tym adresem: <code>https://{domena}/.well-known/openpgpkey/hu/{hash}?l={nazwa-e-mail}</code> gdzie {domena} to domena adresu e-mail, {hash} to hash WKD adresu e-mail i {nazwa-e-mail} to część nazwy adresu e-mail przed @ z użyciem odpowiedniego unikania znaków.</p>
<p>Zaawansowany tryb jest podobny, ale używa subdomeny openpgpkey i zawiera domenę w małych literach w ścieżce, tak jak poniżej: <code>https://openpgpkey.{domena}/.well-known/openpgpkey/{domena}/hu/{hash}?l={nazwa-e-mail}</code></p>
<p>Hash jest obliczany przez wzięcie części lokalnej adresu e-mail (część przed @), zamienienie wszystkich znaków ASCII na małe litery i zahashowanie jej za pomocą algorytmu SHA-1. Wynikowy 160-bitowy skrót jest kodowany za pomocą metody <a href="https://philzimmermann.com/docs/human-oriented-base-32-encoding.txt">Z-Base-32</a> w celu utworzenia 32-oktetowego ciągu. Ten ciąg jest następnie używany jako hash w adresie URL. Nie musisz jednak robić tego ręcznie, ponieważ narzędzie wiersza poleceń gpg może to zrobić za Ciebie.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Konkretny klucz:</span>
</span></span><span class="line"><span class="cl">gpg --with-wkd-hash --fingerprint jan@example.com
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Wszystkie przechowywane klucze:</span>
</span></span><span class="line"><span class="cl">gpg --list-keys --with-wkd-hash
</span></span></code></pre></td></tr></table>
</div>
</div><p>Otrzymasz coś w rodzaju:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="hl"><span class="lnt">4
</span></span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">pub   ed25519 2024-03-17 [SC] [expires: 2026-03-17]
</span></span><span class="line"><span class="cl">      9D8A 1793 98A8 9449 29C2  AAE6 00ED 46C4 145C 61FE
</span></span><span class="line"><span class="cl">uid           [ultimate] Jan Kowalski &lt;jan@example.com&gt;
</span></span><span class="line hl"><span class="cl">              nuu38srs5zrcw4etqt3nt4drcu8wrydf@example.com
</span></span><span class="line"><span class="cl">sub   cv25519 2024-03-17 [E] [expires: 2026-03-17]
</span></span></code></pre></td></tr></table>
</div>
</div><p>Hash jest przed @ w adresie e-mail, który w tym przypadku to</p>
<p>Teraz, gdy masz hash, musisz zapisać niezamaskowaną wersję klucza publicznego w lokalizacji hasha, co możesz zrobić za pomocą następującego polecenia:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --no-armor --export jan@example.com
</span></span></code></pre></td></tr></table>
</div>
</div><p>Bądź ostrożny na Windows, ponieważ nie używa operatora przekierowania <code>&gt;</code> poprawnie i dane binarne zostają pomieszane. Rozważ użycie Git Bash lub WSL, aby temu zapobiec.</p>
<h3 id="dns">DNS</h3>
<p>Jeśli planujesz korzystać z zaawansowanej konfiguracji, musisz utworzyć subdomenę o nazwie <code>openpgpkey</code> i mieć serwer www serwujący klucze stamtąd. Jeśli korzystasz z metody bezpośredniej, musisz upewnić się, że subdomena openpgpkey nie odpowiada. Na przykład, gdy używasz rekordów DNS typu wildcard, upewnij się, że subdomena openpgpkey nie jest objęta wildcardingiem. Można to zrobić, dodając pusty rekord TXT dla tej subdomeny, co zapobiegnie wpływowi rekordów DNS typu wildcard na rekord DNS openpgp, ponieważ najpierw próbuje się metody zaawansowanej, zanim nastąpi powrót do metody bezpośredniej.</p>
<h3 id="przesyłanie-klucza">Przesyłanie klucza</h3>
<p>Klucz musi być przesłany na serwer www w lokalizacji hasha odpowiedniej dla wybranej konfiguracji. Powinien być serwowany jako <code>application/octet-stream</code> i zezwalać na dostęp z dowolnego miejsca za pomocą nagłówka <code>Access-Control-Allow-Origin: *</code>.</p>
<p>Przykładowe konfiguracje dla nginx mogą wyglądać tak:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-nginx" data-lang="nginx"><span class="line"><span class="cl"><span class="k">location</span> <span class="s">^~</span> <span class="s">/.well-known/openpgpkey</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">   <span class="kn">default_type</span> <span class="s">application/octet-stream</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">   <span class="kn">add_header</span> <span class="s">Access-Control-Allow-Origin</span> <span class="s">*</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">   <span class="kn">alias</span> <span class="s">/path/to/openpgpkey</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>albo dla Clodflare pages przez utworzenie pliku _headers w katalogu wyjściowym:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="l">/.well-known/openpgpkey/*</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">   </span><span class="nt">Content-Type</span><span class="p">:</span><span class="w"> </span><span class="l">application/octet-stream</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">   </span><span class="nt">Access-Control-Allow-Origin</span><span class="p">:</span><span class="w"> </span>*<span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><h3 id="dodanie-pliku-policy">Dodanie pliku policy</h3>
<p>Specyfikacja wymaga, aby plik flag polityki był serwowany. Ten plik jest wymagany nawet jeśli protokół aktualizacji Web Key Directory nie jest obsługiwany, co jest protokołem, który umożliwia automatyczną aktualizację i dodawanie klucza publicznego. Ale to nie będzie potrzebne, ponieważ klucze będą statycznie hostowane i serwowane.</p>
<p>Plik flag polityki może być pustym plikiem. Dla konfiguracji bezpośredniej musi być serwowany pod <code>/.well-known/openpgpkey/policy</code>, a dla konfiguracji zaawansowanej pod <code>/.well-known/openpgpkey/{domena}/policy</code>.</p>
<h2 id="testowanie-konfiguracji">Testowanie konfiguracji</h2>
<p>Możesz przetestować swoją konfigurację za pomocą następującego polecenia GnuPG, które spróbuje pobrać klucz z serwera:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --auto-key-locate clear,nodefault,wkd --locate-keys jan@example.com
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg: key 00ED46C4145C61FE: public key <span class="s2">&#34;jan@example.com&#34;</span> imported
</span></span><span class="line"><span class="cl">gpg: Total number processed: <span class="m">1</span>
</span></span><span class="line"><span class="cl">gpg:               imported: <span class="m">1</span>
</span></span><span class="line"><span class="cl">pub   ed25519 2024-03-17 <span class="o">[</span>SC<span class="o">]</span> <span class="o">[</span>expires: 2026-03-17<span class="o">]</span>
</span></span><span class="line"><span class="cl">      9D8A179398A8944929C2AAE600ED46C4145C61FE
</span></span><span class="line"><span class="cl">uid           jan@example.com
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dla codziennego użytku możesz po prostu użyć <code>--locate-keys</code> w gpg, aby automatycznie pobrać klucz z serwera lub poszukać odpowiedniej opcji w swoim kliencie poczty.</p>
<h2 id="podsumowanie">Podsumowanie</h2>
<p>Ustawienie Web Key Directory to świetny sposób na udostępnianie swojego publicznego klucza innym.
Pozwala na automatyczne odkrywanie publicznego klucza na przykład w klientach poczty e-mail i umożliwia większą kontrolę nad kluczem, ponieważ jest hostowany na Twoim własnym serwerze i umożliwia komunikację bez ręcznej wymiany klucza. Pozwala również na usunięcie starych lub unieważnionych kluczy z serwera, co nie jest możliwe z tradycyjnymi serwerami kluczy, które będą przechowywać klucz na zawsze, zatruwając serwer kluczy starymi kluczami.</p>
<p>Źródła:</p>
<ul>
<li><a href="https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-service/">OpenPGP Web Key Directory Internet-Draft</a></li>
</ul>
]]></content:encoded></item><item><title>Modyfikacja IKEA ISKÄRNA na Zigbee</title><link>https://miarecki.eu/pl/posts/modyfikacja-ikea-iskaerna-zigbee/</link><pubDate>Fri, 01 Mar 2024 22:00:00 +0100</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/pl/posts/modyfikacja-ikea-iskaerna-zigbee/</guid><description>Ten projekt modyfikacji ma na celu zastąpienie oryginalnej płytki sterującej lampy IKEA ISKÄRNA własną, umożliwiającą sterowanie lampą za pomocą Zigbee.</description><content:encoded> 
&lt;figure class="entry-cover">
        &lt;img loading="lazy" src="https://miarecki.eu/posts/modding-an-ikea-iskaerna-zigbee/modified_iskaerna.webp" alt="Zmodyfikowana lampa IKEA ISKÄRNA świecąca na czerwono w pokoju">
&lt;/figure>
<![CDATA[<p>Lampa <a href="https://www.ikea.com/pl/pl/p/iskaerna-lampa-stolowa-led-kolorowa-10492479/">IKEA ISKÄRNA</a> to stylowy dodatek do każdego domu, ale jej oryginalny design ogranicza funkcjonalność do ręcznej kontroli za pomocą pojedynczego przycisku. Ten projekt modyfikacji ma na celu rozszerzenie możliwości lampy poprzez zastąpienie oryginalnej płytki sterującej własną, umożliwiającą sterowanie lampą za pomocą Zigbee, w tym integrację z Home Assistant. Pozwala to na zautomatyzowaną kontrolę, niestandardowe efekty i zdalne sterowanie lampą.</p>
<h2 id="wymagane-materiały">Wymagane materiały</h2>
<ul>
<li>Lampa IKEA ISKÄRNA</li>
<li>Kontroler LED 24V (Zigbee lub inny)</li>
<li>Lutownica</li>
<li>Druty</li>
<li>Śrubokręt</li>
<li>Klej</li>
<li>Opcjonalny przycisk</li>
</ul>
<h2 id="demontaż">Demontaż</h2>
<p>Pierwszym krokiem jest demontaż lampy. Lampa jest trzymana przez pojedynczą śrubę z tyłu, którą można usunąć za pomocą śrubokręta. Po usunięciu śruby, lampę można otworzyć, wyciągając górną część z dolnej.</p>
<figure>
    <img loading="lazy" src="/posts/modding-an-ikea-iskaerna-zigbee/original_board.webp"
         alt="Wewnętrzna płyta sterująca lampy IKEA ISKÄRNA"/> <figcaption>
            Wewnętrzna płyta sterująca lampy IKEA ISKÄRNA
        </figcaption>
</figure>

<h2 id="wymiana-płytki-sterującej">Wymiana płytki sterującej</h2>
<p>Następnie, aby zastąpić oryginalną płytkę sterującą własną, oryginalną płytę należy usunąć. Aby to zrobić, odłóż druty od oryginalnej płytki i wyjmij ją z lampy, pamiętając, który kabel idzie gdzie (+, -, i diody LED). Oryginalna płyta jest przewodzona jako RBG+, ale przynajmniej oznaczyli poszczególne kable kształtami, więc można je od siebie odróżnić.</p>
<p>Własna płyta może być następnie przylutowana w miejsce oryginalnej płyty, a druty podłączone do odpowiednich pinów. Zachowując oryginalne zasilanie, nie są wymagane żadne modyfikacje zasilania, a nową płytę można po prostu podłączyć do oryginalnego gniazda zasilania wewnątrz lampy.</p>
<p>Aby przycisk nadal działał, potrzebna jest odpowiednia płyta. Jednak jest to bardzo trudne do znalezienia, więc po prostu dołączyłem nowy przycisk do nowej płyty i podłączyłem go do przycisku nowej płyty. W ten sposób oryginalny przycisk nadal działa. Pozwala to nadal na ręczną kontrolę światła i sparowanie go w przypadku użycia modułu Zigbee.</p>
<h2 id="ponowne-zmontowanie">Ponowne zmontowanie</h2>
<figure>
    <img loading="lazy" src="/posts/modding-an-ikea-iskaerna-zigbee/iskaerna_reasembly.webp"
         alt="Lampa IKEA ISKÄRNA zdemontowana"/> <figcaption>
            Lampa IKEA ISKÄRNA przed ponownym zmontowaniem
        </figcaption>
</figure>

<p>Jeśli dodałeś własny przycisk do nowej płyty, musisz go przykleić do przesuwnego elementu wewnątrz lampy, który pierwotnie trzymał przycisk. Następnie możesz również przykleić nową płytę do dolnej części lampy. Gdy nowa płyta jest na miejscu, lampę można złożyć, kładąc górną część na dolną i ponownie skręcając.</p>
<h2 id="podsumowanie">Podsumowanie</h2>
<figure>
    <img loading="lazy" src="/posts/modding-an-ikea-iskaerna-zigbee/modified_iskaerna.webp"
         alt="Zmodyfikowana lampa IKEA ISKÄRNA świecąca na czerwono w pokoju"/> <figcaption>
            Zmodyfikowana lampa IKEA ISKÄRNA
        </figcaption>
</figure>

<p>Po sparowaniu nowej płyty z siecią Zigbee, teraz możesz sterować światłem z Home Assistant, ustawić je tak, aby włączało się automatycznie lub używać niestandardowych efektów. Ten projekt modyfikacji pozwala na bardziej wszechstronne wykorzystanie lampy IKEA ISKÄRNA, zwiększając jej funkcjonalność i integrację z systemami smart home.</p>
<p>W zależności od tego, jaki kontroler LED używasz, możliwości się zmieniają. Na przykład, z niektórymi kontrolerami LED, można połączyć lampę z Philips Hue lub z własnym systemem smart home IKEI (TRÅDFRI, DIRIGERA). Przed modyfikacją nie było to możliwe, ponieważ lampa mogła być tylko sterowana ręcznie.</p>
<p>Możesz go ustawić jako automatyczną lampkę nocną lub symulować wschód słońca rano.</p>
]]></content:encoded></item><item><title>Czytnik licznika Smart Meter Language</title><link>https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/</link><pubDate>Mon, 27 Nov 2023 21:01:33 +0100</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/</guid><description>Ten projekt polega na odczytywaniu licznika energii elektrycznej za pomocą interfejsu SML i głowicy odczytu podczerwieni do lokalnej automatyki domowej</description><content:encoded> 
&lt;figure class="entry-cover">
        &lt;img loading="lazy" srcset='https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL_hu_a85831a0b06f8754.jpg 360w,https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL_hu_a3acca6a8bcc372b.jpg 480w,https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL_hu_cb1957fee5b386b2.jpg 720w,https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL_hu_e247f080a180d8e0.jpg 1080w,https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL.jpg 1200w' src="https://miarecki.eu/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL.jpg"
            sizes="(min-width: 768px) 720px, 100vw" width="1200" height="1084"
            alt="Układ projektu, pokazujący połączenie między W5500-EVB-Pico a głowicą odczytu podczerwieni, która odczytuje licznik energii elektrycznej.">
&lt;/figure>
<![CDATA[<p>Rozwój w dziedzinie automatyki domowej otwiera coraz to nowe możliwości efektywnego sterowania zużyciem energii w naszych domach. Istotnym krokiem w tym kierunku jest odczyt danych z inteligentnych liczników energii elektrycznej, aby uzyskać szczegółowe informacje o zużyciu energii. Dokładnie dlatego stworzyłem &ldquo;<dfn title="Smart Message Language">SML</dfn>-Reader&rdquo;, aby odczytywać dane w języku Smart Message Language, a następnie wysyłać je do systemów automatyki domowej, takich jak Home Assistant, za pomocą MQTT.</p>
<hr>
<h2 id="dlaczego-ten-projekt">Dlaczego ten projekt?</h2>
<p>Pomysł na ten projekt powstał z istniejących materiałów. Z już dostępnym W5500-EVB-Pico i potrzebą niezawodnego połączenia Ethernet w piwnicy, gdzie WLAN jest słaby, narodziła się motywacja do zaimplementowania Smart Message Language-Reader. W5500-EVB-Pico, niedroga i łatwa w użyciu płyta z mikrokontrolerem z portem Ethernet, zapewnia idealną podstawę do tego projektu. Ponadto ma dwa sprzętowe porty szeregowe, które pozwalają zarówno na połączenie z komputerem, jak i z głowicą odczytu podczerwieni.</p>
<p>Trudności w znalezieniu odpowiedniego oprogramowania z obsługą Ethernetu dla układu RP2040 (używanego w EVB-Pico) wzmocniły pragnienie opracowania rozwiązania na miarę. Na przykład Tasmota lub Tasmota nie są jeszcze dostępne dla układu RP2040 z W5500.</p>
<p>Kolejną przeszkodą było określenie kodów OBIS, które różnią się w zależności od licznika inteligentnego i konfiguracji. Jednak można to łatwo ustalić, korzystając z programu.</p>
<p>Ten projekt został umożliwiony dzięki Smart Message Language, która jest standardem transmisji danych o zużyciu energii. Smart Message Language jest używany w Niemczech do komunikacji między inteligentnymi licznikami a bramką inteligentnego licznika. SML jest również używany w innych krajach, takich jak Austria, Szwajcaria i Holandia.</p>
<h2 id="szczegóły-projektu">Szczegóły projektu</h2>
<h3 id="obsługiwane-liczniki-inteligentne">Obsługiwane liczniki inteligentne</h3>
<p>SML-Reader jest kompatybilny ze wszystkimi licznikami inteligentnymi obsługującymi protokół SML. Pomyślnie przetestowałem system z <a href="https://www.apator.com/de/produkte/strom/strommessung/moderne-messeinrichtung/picus">Apator PICUS</a>. Wyświetlane dane zależą od obsługiwanych i skonfigurowanych funkcji w liczniku inteligentnym. W niektórych przypadkach konieczne może być wykonanie pewnych ustawień w liczniku, takich jak wyłączenie PIN-u lub włączenie rozszerzonych trybów pracy (InF). Niektóre dane wymagają również ręcznego aktywowania przez interfejs LMN przez operatora sieci.</p>
<p>Dodatkowe kody OBIS można dodać, edytując listę obsługujących OBIS.</p>
<h3 id="sprzęt-i-oprogramowanie">Sprzęt i oprogramowanie</h3>
<ul>
<li><a href="https://docs.wiznet.io/Product/iEthernet/W5500/w5500-evb-pico">Płyta z mikrokontrolerem W5500-EVB-Pico</a></li>
<li>Licznik energii elektrycznej zgodny z SML</li>
<li>Kabel Ethernet i połączenie</li>
<li>Połączenie zasilania</li>
<li>Serwer MQTT</li>
<li><a href="https://platformio.org/">PlatformIO</a> IDE</li>
<li>Projekt <a href="https://github.com/JonatanMGit/SML-Reader">SML-Reader</a></li>
</ul>
<h3 id="konfiguracja-sml-reader">Konfiguracja SML-Reader</h3>
<p>Edytuj plik <code>config.h</code> w projekcie SML-Reader, aby wprowadzić informacje o połączeniu do serwera MQTT. Tutaj wprowadzasz dane logowania MQTT. Dalsze ustawienia, takie jak statyczny adres IP lub inne kody OBIS, można dokonać w main.cpp.</p>
<p>Po zapisaniu pliku konfiguracyjnego możesz ponownie wgrać SML-Reader, aby zastosować zmiany. Plik konfiguracyjny jest zapisywany podczas wgrywania. Dynamiczna konfiguracja za pośrednictwem interfejsu sieciowego jest w toku.</p>
<p>Głowica odczytu musi również być podłączona poprawnie. Standardowe połączenia na płycie W5500-EVB-Pico wyglądają następująco:</p>
<ul>
<li>TX: GPIO04</li>
<li>RX: GPIO05</li>
<li>GND: GND</li>
<li>VCC: 3V3</li>
</ul>
<p>Konfiguracja powinna wyglądać tak:</p>
<figure>
    <img loading="lazy" src="/pl/posts/ha-licznik-sml/ha-licznik-sml/SML-Reader-PL.svg"
         alt="Diagram konfiguracji SML-Reader, pokazujący połączenie między W5500-EVB-Pico a głowicą odczytu podczerwieni. Piny są wymienione powyżej." width="100%"/> <figcaption>
            Diagram konfiguracji SML-Reader
        </figcaption>
</figure>

<p>Te połączenia pochodzą z drugiego sprzętowego szeregowego układu RP2040. Pierwszy sprzętowy szeregowy jest używany do połączenia z komputerem. Drugi sprzętowy szeregowy jest używany do połączenia z głowicą odczytu (UART0/UART1 i UART2)</p>
<h3 id="wgrywanie-sml-reader-z-platformio-w-vscode">Wgrywanie SML-Reader z PlatformIO w VSCode</h3>
<ol>
<li>Zainstaluj PlatformIO w VSCode</li>
<li>Sklonuj projekt <a href="https://github.com/JonatanMGit/SML-Reader">SML-Reader</a></li>
<li>Otwórz projekt w VSCode. PlatformIO powinno zobaczyć opcję kompilacji projektu bezpośrednio (wgrywanie)</li>
<li>Po skompilowaniu i wgraniu projektu SML-Reader powinien być gotowy do użycia.</li>
</ol>
<p>Jeśli wystąpią problemy z wgrywaniem, można również ręcznie skopiować pliki UF2 do urządzenia (trzymając Bootsel wciśnięty podczas tego procesu).</p>
<p>Po pomyślnym wgraniu SML-Reader powinien odbierać dane z licznika energii elektrycznej, a następnie wysyłać je do serwera MQTT.</p>
<h2 id="odczytywanie-danych-mqtt-w-home-assistant">Odczytywanie danych MQTT w Home Assistant</h2>
<p>Urzadzenie powinno teraz automatycznie wysyłać dane do serwera MQTT. Korzystając z <a href="https://www.home-assistant.io/integrations/mqtt#discovery-options">MQTT Discovery</a>, czujniki są automatycznie tworzone w Home Assistant. Czujniki można następnie wykorzystać w Home Assistant. Jeśli tak się nie stanie, zawsze można ręcznie wstawić zmierzone wartości w Home Assistant za pośrednictwem config.yaml.</p>
<p>Dane są wysyłane do <code>homeassistant/sensor/w5500-evb-pico/&lt;nazwa-wartości&gt;/state</code>, jeśli chcesz je zintegrować z innymi systemami.</p>
<h2 id="interfejs-sieciowy">Interfejs sieciowy</h2>
<p>Projekt ma interfejs sieciowy, który umożliwia wyświetlanie danych odczytanych z licznika energii elektrycznej. Interfejs jest dostępny za pośrednictwem adresu IP lub nazwy mDNS SML-Reader. Wyświetlane dane zależą od obsługiwanych i skonfigurowanych funkcji w liczniku inteligentnym.</p>
<h2 id="podsumowanie">Podsumowanie</h2>
<p>Projekt jest niedrogim i prostym rozwiązaniem do odczytywania danych SML z licznika inteligentnego, a następnie wysyłania ich do systemów automatyki domowej, takich jak Home Assistant, za pośrednictwem MQTT. Użycie W5500-EVB-Pico pozwala na niezawodne połączenie Ethernetowe, co jest korzystne dla lokalnej automatyki domowej. Interfejs sieciowy oferuje łatwy sposób na wyświetlanie danych z licznika energii elektrycznej. Użycie PlatformIO pozwala na łatwą instalację i konfigurację projektu.</p>
<h3 id="dalsze-informacje">Dalsze informacje</h3>
<p>Wielkie podziękowania dla biblioteki <a href="https://github.com/olliiiver/sml_parser">SML Parser</a>, która stanowi podstawę tego projektu.</p>
<p>Więcej informacji można znaleźć na stronie wersji niemieckiej.</p>
]]></content:encoded></item><item><title>Teoria eteru i eksperyment Michelsona-Morleya</title><link>https://miarecki.eu/pl/posts/teoria-eteru/</link><pubDate>Mon, 08 May 2023 17:00:08 +0000</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/pl/posts/teoria-eteru/</guid><description>Teoria eteru i eksperyment Michelsona-Morleya były ważnymi krokami w historii fizyki. Ten wpis na blogu wyjaśnia eksperyment i jego wyniki.</description><content:encoded> <![CDATA[<p>Ten wpis na blogu ma alternatywną wersję wideo, jeśli wolisz taką. Wideo można <a href="https://www.youtube.com/watch?v=F8t01xqgmCk">obejrzeć na YouTube</a>.</p>
<hr>
<p>Eksperyment Michelsona-Morleya to ważny eksperyment fizyczny przeprowadzony pod koniec XIX wieku.</p>
<p>Już wcześniej wiedziano, że światło rozchodzi się w postaci fal i porównywano je do fal wodnych, które wymagają ośrodka, a mianowicie wody. Michelson i Morley uważali, że światło musi również mieć ośrodek, a mianowicie eter, i chcieli to udowodnić za pomocą eksperymentu.</p>
<h2 id="czym-jest-eter">Czym jest eter?</h2>
<p>Eter jest hipotetycznym ośrodkiem, przez który światło rozchodzi się w całym wszechświecie. Tę ideę można łatwo zilustrować przykładami z życia codziennego, takimi jak fale wodne lub fale dźwiękowe, które również wymagają ośrodka do propagacji. Wtedy uważano, że ośrodek eteru istnieje w całym wszechświecie, aby umożliwić światłu propagację. Nie musi być również gęsty, ponieważ planety nie są przez niego wpływane.</p>
<h3 id="zachowanie-eteru">Zachowanie eteru</h3>
<p>Zakładano również, że eter jest w spoczynku i nie porusza się razem z Ziemią, podobnie jak powietrze wokół samochodu. Gdy obiekt jest przesuwany przez eter, powstaje rodzaj wiatru eteru, podobnie jak wiatr powstający wokół poruszającego się obiektu.</p>
<p>Wraz z ruchem Ziemi powinien powstać wiatr eteru. Eksperyment Michelsona i Morleya miał na celu potwierdzenie teorii eteru za pomocą wiatru eteru. Cokolwiek porusza się z wiatrem eteru musi poruszać się szybciej niż przeciwko wiatrowi eteru, podobnie jak samolot. Jeśli lecisz pod wiatr, będziesz wolniejszy niż z wiatrem. Jeśli masz boczny wiatr, czyli wiatr wieje z lewej lub prawej strony, to również nie zmienia prędkości.</p>
<p>Dokładnie to zachowanie chcieli zbadać Michelson i Morley swoim eksperymentem.</p>
<p>Gdyby eter był rzeczywisty, światło musiałoby zachowywać się dokładnie tak samo jak samolot, latając szybciej, gdy ma wiatr z tyłu, a wolniej, gdy leci pod wiatr.</p>
<h2 id="eksperyment">Eksperyment</h2>
<p>Eksperyment Michelsona i Morleya miał na celu wykrycie wiatru eteru. W tym celu użyli interferometru, który składał się z półprzezroczystego lustra, dwóch prostopadłych ramion i odbiornika.</p>
<p>Wiązka laserowa była skierowana na półprzezroczyste lustro, które rozdzielało wiązkę na dwie połowy, z których każda przechodziła przez jedno ramię interferometru, zanim uderzyła w lustro na końcu ramienia i została odbita. Odbita wiązka wracała do półprzezroczystego lustra, gdzie spotykała się z drugą wiązką i tworzyła wzorce interferencyjne, które można było obserwować na odbiorniku.</p>
<h3 id="oczekiwania">Oczekiwania</h3>
<p>Interesujące w tym eksperymencie było to, że jeśli interferometr poruszałby się z wiatrem eteru, wtedy powinien wystąpić przesunięcie wzorca interferencyjnego. Wynikałoby to z różnych prędkości promieni świetlnych, które każdy podróżuje przeciwko i z wiatrem eteru.</p>
<p>Jeśli nie było by eteru, obie wiązki światła poruszałyby się z tą samą prędkością, niezależnie od kierunku interferometru, i nie można by zaobserwować różnicy w wzorcu interferencyjnym.</p>
<h2 id="zaskakujące-wyniki">Zaskakujące wyniki</h2>
<p>Michelson i Morley przeprowadzili ten eksperyment kilka razy, ale za każdym razem nie zaobserwowali przesunięcia wzorca interferencyjnego. Niezależnie od tego, w jakim kierunku poruszał się interferometr, wzorzec interferencyjny pozostał taki sam.</p>
<p>To oznaczało, że nie było wiatru eteru, a eter nie istniał. To było bardzo zaskakujące, ponieważ w tamtych czasach uważano, że eter jest rzeczywisty i istnieje w całym wszechświecie.</p>
<p>Eksperyment Michelsona i Morleya był ważnym krokiem w historii fizyki. Wcześniej uważano, że eter jest rzeczywisty i istnieje w całym wszechświecie. Eksperyment Michelsona i Morleya pokazał, że eter nie istnieje, a światło nie potrzebuje ośrodka do propagacji.</p>
<p>Eksperyment pokazał, że nie ma wiatru eteru i że światło porusza się z tą samą prędkością we wszystkich kierunkach, niezależnie od ruchu obserwatora. Był to punkt wyjścia do teorii Einsteina o specjalnej teorii względności, która zrewolucjonizowała zrozumienie czasoprzestrzeni i odgrywa do dziś kluczową rolę w nowoczesnej fizyce.</p>
]]></content:encoded></item><item><title>Biosynteza białek</title><link>https://miarecki.eu/pl/posts/biosynteza-bialek/</link><pubDate>Wed, 15 Mar 2023 10:15:00 +0000</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/pl/posts/biosynteza-bialek/</guid><description>Biosynteza białek to proces, w którym białka są wytwarzane w komórkach. Obejmuje transkrypcję DNA i translację mRNA.</description><content:encoded> <![CDATA[<p>Jeśli jesteś bardziej wizualnym uczniem, możesz również obejrzeć mój film na YouTube o syntezie białek, który jest osadzony lub <a href="https://www.youtube.com/watch?v=17GMVbstC3Q">bezpośrednio dostępny na YouTube</a>.</p>
<hr>
<p>Białka są siłą roboczą życia i pełnią wiele istotnych funkcji w naszych komórkach. Ale czy kiedykolwiek zastanawiałeś się, jak te skomplikowane cząsteczki są faktycznie wytwarzane? Odpowiedź leży w fascynującym świecie syntezy białek, niezwykłym procesie komórkowym.</p>
<h2 id="czym-właściwie-jest-biosynteza-białek">Czym właściwie jest biosynteza białek?</h2>
<p>Aby to zrozumieć, musisz najpierw spojrzeć na komórkę.</p>
<p><img alt="Jądro komórkowe" loading="lazy" src="/img/human_cell_nucleus.svg" title="Obraz jądra komórkowego"></p>
<p>To właśnie tam przechowywane jest DNA.</p>
<p>Ale teraz materiał genetyczny musi dostać się do rybosomów poza jądrem, aby mogła powstać białko.
Aby to zrobić, dane muszą być przetwarzane i transportowane w taki sposób, aby te rybosomy mogły je później odczytać.
To przetwarzanie i transport nazywa się <strong>biosyntezą białek</strong>.</p>
<h2 id="transkrypcja">Transkrypcja</h2>
<p>DNA jest obecnie przechowywane w podwójnej helisie i musi najpierw zostać otwarte.
Żeby przetworzyć dane, DNA jest transkrybowane na mRNA. W tym procesie DNA jest dzielone na pary zasad, a następnie zasady są odczytywane indywidualnie. Zasady są następnie przetłumaczone na pasujące zasady mRNA.</p>
<p>To właśnie dlatego proces ten nazywa się <strong>transkrypcją</strong>.</p>
<p>To mRNA jest teraz przekazywane dalej. W przeciwieństwie do DNA, mRNA składa się z tylko jednego łańcucha i jest teraz gotowa do opuszczenia jądra komórkowego, podczas gdy przechodzi tylko bardzo niewielkie przetwarzanie. Najpierw mRNA jest nieco skracana, a następnie dodawane są kilka dodatkowych zasad. Te dodatkowe zasady są ważne dla translacji.</p>
<p>Teraz mRNA jest gotowa i może opuścić jądro komórkowe. Tam jest ona odczytywana przez rybosomy.</p>
<h2 id="translacja">Translacja</h2>
<p>Rybosomy są fabrykami komórkowymi i składają się z dwóch podjednostek. Teraz trzy zasady są odczytywane jednocześnie i nazywane są <dfn title="Grupa trzech zasad">kodonem</dfn>. Każdy kodon oznacza aminokwas.</p>
<p>Po odczytaniu całej mRNA łańcuchy aminokwasów mogą teraz tworzyć złożone struktury 3D i tworzyć białko.</p>
<p>Ten proces nazywa się <strong>translacja</strong>, ponieważ zasady są tłumaczone na aminokwasy. mRNA może następnie zostać rozłożona, a rybosomy mogą się rozpuścić.</p>
]]></content:encoded></item></channel></rss>