Archiwa autora: netmaniac

NodeMCU i SDS011 jako badacz jakości powietrza

SDS011 to dobry czujnik pyłów zawieszonych, podaje dane dla PM2.5 i PM10. Ostatnio wśród nas wzrosła świadomość zanieczyszczeń pyłami, więc pojawiło się trochę zapytań jak korzystać z tego czujnika. Większość przykładów jakie można znaleźć jednak wykorzystują Raspberry Pi. Koszt Raspberry to co najmniej drugie tyle co sam sensor, tymczasem w wielu przypadkach zależy nam na pomiarze i przekazaniu danych do chmury. W takim przypadku nie potrzebujemy całego Raspberry, to co ma od zaoferowania nodeMCU w zupełności /wystarczy.

NodeMCU, SDS011 – prosta stacja pomiaru jakości powietrza

Dlatego tym razem pokaże Wam jak zbudować taki sensor w oparciu o te dwa elementy – nodeMCU i SDS011. Planuję w przyszłości projekt poprawić, bo ma teraz kilka wad. Podstawowa kwestia to jest wilgotność – czujnik przy wilgotności ponad 70% przekłamuje wyniki, dlatego by w dokonywać wiarygodnych pomiarów, nasz układ potrzebuje elementu ogrzewającego napływające powietrze. W tej wersji zupełnie to pomijamy, jedyne co potrzebujemy to wiedza jaka jest wilgotność, by móc odrzucić pomiary przy wilgotności przekraczającej 70%. Ale z pominięciem tego wystarczy powiesić na uchylonym oknie by mieć z grubsza świadomość tego co się dzieje…

Czytaj dalej

Poprawianie dobrego, czyli LCD Shield i Nettigo Keypad

Odświeżałem ostatnio bibliotekę do Keypada, tak by pracowała łatwiej z LCD Shieldem lub innymi niestandardowymi klawiaturami opartymi o dzielnik napięcia. O jakie klawiaturki chodzi?

Klawiatura taka, to szereg rezystorów, każdy kolejny zwarty przez przycisk do masy. Jeśli odczytamy napięcie między rezystorem R1 a R2, to będzie się zmieniało w zależności od tego który przycisk jest załączony. Górny rezystor zostaje cały czas włączony, a liczba dolnych się zmienia. W szczególności gdy zewrzemy pierwszy przycisk (PRAWO), to będzie tam napięcie 0 -bo przycisk zewrze wszystkie rezystory R2-R5 do masy. Gdy wciśniemy drugi przycisk napięcie będzie zależne od dzielnika R1/R2, rezystory R3-R5 będą zwarte. Gdy wciśniemy DÓŁ napięcie zależy od wartości R1/(R2+R3), R4 i R5 – zwarte. Co nam z tego?

Czytaj dalej

Wyświetlacz z SSD1306 podłączony do Arduino

Gdy przychodzi do wyboru wyświetlacza dla Arduino opcji jest sporo. Dziś zajmiemy się niewielkim (0.96 cala) wyświetlaczem o rozdzielczości 128×64. Ma on jasny i wyraźny obraz. Ten egzemplarz akurat ma dziwną konfigurację podłączenia, ale o tym zaraz. Najpierw – jest on monochromatyczny ale jednak dwukolorowy :)

Jak to możliwe? Ano pierwsze 16 linii ma piksele żółte, a reszta niebieskie.

To zdjęcie chyba najlepiej oddaje to, o co chodzi z tym żółtym/niebieskim.

Czytaj dalej

RPi: podstawy – sterowanie GPIO i przekaźnikami

Niedawno dostaliśmy pytanie od jednego klienta – jak sterować przekaźnikami z Raspberry Pi. Ponieważ nie było to pierwsze pytanie takiego typu, postanowiłem napisać kilka słów tutaj.

W ofercie Nettigo mamy już kilka różnych modułów przekaźników. Różnią się ilością przekaźników, napięciem zasilającym oraz sposobem sterowania. Niektóre z nich mają (w uproszczeniu – te czerwone) możliwość wyboru, który stan logiczny (niski czy wysoki) będzie oznaczał że przekaźnik jest włączony. Ponieważ każdy przekaźnik ma trzy wyjścia (wspólne, normalnie wyłączone i normalnie włączone) da się dobrać właściwe podłączenie niezależnie od tego jak sterujesz przekaźnikiem. Może mieć to wpływ tylko na wygodę programowania oraz na pobór prądu – wskazane jest by przekaźnik był raczej wyłączony niż włączony. Zużywa wtedy mniej prądu a i cewka się nie grzeje. Warto to mieć na uwadze, bo np moduł 8-mio kanałowy, jeśli włączymy wszystkie 8 przekaźników będzie pobierał ponad 500 mA. To już całkiem sporo.

No dobra, gadamy o jakiś niuansach, ale Ciebie pewnie interesuje jak, cholera włączyć ten przekaźnik z Twojego RPi. Ok, przejdźmy do rzeczy. Zakładam, że masz Raspberry z Raspbianem. Pokaże Ci jak podłączyć do niego moduł przekaźnika i korzystając z Pythona włączyć go i wyłączyć.

Czytaj dalej

LinuxMagazine nr 155

Otrzymaliśmy od wydawcy informację o nowym numerze LinuxMagazine:

Sekcja dotycząca Raspberry Pi w styczniowym wydaniu „Linux Magazine” zawiera artykuły opisujące sterowanie czasowe Raspberry Pi przy użyciu programowalnej wtyczki elektrycznej WiFi oraz test bestsellera w niskiej cenie – Raspberry Pi Zero.

Artykuł wiodący opisuje umieszczanie w zdjęciach informacji dotyczących położenia geograficznego za pomocą pary narzędzi do geotagowania obrazów cyfrowych digiKam i GPS Correlate.

Z wydaniem powiększonym o cztery strony rozpoczyna się też nowy dział LinuxVoice z pytaniami i odpowiedziami, najciekawszymi projektami i grami, samouczkami i felietonem.

Na dołączonym DVD znajduje się Fedora 25.

Wewnątrz wydania również: dodawanie z Gimpem koloru do starych czarno-białych zdjęć, tworzenie aplikacji mobilnych na osiem systemów operacyjnych za pomocą Apache Cordovy, Microsoft PowerShell dla Linuksa – marketingowa zagrywka czy konkurencja dla powłok natywnych?, zabezpieczanie danych w chmurze z prostym i praktycznym Cryptomatorem, GNU social: wolna alternatywa dla Twittera, Termux dla Androida – aplikacja umożliwiająca korzystanie z popularnych narzędzi linuksowych na Androidzie, test LibreOffice’a, Apache OpenOffice’a, SoftMaker Office Professionala i WPS Office’a z formatami nienatywnymi, turbodoładowanie wiersza poleceń przy użyciu Tmuksa: menedżer okien w trybie tekstowym?, nowości pierwszego wydania od lat – Vima 8, usprawnianie wdrażania oprogramowania z Ansible Containerem, polecenie, które rządzi wszystkim: ip, Skype dla Linuksa, NoSQL w pytaniach i odpowiedziach, Greg Kroah-Hartman – człowiek, który stoi za stabilną gałęzią jądra oraz inne tematy:

LinuxMagazine – numer 154

linuxmagazinecover_xxlOd wydawcy LinuxMagazine otrzymaliśmy informację o wydaniu 154-go numery gazety (grudzień 2016). Oto dokładniejszy opis:

Sekcja dotycząca Raspberry Pi w grudniowym wydaniu „Linux Magazine” zawiera artykuły opisujące budowę własnego hotspota 3G na Raspberry Pi, możliwości wykorzystania nowego Arduino/Genuino 101 w praktyce, oraz rozproszoną kompilację oprogramowania dla Raspberry Pi przy użyciu distcc.

Temat wiodący, poświęcony ćwierćwieczu istnienia Linuksa, obejmuje rozmowę z twórcą Linuksa, Linusem Torvaldsem, o przyszłości systemu i życiu pozalinuksowym oraz przegląd naprawdę osobliwych dystrybucji.

Na dołączonym DVD znajduje się openSUSE Leap 42.2 – Linux dla wymagających.

Wewnątrz wydania również: wzbogacanie map OpenStreetMap o dodatkowe informacje z Maperitive’em, zarządzanie pękami kluczy PGP/GnuPG, Chroot: podstawy zarządzania pojemnikami z LXC, testy otwartoźródłowych asystentów cyfrowych Sirius i Lucida oraz darmowych centrów multimedialnych: MythTV, Kodi, Plex, OSMC i DVBLink oraz inne tematy: http://linuxmagazine.pl/index.php/issues/154

Wydanie na allegro (bezpłatna dostawa): http://allegro.pl/show_item.php?item=6628224427

e-wydanie „Linux Magazine” 11/2016 (poprzedni numer) na allegro (bez płyty DVD): http://allegro.pl/show_item.php?item=6621569836

pakiety Linux Magazine na allegro: http://allegro.pl/show_item.php?item=6368163954

Pakiet wydań Raspberry Pi: http://allegro.pl/show_item.php?item=6597038039

megapakiety Linux Magazine na allegro: http://allegro.pl/megapakiet-wydan-linux-magazine-z-dvd-i6404755490.html i http://allegro.pl/megapakiet-e-wydan-linux-magazine-i6403798011.html

LinuxMagazine nr 153

Linux Magazine 153Dotarła do nas informacja od wydawcy o kolejnym, 153 już numerze Linux Magazine:

Cykl artykułów poświęcony Raspberry Pi w listopadowym wydaniu „Linux Magazine” zawiera analizę specyfikacji Raspberry Pi 3 z szybkim, 64-bitowym procesorem i wsparciem dla WiFi i Bluetootha oraz instrukcje uzyskiwania dostępu do usług na Raspberry Pi przez Sieć dzięki Weaved i tworzenia animacji poklatkowej ze Scratchem i kamerką Raspberry Pi.

Temat wiodący obejmuje artykuły na temat Samby, które opisują uruchamianie jej w trybie klastrowym z Cephem oraz nowe funkcje wydania 4 – mające ułatwić podjęcie decyzji, czy warto migrować z klasycznej domeny Samby do Samby 4, czy lepiej czy poczekać. Jest też analiza przyszłości klasycznego NFS-a.

Na dołączonym DVD znajduje się najpopularniejsze Linux na świecie – Ubuntu w najnowszej wersji 16.10.

Wewnątrz wydania również: tworzenie kopii zapasowych danych, obrazów i innych przy użyciu qt4-fsarchivera, budowa własnego robota indeksującego ze Scrapy, LibreOffice Online i ownCloud w Collabora Cloud Suite, sposoby na Linuksa na uwolnionym Chromebooku, łatwe tworzenie atrakcyjnych zdjęć z efektem wychodzenia poza ramkę Out-of-Bounds, szybki test narzędzi Fstools 20160322, Sup 1.1, MuPDF 1.8, Cryptsetup 1.7.1, Netjukebox 6.09.2 i Pass 1.6.5 oraz inne tematy: http://linuxmagazine.pl/index.php/issues/153

Wydanie jest na allegro (bezpłatna dostawa). e-wydanie „Linux Magazine” 10/2016 na allegro (poprzedni numer, bez płyty DVD). Pakiety Linux Magazine na allegro.

NOWOŚĆ
megapakiety Linux Magazine na allegro: http://allegro.pl/megapakiet-wydan-linux-magazine-z-dvd-i6404755490.html i http://allegro.pl/megapakiet-e-wydan-linux-magazine-i6403798011.html

 

Jak poradzić sobie z czasem na Arduino

Zmagania z czasem na Arduino potrafią uprzykrzyć życie, zwłaszcza początkującym. O czym piszę? O działaniach które mają być wykonywane przez jakiś czas albo dopiero po upłynięciu jakiegoś czasu.

Pierwsze podejście, kogoś kto rozpoczął swoją przygodę z Arduino będzie pewnie próba użycia delay. Hej, kto z nas tego nie próbował… Problem pojawia się wtedy gdy nasze Arduino musi coś robić w czasie czekania. A delay… no cóż, czekanie z delay to jest jedyna rzecz jaką może robić Arduino  na raz.

Jak sobie poradzić z oczekiwaniem gdy musimy robić kilka rzeczy na raz?

By nie gadać po próżnicy, omówmy to na konkretnym przykładzie. Niedawno dla klienta robiliśmy urządzenie, które miało zliczać dane z czujników odległości. A konkretnie, chodziło o określenie ile osób przyłożyło głowę do urządzenia. Jeśli czujnik przez określoną liczbę sekund wskazywał dostatecznie mały odczyt, wówczas mieliśmy zliczyć osobę, która podeszła do czujnika. Podobnie, dopiero gdy na określoną ilość sekund oddaliła się od czujnika dopiero wtedy miało być zwolnione miejsce i czujnik miał być gotowy do zarejestrowania kolejnej osoby. Na dodatek – były dwa czujniki, które miały być obsługiwane jednocześnie.

Próba zbudowania tego na ifach jest raczej skazana na porażkę. Nie, że to nie da się tak zrobić, ale… zmiana wymagań, jak np dodanie jakiegoś kryterium czy nawet drobna zmiana zachowania urządzenia może oznaczać długie i mozolne grzebanie w kodzie.

Wybrnąć z takiej sytuacji pozwala zwykle model matematyczny określany nazwą maszyną stanów (lub automat skończony). W prostych słowach – mamy skończony zbiór stanów w których może znaleźć się nasz system. Do tego potrzebujemy określić warunki w jakich następują przejścia pomiędzy stanami.

Czytaj dalej

[Tip] Fritzing – wstawianie dedykowanych płytek

W poprzednim poście użyty został taki schemat połączeń. Jest tam moduł konwertera I2C dla LCD znakowych:

Podłączenie LCD do RPi

Podłączenie LCD do RPi

Schemat został wygenerowany w programie Fritzing. Ma on dość bogatą bibliotekę z gotowymi modułami (Arduino, Raspberry i inne od Adafruit, Seeed czy Sparkfun).

Jeśli programu jeszcze nie znasz, to warto poznać, bo świetnie nadaje się do dokumentowania własnych prac. Ale nie tylko, również proste PCB w nim zrobisz.

Mimo, że biblioteka jest dość bogata to nie wszystkie elementy tam są. Nie ma też tego konwertera I2C/LCD. Jest  za to możliwość tworzenia własnych modułów. Dodajesz grafikę, do tego definiujesz gdzie są piny i taki element zachowuje się tak jak moduły dostępne po zainstalowaniu Fritzinga.

Możesz je przeciągać na widoku płytki, a przyczepione przewody przesuną się razem z nim. Możesz zdefiniować jego widok na PCB czy w schemacie. Wszystko pięknie, ale definicja takiego modułu to jednak trochę pracy. Dlatego jest możliwość szybkiego wstawienia obrazka, tak jak właśnie zostało zrobione na powyższym schemacie z konwerterem I2C do LCD znakowych (to czarne coś)

Zaletą jest prostota operacji i szybkość. Wadą – że nie jest to pełnoprawny moduł w rozumieniu Fritzinga, także nie wie on gdzie ma nasz moduł np złącza. Przez to nie jest w stanie przesuwać np przewodów gdy przeciągniemy moduł. Ale jeżeli chcesz jakiś swój projekt udokumentować – świetnie poprawia widok i czytelność schematu.

Jak wstawić taki moduł w trybie ad-hoc?

Czytaj dalej

Raspberry Pi i LCD na I2C

Znakowy LCD na I2C i Raspberry

Znakowy LCD na I2C i Raspberry

No cóż o Arduino było, teraz czas na Raspberry. Ten sam konwerter I2C do znakowych LCD może być użyty też z Raspberry Pi. Jednak tutaj pojawia się potencjalny problem – poziomy napięć.

Większość LCD znakowych wymaga napięcia zasilającego 5V. O ile jeszcze logika (czyli sam kontroler wyświetlacza) będzie działał przy zasilaniu 3.3V to podświetlenie już niekoniecznie. LCD zasilany jest z konwertera, jeśli tego zasilimy napięciem 5V, to takie zasilanie też dostanie LCD. Rasperry Pi ma wyjście na GPIO z napięciem 5V, więc w czym problem?

Ano, Raspberry nie znosi jeśli dostanie napięcie większe niż 3.3V na pin GPIO. A jeśli konwerter I2C LCD zasilimy 5V, każda odpowiedź odesłana przez niego będzie wysłana tak, że stan logiczny wysoki będzie symbolizowany napięciem równym napięciu zasilania. Czyli 5V, co zniszczy port GPIO. Ba! Nawet brak komunikacji będzie zagrożeniem – I2C wymaga by obydwa sygnały (SDA i SCL) były ‚podciągnięte’ do zasilania poprzez rezystory. Takie rezystory są na konwerterze i przy zasilaniu 5V, gdy nikt nie nadaje na obu liniach jest cały czas 5V…

Dlatego albo potrzebujesz LCD znakowego, które jest przystosowane do pracy z zasilaniem 3.3V (a zdecydowana większość LCD znakowych nie jest przystosowana) albo skorzystasz z konwertera poziomów logicznych.

Polecamy niewielką wersję 4-ro kanałową lub 8-mio kanałową (już nieco większą). Jak działa taki konwerter? Podłączamy masy i zasilanie obu układów, z jednej strony (tzw niskiej) napięcie 3.3V a z drugiej (wysokiej) 5V. Teraz każdy kanał ze strony niskiej możemy podłączyć do układów w logice 3.3V a z wysokiej w logice 5V. Dzięki temu każdy z układów ma zagwarantowane, że stan wysoki będzie reprezentowany właściwym napięciem.

Jak podłączyć LCD do Raspberry?

Czytaj dalej