Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

W pierwszej części poradnika opisałem samą stację meteo oraz program dla modułu Wemos D1 mini Pro. W tej części opiszę konfigurację Raspberry Pi 3 B+ na potrzeby serwera bazy danych oraz serwera WEB dla naszej stacji meteo. Podam także ogólne wskazówki, jak skonfigurować domowy router aby nasz serwer WWW na „malince” był widziany w sieci Internet.

 
Co będziemy potrzebowali:
  • Raspberry Pi 3 B+ (lub model wcześniejszy),
  • zasilacz 5V, 2A (polecam oryginalny zasilacz Raspberry),
  • karta pamięci microSD o pojemności minimum 16GB,
  • czytnik kart pamięci SD + przejściówka microSD <-> SD,
  • obudowa na naszą „malinkę” (nie jest to punkt obowiązkowy ;-) ).
 
Założenia konfiguracyjne Raspberry Pi jako serwera:
  • usługa serwera bazy danych MySQL (MariaDB),
  • usługa serwera WWW http oraz https,
  • interpreter języka PHP,
  • obsługa certyfikatów SSL Let’s Encrypt.
 
Konfiguracja:

Pierwszą czynnością jest pobranie obrazu systemu operacyjnego Raspbian (aktualnie w wersji Debian Stretch) z oficjalnej strony fundacji Raspberry Pi. Pobieramy wersję Lite, gdyż nie będziemy potrzebować zbędnych programów z pełnej wersji systemu, a potrzebne pakiety doinstalujemy sobie w trakcie konfiguracji [bezpośredni link do pliku].
Do przygotowania karty microSD z systemem operacyjnym dla naszej malinki najwygodniej będzie użyć programu Ether pobranego ze strony https://etcher.io/ – polecam pobranie wersji portable odpowiedniej dla naszego systemu operacyjnego Windows na komputerze PC.
Następny krok to rozpakowanie archiwum zip z obrazem Raspbiana do dowolnego folderu, podłączenie czytnika kart (chyba że macie wbudowany), zainstalowanie karty w czytniku i uruchomienie programu Ether (z uprawnieniami Administratora). Sam program jest bardzo prosty w obsłudze. Przyciskiem Select Image wybieramy plik iso z folderu do którego rozpakowaliśmy pobrany plik zip z Raspbianem. Następnie przyciskiem Select Drive wskazujemy naszą kartę microSD (program powinien ją znaleźć samodzielnie) i klikamy w przycisk Flash!. Cały proces przygotowania karty SD z systemem wraz z weryfikacją poprawności może potrwać kilkanaście minut.

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

UWAGA!
Następuje formatowanie karty microSD, a więc wszystkie dane z karty zostaną usunięte.

Opublikuj swój projekt i odbierz 50% rabatu do wykorzystania w sklepie Nettigo.pl

W trakcie przygotowania karty microSD pojawią się monity z naszego Windows’a o konieczności sformatowania dysku – bezwzględnie ignorujemy te komunikaty. Po zakończeniu procesu zamykamy program Etcher i wyciągamy, a następnie ponownie wkładamy naszą kartę SD do czytnika (ponownie ignorując komunikaty o konieczności formatowania dysku). Na naszej karcie pamięci mamy dostępną dla Windows partycję rozruchową boot. Na tej partycji musimy utworzyć nowy, pusty plik o nazwie ssh bez żadnego rozszerzenia! Plik ten informuje system Debian Stretch, że po starcie systemu włączona ma być powłoka SSH do zdalnego zarządzania naszym Raspberry.

Ważne!
W celu poprawnego utworzenia takiego pliku musimy mieć w naszym systemie operacyjnym na PC włączone pokazywanie rozszerzeń wszystkich plików.

Możemy teraz włożyć kartę microSD do czytnika w Raspberry Pi, podłączyć kabel sieciowy do domowego routera oraz włączyć zasilanie. Nasza „malinka” zacznie uruchamiać system operacyjny i po chwili jest gotowa do pracy.
Następną czynność jaką musimy wykonać, to sprawdzenie jaki adres IP został przypisany naszemu minikomputerowi. Można to zrobić na kilka sposobów. Możemy zalogować się do naszego routera i sprawdzić, jaki adres IP został przydzielony naszej „malince”, możemy wykorzystać oprogramowanie do skanowania adresów w naszej sieci domowej. Jednak najprostszym rozwiązaniem jest uruchomienie wiersza poleceń (cmd) na naszym PC i wpisanie komendy arp -a. Zobaczymy listę znanych urządzeń, a wśród nich powinno być nasze Raspberry, którego adres MAC (Physical Address) zaczyna się od ciągu b8-27-eb. Z kolumny Internet Address odczytujemy IP naszego Raspberry.

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Znając adres MAC Raspberry Pi należy włączyć manualne przydzielanie adresów IP na naszym domowym routerze. Mamy wtedy pewność, że Raspberry będzie widoczne zawsze pod tym samym adresem. Takie ustawienie będzie także potrzebne do przepuszczenia ruchu z Internetu do naszego serwera (więcej na ten temat w dalszej części artykułu). Po szczegóły konfiguracji routerów odsyłam do ich instrukcji.
Kolejny krok, to instalacja klienta SSH pod Windows czyli programu Putty. Program pobieramy z oficjalnej strony https://www.putty.org/ w wersji właściwej dla naszego systemu Windows. Pozostaje zainstalowanie i uruchomienie programu.
W oknie Host name (or IP address) wpisujemy adres IP naszej „malinki”. W oknie Saved sessions możemy nadać nazwę naszego połączenia SSH do Raspberry Pi i zapisać ją przyciskiem Save. Warto to zrobić, gdyż do danej sesji możemy przypisać mnóstwo różnych ustawień naszego klienta SSH. Ja np. zmieniam sobie czcionkę na bardziej mi pasującą.

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Po zapisaniu naszej konfiguracji klikamy w przycisk Open i łączymy się zdalnie z naszym minikomputerem. Przy pierwszym połączeniu zobaczymy ostrzeżenie dotyczące nieznanego urządzenia. Musimy wyrazić zgodę na połączenie. Jeśli widzimy ekran jak poniżej, to mamy pełen sukces. Możemy zacząć całkowicie zdalnie konfigurować naszego Raspberry Pi.

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Domyślny login to pi, a hasło raspberry. Przy wprowadzaniu hasła nie pojawiają się żadne znaki (brak gwiazdek maskujących hasło). Jest to normalne zachowanie w przypadku systemów linuxowych. Po wprowadzeniu poprawnego hasła zobaczymy linię poleceń, czyli tzw. shell naszej „malinki”. Teraz możemy za pomocą poleceń wprowadzanych z klawiatury dokonywać czynności Administratora naszego Raspberry.

Poniżej będę podawał polecenia, jakie należy wprowadzać, z krótkim opisem czego dotyczą (po znakach //).

sudo rpi-update // aktualizacja firmware „malinki”, może chwilę potrwać w zależności od szybkości naszego łącza.

Po pomyślnej aktualizacji restartujemy minikomputer poleceniem:

sudo reboot

Po ok. 2 minutach łączymy się ponownie przez Putty z naszą malinką. Po zalogowaniu wpisujemy:

sudo apt-get update //aktualizacja listy pakietów z oficjalnego repozytorium.

sudo apt-get dist-upgrade // instalacja aktualizacji jeśli są dostępne (możemy być poproszeni o akceptację aktualizacji klawiszem Y).

Po zakończeniu aktualizacji ponownie restartujemy minikomputer poleceniem:

sudo reboot

2 minuty czekania i z powrotem logujemy się do naszego Raspberry Pi i po zalogowaniu wpisujemy:

sudo passwd // zmiana hasła użytkownika pi. Podajemy stare hasło, a następnie dwukrotnie nowe hasło. Ze względu że do naszego minikomputera będzie otwarty dostęp z sieci Internet, proponuję ustawić mocno skomplikowane hasło.

Następnie uruchamiamy prostego konfiguratora poleceniem:

sudo raspi-config

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Czynności w konfiguratorze:

2 Network Options

N1 Host Name -> OK i wprowadzamy nazwę naszego Raspberry (oczywiście możemy zostawić nazwę domyślną),

3 Boot Options -> B1 Desktop / CLI -> B1 Console i klawisz Enter,

4 Localisation Options -> I2 Change Timezone -> Europe -> Warsaw,

4 Localisation Options -> I4 Change Wi-fi Country -> PL Poland,

7 Advanced Options -> A3 Memory Split -> zmieniamy na najniższą możliwość wartość 16 (nie używamy przecież środowiska graficznego).

Następnie wybieramy Finish i odpowiadamy twierdząco (Yes) na konieczność ponownego uruchomienia systemu.

 
Konfiguracja czasu:

Nasza „malinka” nie posiada zegara czasu rzeczywistego (RTC), więc dobrze jest skonfigurować system, aby synchronizował czas z serwera NTP w sieci Internet. W konsoli SSH wpisujemy komendę:

sudo apt-get install rdate

i czekamy chwilę na zainstalowanie niezbędnych pakietów. Po zakończeniu instalacji wpisujemy:

sudo rdate -s ntp.task.gda.pl

Parametr -s powoduje zapisanie serwera ntp.task.gda.pl jako głównego serwera synchronizacji czasu dla naszego minikomputera. Sprawdzenie aktualnego czasu możemy wykonać komendą:

date

 
Klucze SSH, czyli dostęp do Raspberry Pi bez użycia hasła:

Wykonując częste połączenia SSH, każdorazowe wpisywanie hasła może być irytujące. Istnieje jednak proste i bardzo wygodne rozwiązanie tego problemu. Zanim przejdziemy jednak do opisu jak wygenerować i używać kluczy SSH, kilka słów o samych kluczach. W największym uproszczeniu klucze SSH działają tak samo jak PGP/GPG, czyli tworzymy komplet kluczy (prywatny i publiczny). Dostęp do klucza prywatnego możemy mieć tylko my. Nie możemy go nikomu przekazać ani udostępnić. To dzięki niemu możemy rozszyfrować np. zaszyfrowaną korespondencję e-mail, więc nie możemy go nikomu dać. Klucz publiczny, to ten który przekazujemy innym, żeby mogli wysłać nam coś zaszyfrowanego. Podsumowując, klucz prywatny zatrzymujemy dla siebie, a klucz publiczny udostępniamy innym.

Wygenerowanie kluczy SSH wykonujemy programem PuTTYgen (zainstalowanym wraz z programem Putty). Uruchamiamy program i klikamy przycisk Generate. W celu losowego generowania znaków potrzebnych do stworzenia pary kluczy poruszamy kursorem po oknie aplikacji. Po wygenerowaniu kluczy zapisujemy nasz klucz prywatny na dysku komputera PC przyciskiem Save private key. Pomijamy wprowadzenie hasła do klucza prywatnego, gdyż w systemie Windows taka opcja będzie nam tylko przeszkadzała. Z okna Public key… kopiujemy do schowka klucz publiczny i wklejamy go np. w Notatniku (polecam jednak używanie np. programu Notepad++ zamiast systemowego Notatnika). Program PuTTYgen możemy już zamknąć. Natomiast teraz uruchamiamy PuTTY. Ładujemy naszą konfigurację sesji SSH przyciskiem Load, a następnie w drzewku konfiguracyjnym po lewej stronie rozwijamy sekcję SSH i klikamy w podsekcję Auth. Klikamy w przycisk Browse… obok pola Private key file for authentication i wybieramy nasz klucz prywatny zapisany na dysku naszego PC.

Następnie przechodzimy do sekcji Session, wybieramy naszą konfigurację sesji i zapisujemy nowe ustawienia przyciskiem Save. Otwieramy naszą sesję i logujemy się użytkownikiem pi oraz wcześniej ustanowionym hasłem. W konsoli SSH po prowadzeniu nazwy użytkownika powinniśmy zobaczyć komunikat: Server refused our key. Teraz pozostaje nam przesłać na nasze Raspberry Pi skopiowany wcześniej klucz publiczny. W tym celu wpisujemy poniższe polecenia:

install -d -m 700 ~/.ssh // tworzymy folder dla kluczy publicznych z właściwymi uprawnieniami,

nano ~/.ssh/authorized_keys // uruchamiamy edytor tekstowy Nano z opcją utworzenia pliku authorized_keys we wcześniej utworzonym folderze .ssh,

W oknie edytora wklejamy nasz klucz publiczny i zapisujemy plik (Ctrl + O) i potwierdzamy klawiszem Enter, a następnie zamykamy edytor (Ctrl + X). Aby sprawdzić poprawność konfiguracji zamykamy naszą sesję poleceniem:

logout

Następnie logujemy się ponownie do naszej „malinki”. Po wpisaniu nazwy użytkownika nie jesteśmy już pytani o hasło.

 
Instalacja Midnight Commander – coś dla pamiętających czasy Norton Commander’a

Dla osób dużo korzystających z systemów okienkowych poruszanie się po katalogach i dyskach naszego Raspbiana nie jest zbyt wygodne. Z pomocą przychodzi prosty menadżer plików Midnight Commander wzorowany na starym, dobrym Norton Commanderze. Aby zainstalować MC wpisujemy polecenie:
sudo apt-get install mc i potwierdzamy klawiszem Y chęć instalacji. Po pomyślnym zainstalowaniu programu możemy go uruchomić poleceniem:

mc (lub sudo mc, jeśli chcemy mieć podniesione uprawnienia do root’a w systemie).

 
Instalacja i konfiguracja serwera WWW, interpretera PHP oraz serwera baz danych MariaDB

sudo apt-get install lighttpd // instalacja serwera Lighttpd (wybrałem ten serwer zamiast Apache ze względu na szybsze działanie).

sudo apt-get install php7.0-cgi // instalacja PHP w wersji 7

sudo lighttpd-enable-mod fastcgi // uruchomienie PHP w trybie fast-cgi

sudo lighttpd-enable-mod fastcgi-php // uruchomienie PHP w trybie fast-cgi

sudo service lighttpd force-reload // restart serwera WWW.

sudo apt-get install php7.0-nazwa_biblioteki // instalacja dodatkowych bibliotek PHP. Polecam zainstalowanie: curl, dom, gd, mbstring, mcrypt, mysql, xml.

sudo nano /etc/php/7.0/cgi/php.ini // edycja pliku konfiguracyjnego PHP.

W pliku tym wyszukujemy wpisów (bez znaku # na początku linii): post_max_size i wartość 8M zamieniamy na 64M oraz upload_max_filesize, gdzie wartość 2M zamieniamy na 64M. Oczywiście zapisujemy plik i zamykamy edytor.

Po tych operacjach należy ponownie zrestartować serwer Lighttpd poleceniem:

sudo service lighttpd force-reload

Pozostało nam teraz nadać odpowiednie uprawnienia do katalogów, w których będziemy trzymać pliki z naszą stroną WWW:

sudo chown www-data:www-data /var/www/html

sudo chown www-data:www-data /var/www/cgi-bin

sudo chmod 775 /var/www/html

sudo chmod 775 /var/www/cgi-bin

sudo usermod -a -G www-data pi

I restartujemy cały serwer poleceniem:

sudo reboot

Pora na test działania naszego serwera WWW:

nano /var/www/html/info.php // tworzymy plik info.php w którym wpisujemy:

Zapisujemy plik Ctrl + O i zamykamy edytor Ctrl + X. Teraz na naszym komputerze uruchamiamy dowolną przeglądarkę i w pasku adresu wpisujemy: http://adres.ip.naszego.serwera (np. http://192.168.1.56). Powinniśmy zobaczyć stronę domyślną serwera Lighttpd. Następnie wpisujemy adres: http://adres.ip.naszego.serwera/info.php (np. http://192.168.1.56/info.php) – powinniśmy zobaczyć stronę informacyjną o naszym środowisku PHP. Nasz serwer WWW działa w 100% poprawnie.

Aby zainstalować serwer baz danych MariaDB (bezpłatny odpowiednik serwera MySQL) wpisujemy:

sudo apt-get install mariadb-server

Po zainstalowaniu serwera logujemy się do niego poleceniem:

sudo mysql -u root

Tworzymy super użytkownika pi ze wszystkimi uprawnieniami:

create user ‚pi’@’localhost’ identified by ‚password’; // oczywiście w miejsce słowa password wpisujemy hasło, jakie chcemy nadać użytkownikowi pi.

grant all privileges on . to ‚pi’@’localhost’ with grant option; // przydzielamy maksymalne uprawnienia do wszystkich baz danych użytkownikowi pi.

flush privileges; // przeładowujemy system uprawnień w bazie danych.

Wiersz poleceń serwera MariaDB zamykamy wpisując \q.

Ponieważ tworzenie baz, nadawanie uprawnień z poziomu wiersza poleceń nie jest zbyt wygodne (chociaż polecam poszukać tutoriali w Internecie i samodzielnie popróbować), zainstalujemy świetny odpowiednik phpMyAdmin‚a jakim jest Adminer (https://www.adminer.org).
W tym celu w naszej konsoli wpisujemy:

cd /var/www/html // przechodzimy do katalogu z naszą stroną WWW,

wget https://www.adminer.org/latest-mysql-pl.php // pobieramy najnowszą, aktualną wersję Adminer’a do katalogu z naszą stroną WWW.

mv latest-mysql-pl.php MySQLAdmin.php // zmieniamy nazwę pliku na jakąś przystępną dla nas. Należy pamiętać, że w systemach linuxowych ważne są małe i duże litery przy wywoływaniu skryptu php z poziomu przeglądarki.

Teraz możemy w przeglądarce uruchomić Adminer’a wpisując adres: http://adres.ip.naszego.serwera/MySQLAdmin.php (lub z nazwą skryptu, jaką sobie ustawiliśmy).

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Teraz już z poziomu Adminer’a utworzymy nową bazę danych, nowego użytkownika bazy oraz tabelę na potrzeby projektu solarnej stacji meteo. Klikamy więc Utwórz bazę danych. Wpisujemy nazwę bazy danych – na potrzeby projektu baza nazywa się meteo. Ustawiamy porównywanie znaków na utf8_general_ci i klikamy Zapisz zmiany. Teraz klikamy na Serwer, następnie Uprawnienia użytkowników, Dodaj użytkownika. Tworzymy użytkownika meteo_dbuser, ustawiamy hasło dla tego użytkownika (nie polecam ustawiania tego samego hasła, jak dla użytkownika pi). W polu uprawnienia użytkowników wpisujemy ., następnie zaznaczamy uprawnienie All Privileges i klikamy Zapisz zmiany. Ponownie klikamy na Serwer, następnie na naszą bazę danych meteo i Utwórz tabelę. Tabelę tworzymy według poniższego wzoru:

Nazwa tabeli: S_01 // Ważne: nazwa tabeli musi być identyczna, jak wartość zmiennej table_name w pliku konfiguracyjnym config.h dla programu stacji meteo (część pierwsza projektu).

Struktura tabeli:

id | int(20) Auto Increment
timestamp | timestamp [CURRENT_TIMESTAMP]
temperaturę | float
humidity | float
absolute_pressure | float
relative_pressure | float
light_intensity | float
power_supply | float
signal_level | float

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Dla leniuszków zapytanie SQL:

Następną czynnością jest utworzenie dwóch plików z kodem php w katalogu /var/www/html:

Uważny czytelnik zobaczy, że program stacji meteo po połączeniu się z siecią Wi-Fi wywołuje plik espdata.php i przekazuje metodą GET wartości pomiarowe ze stacji (linia 254). Krótkiego omówienia wymaga zastosowanie zmiennej write_api_key w pliku config.h dla programu stacji meteo oraz w pliku config.php. Ponieważ nasz serwer ma być dostępny w sieci Internet, to bez prostego, aczkolwiek skutecznego zabezpieczenia, dowolna osoba mogłaby dopisywać do naszej bazy fikcyjne dane. W związku z tym stacja meteo wysyła także klucz, którego poprawność jest sprawdzana przez skrypt php dopisujący dane pogodowe do bazy danych (no chyba że podsłucha ruch w naszej domowej sieci Wi-Fi, to pozna masz „szyfr” – ale raczej mało prawdopodobne, aby komuś chciało się angażować we włamywanie się do stacji meteo ;-) ). Zmienna table_name w pliku config.h to nic innego jak nazwa tabeli w naszej bazie. Możemy w ten sposób uruchomić kilka stacji w ramach swojej sieci W-Fi i zapisywać dane z każdej z nich do jednej bazy ale do różnych tabel.

Aby sprawdzić, czy skonfigurowaliśmy wszystko poprawnie i nasz serwer jest przygotowany na przyjmowanie danych ze stacji meteo, uruchamiany na PC przeglądarkę i w adresie wpisujemy:

http://adres.ip.naszego.serwera/espdata.php?api_key=klucz_api&station_id=nazwa_tabeli&t=21.20&h=38.33&ap=998.34&rp=1013.21&li=34675&ps=3.99&sl=-65

Na moim testowym serwerze wygląda to tak:

http://192.168.1.56/espdata.php?api_key=key22&station_id=S_01&t=21.20&h=38.33&ap=998.34&rp=1013.21&li=34675&ps=3.99&sl=-65

W przeglądarce powinniśmy otrzymać status OK. Po zalogowaniu się do Adminer’a wybieramy naszą bazę, następnie tabelę (S_01) i klikamy Pokaż dane. Powinniśmy zobaczyć dokładnie taki obrazek:

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

To już wszystko. Nasz serwer jest gotowy na przyjmowanie danych pomiarowych ze stacji meteo. Jeśli macie wykonaną elektronikę stacji i zaprogramowany moduł Wemos, możecie uruchomić stację meteo. Do bazy powinny spływać co określony w pliku config.h czas dane pomiarowe ze stacji.

Ze względu na znaczą objętość tej części opisu projektu, opublikuję następną (ostatnią) część. W części trzeciej opiszę tematy związane z dostępem z sieci Internet do naszego serwera, a więc:

  • konfigurację naszego domowego routera (wpuszczamy ruch z Internetu do Raspberry),
  • podpięcie dowolnej nazwy domenowej w dynamicznym DNS,
  • instalację certyfikatu SSL Let’s Encrypt,
  • konfigurację SSL na naszym Raspberry Pi.
Opis projektu nie będzie obejmował części wizualizacyjnej stacji (strony WWW). Ten aspekt zostawiam czytelnikom majsterkowo.pl
Ocena: 5/5 (głosów: 8)
Nettigo - patron działu Elektronika

Podobne posty

Arduino ethernet device

Arduino ethernet device

Poniżej opisany projekt przedstawia „wrap” biblioteki EtherCard https://github.com/njh/EtherCard.Biblioteka EtherCard bardzo ładnie rozwiązuje konfigurację modułu ethernet…

18 komentarzy do “Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

  • Świetny projekt! Obiema rękami popycham go w stronę strony głównej Majsterkowa!
    Smuci tylko ostatni akapit, ten wytłuszczony. Może Autor da się namówić na chociaż pobieżne przybliżenie tematu eksponowania wyników, w tak przejrzysty i czytelny sposób w jaki przedstawia je na malinowemeteo.zgora.pl.
    Serdecznie dziękuję za dotychczasowe części.

    Odpowiedz
  • Dobry projekt. Podobny projekt zrealizowałem do systemu podlewania. Do wemosa miałem podłączoną czujkę DTH22 i czujkę analogową wilgotności gleby. Aplikację na wemosa napisałem w LUA a obsługę na malince w Pythonie. Dane rejestrowałem w MySQLu. Dorobiłem wykresy ww parametrów. Ale niebo tym chcę pisać. W pewnym projekcie brakowało mi kanałów rejestracji danych na wemosie. Udało mi się rozwiązać ten problem przy pomocy ekspandera. Dzięki czemu mogłem przy pomocy 4ch GPIO sterowac 16_toma liniami pomiarowymi. Dokładny opis rozwiązania podałem na forum LanKontrolera w wątku „przykłady zastosowań przez użytkowników-sztuczne rozszerzenie szyny INxD”. Informację tę podaję wszystkim zainteresowanym przebudową Twojej stacji meteo.
    A tak poważnie, gratuluję pomysłu

    Odpowiedz
  • dobrze opisany materiał szkoleniowy, jeśli na pi tylko server ma być to rasbiana-lite bym zmienił na dietPi – o wiele sprawniej chodzi
    ps. mam rój sensorów na esp8266 i hub na pi ale używam MQTT zamiast HTTP i HaaS jako hub – jakoś tak prościej i szybciej wychodzi :)

    Odpowiedz
  • Metoda GET protokołu http służy z definicji do pobierania danych. Do wysyłania ich na serwer powinno się użyć metody POST. To taka tylko uwaga pro forma.

    Odpowiedz
    • Zgadzam się z Tobą w 100%. Zastosowałem jednak GET z premedytacją. Projekt wykonywałem z piętnastoletnim dzieckiem. Chciałem w przejrzysty sposób pokazać (także wszystkim początkującym na majsterkowo.pl), jak przetestować działanie serwera i przekazywanie danych do bazy z poziomu wywołania w adresie.

      Odpowiedz
  • Ja bym to zrobił trochę inaczej. I w zasadzie mam zrobione tak. Serwer www stoi na malinie i jest na nim panel w php. W tym panelu pokazywane są aktualne odczyty i wykresy z ostatniej doby i średnie dobowe z ostatniego miesiąca. Natomiast wszystkie odczyty są wysyłane na zewnętrzny serwer. Na zewnętrznym serwerze postawiłem xmlapi do pobierania odczytów. chcąc pobrać jakieś odczyty, podaje się w gecie jakie czujniki mnie interesują i z jakiego okresu te odczyty mają być. Tym sposobem mogę odczyty umieścić na dowolnej stronie nie obciążając zbytnio maliny. Panel na malinie też pobiera odczyty do wygenerowania wykresów.
    Wcześniej miałem archiwum odczytów na malinie, ale wiele lokalnych firm chciało sobie pokazać na swoich stronach moje wykresy i malina w końcu przestała wyrabiać.

    Odpowiedz
    • Moim celem było właśnie zapisywanie danych na „malinkę”, która stoi u mnie w sieci lokalnej. W przypadku problemów z łączem od operatora Internetu dane ze stacji będę miał zapisane.
      Ale dziękuję za Twoje uwagi.

      Odpowiedz
  • Witam Panowie, mam pewien problem. Napisałem taki program https://pastebin.com/Ncy4naK9 (na końcu jest plik php, który znajduje się na raspberry). Gdzie robię błąd? Ponieważ po wpisaniu w przeglądarke 192.168.0.105/test.php?temp=20 normalnie pokazuje mi się liczba 20.

    Odpowiedz
  • Świetnie opisany materiał. Ogrom wiedzy przekazanej w sposób prosty i przejrzysty. Trzecia część interesuje mnie najbardziej ze względu na opisane zagadnienia więc zabieram się za czytanie.
    No super opis :)

    Odpowiedz

Odpowiedz

anuluj

Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?