ESP8266 pracujący jaki Access Point albo klient WiFi

Pracując ostatnio nad firmware Pogodełka, natknąłem się na pewną nieudokumentowaną cechę SDK dla ESP8266 w zakresie trybów pracy AccessPoint/klient (station). W dużym skrócie, jeśli choć raz skonfigurujesz tryb AccessPoint na ESP8266, to nawet wgrywając nowy program, mogą te ustawienia zostać aktywne.

Objaw jest taki, że Twoje ESP8266 pracuje jako stacja (klient WiFi) a mimo to rozgłasza SSID, do którego się można dopiąć. W dokumentacji do ESP8266WiFi napisane jest, że aby podłączyć się do sieci WiFi należy skorzystać z komendy WiFi.begin(SSID, PASSWORD) wpisując właściwe wartości. Jeśli wcześniej mieliście kod z Access Pointem, to uruchomiając w ten sposób tryb station spowodujecie, że ESP8266 podłączy się do wskazanej sieci, ale jednocześnie uruchomi AccessPointa z danymi jakie miało ustawione wcześniej.

By pozbyć się tej dodatkowej sieci należy wskazać wprost, że chcemy pracować jako stacja. Prawidłowa sekwencja uruchamiania tego trybu to:

WiFi.mode(WIFI_STA);
WiFi.begin("siec_wifi","tajne haslo");

Chcecie sobie przetestować? Proszę skorzystajcie z tego przykładu w tym giscie. Skompilujcie i wgrajcie np w nodeMCU. Ze względu na #define w linii 3 skompilowana zostanie wersja z Access Pointem. Sprawdźcie że pojawia się takie SSID.

Potem usuńcie #define i wprowadźcie swoje hasło i nazwę sieci WiFi w linii 15. Po wgraniu kodu ponownie, podłączcie się do seriala – dostaniecie info o adresie IP, który dostało ESP. Czyli pracuje jako stacja w sieci. Mimo to możecie sprawdzić, że sieć testAP jest aktywna dalej i można się do niej podłączyć.

Dlatego, jeśli uruchamiacie WiFi na ESP, to nie zapomnijcie dodać linii WiFi.mode(WIFI_STA); przed wywołaniem WiFi.begin. Wtedy dodatkowa sieć zniknie.

Raspberry Pi w trybie kiosku

W ostatnim artykule dowiedzieliśmy się w jaki sposób podłączyć tani wyświetlacz do Raspberry Pi. Dziś pokażę Wam, jak skonfigurować malinkę, żeby pracowała w trybie kiosku – bez pulpitu, możliwości zwijania okienek i konfiguracji. Po prostu wyświetlamy jedną aplikację z której użytkownik ma prawo korzystać i koniec :)

Continue reading

Wyświetlacz LCD dla Raspberry Pi niskim kosztem

Cześć, w dzisiejszym artykule chciałbym zaprezentować Wam jak w prosty i bardzo tani sposób podłączyć wyświetlacz LCD do Raspberry Pi (bez użycia złącza HDMI). Wystarczy nam do tego celu interfejs SPI wyprowadzony na pinach każdej malinowej płytki :) Zaczynajmy więc!

Continue reading

Nettigo Air Monitor – zbuduj własny czujnik smogowy! – wersja 0.2.1

Czym jest Nettigo Air Monitor?

To to system monitorowania czystości powietrza zbudowany w oparciu o dokładny czujnik NovaFitness SDS011. Cały projekt ma kompaktowe rozmiary, wychodzące niewiele ponad obrys samego czujnika.

NAM rozwija społecznościową koncepcję zapoczątkowaną przez projekt Luftdaten.info. Dlatego na wzór tego projektu, zmontowana płytka mieści się w dwóch kolankach hydraulicznych 75 mm (DN 75 87°). Sprawa czystości powietrza jest dla nas bardzo ważna i chcielibyśmy zachęcić/zainspirować innych do podjęcia walki o czystsze powietrze. Z tego powodu od samego początku stawiamy na otwartość – cały kod, jak i pliki źródłowe są wypuszczane na otwartych licencjach. Schematy i projekty kolejnych wersji płytek znajdziesz w serwisie easyeda.com/nettigo/Nettigo-Air-Monitor.

Nettigo Air Monitor to o wiele więcej niż tylko czujnik stężenie pyłu. W praktyce, możesz do niego podłączyć masę dodatkowych czujników. Oprócz standardowych złącz dla SDS011 oraz DHT22, płytka PCB ma wyprowadzone dodatkowe złącza I2C oraz złącze GPS. Umożliwia to podłączenie czujników Bosch BMP280BME280, BME680, wyświetlaczy I2C 2×16, 4×20,itp. Złącze GPS przygotowane zostało pod moduł GPS VK2828U7G5LF. Do złącza opisanego jako PTC podłączysz grzałkę poprawiającą wiarygodność odczytów PM10 i PM2.5. Musisz wiedzieć, że laserowe czujniki poziomu pyłu takie jak SDS011 czy PMS5003 przy wilgotności względnej powietrza powyżej 70% zawyżają pomiary. Dzieje się tak dlatego, że w powietrzu jest masa mikroskopijnych kropelek wody. Na tych kropelkach, podobnie jak na mgle światło lasera rozprasza się identycznie jak na pyle. Rozwiązaniem jest podgrzanie powietrza, które ma trafić do sensora. Ta prosta czynność znacząco zmniejsza wilgotność względną i poprawia wiarygodność odczytów.

Zestaw do samodzielnego montażu

Zestaw Nettigo Air Monitor w wersji 0.2.1 dostępny jest w naszym sklepie. Z przyczyn logistycznych nie są to wszystkie elementy, których będziesz potrzebować do budowy czujnika.

Continue reading

Raspberry Pi – dynamiczny DNS

Cześć, kiedyś pisałem artykuło tym, jak postawić serwer OpenVPN na malince. W przypadku, kiedy mieliśmy zmienny IP wymagało to od nas skonfigurowania usługi tzw. dynamicznego DNSu. W artykule pokazałem jak to zrobić na przykładzie routera firmy TP-Link. Co jednak, jeżeli nasz router nie udostępnia takiej opcji? Dziś pokażę Wam jak malinka może nam w tym pomóc :)

Continue reading

Slack bot na ESP8266

W pracy często zamawiamy sobie kebaba na obiad. Kiedy w końcu na recepcję dostawca przywiezie upragnione jedzenie trzeba jakoś powiadomić wszystkich, że kebaby dojechały :P Jak to mówią potrzeba jest matką wynalazków – tak właśnie powstał kebabowy przycisk wysyłający powiadomienie na Slacku :)

Continue reading

Serwer DLNA na Raspberry Pi

Jakiś czas temu pisałem artykuł o tym w jaki sposób malinkę przerobić na serwer telewizyjny (tvheadend). Do tej pory moje połącznie RPi + Tvheadend + Android TV ma się bardzo dobrze. Tak dobrze, że postanowiłem rozszerzyć nieco funkcjonalność. Poza samym nadawaniem telewizji w sieci LAN chciałbym móc nagrywać i odtwarzać te nagrania. Opcja nagrywania jest dostępna w serwerze Tvheadend, natomiast problemem jest odtwarzanie nagranych materiałów w rozwiązaniach takich jak Android Live Channels, Kodi. Jak się okazało dobrym rozwiązaniem było postawienie serwera DLNA na malince.

Continue reading

Budujemy prosty omomierz na Arduino

Cześć, jako że starter kit jest blogiem edukacyjnym na którym prezentujemy projekty od tych najprostszych poprzez nieco bardziej skomplikowane, aż po gotowe do pracy urządzenia elektroniczne to dziś chciałbym zaprezentować coś z kategorii absolutnych podstaw :) Zbudujemy na Arduino omomierz.

Continue reading

Przydzielanie zasobów za pomocą kolejki we freeRTOS

Cześć, ostatnio dowiedzieliśmy się w jaki sposób zarządzać dostępem do zasobu za pomocą semaforów. W dzisiejszym artykule pokażę jeszcze inny sposób na dostarczenie zawartości do zasobu przez kilka różnych wątków bez problemów z synchronizacją. Zapraszam do krótkiej lektury o kolejkach.

Continue reading

Użycie semaforów w systemie freeRTOS

W ostatnim artykule przedstawiłem pokrótce czym są systemy operacyjne czasu rzeczywistego na przykładzie freeRTOSa dla Arduino, przedstawiłem z grubsza ich wady i zalety oraz przeanalizowałem przykładowy program z dwoma wątkami działającymi współbieżnie. Jedną z wad, które wymieniłem jest to, że niektóre wątki mogą w jednej chwili chcieć korzystać z tego samego zasobu (np. portu szeregowego). W dzisiejszym artykule pokażę Wam jeden ze sposobów kontroli zasobów we freeRTOS.

Continue reading