Temat dotyczy skryptu PHP, który ma za zadanie archiwizować dane pomiarowe w bazie danych SQL.
Pomiary wykonuje ESP8266 lub lepiej ESP32 i wysyła je co interval do bazy SQL. Robi to za pomocą skryptu ZapisAvgMax.php.
Jakie czynności wykonuje skrypt:
- ESP przekazuje a skrypt pobiera nazwy: tabeli, kolumny/kolumn i wartości, które ma do nich wpisać
- sprawdza czy w bazie jest już rekord z aktualnego zakresu czasowego określonego parametrem tim
- jeżeli nie ma to inicjuje rekord z wartościami jakie ma
- jeżeli jest to wyznacza średnią z wartości w bazie oraz tej którą ma
- jeżeli wartość dotyczy kolumny UV to sprawdza też czy nowa wartość jest większa i jeżeli tak to uaktualnia ją w bazie w kolumnie UVmax
ciąg dalszy powinien nastąpić

FAQs
czy każdy pomiar, co 12s albo co 1s, idzie do tabeli w bazie ?
Tak każdy wysyłany pomiar korzystając ze skryptu ZapisAvgMax.php jest wpisywany do kolumny w tabeli bazy. Przed zapisem sprawdzana jest obecność rekordu według klucza data i czas. Dla istniejących rekordów pobierana jest wartość, skrypt oblicza średnią i uaktualnia rekord. Kiedy rekord nie istnieje to tworzony jest nowy z aktualną wartością.
dlaczego kiedy tim=900, rekordy tworzone są co 15 min.?
zacznijmy od tego, że 900 sek to jest 15 minut i ten przedział czasowy ustawiamy w celu kumulowania wielu pomiarów w tych okresach. Kumulowanie następuje przez uśrednianie. Zastosowanie kolumny o nazwie „UV” powoduje, że skrypt ZapisAvgMax.php szuka maksymalnych wartości w przedziałach czasowych definiowanych przez „tim” i zapisuje wynik w kolumnie UVmax
Czy pierwsza wymiana danych z pomiaru, po czasie interval, tworzy nowy rekord w OVH
Każda wymiana danych uaktualnia bazę stosując albo SQL update albo SQL insert. Patrz przykład1.
Can I apply to be a part of the team or work as a contractor?
Études offers comprehensive consulting, management, design, and research solutions. Our vision is to be at the forefront of architectural innovation, fostering a global community of architects and enthusiasts united by a passion for creating spaces. Every architectural endeavor is an opportunity to shape the future.
Przykład
- ESPeasy wysyła co interval=12
- Baza ma rekordy co tim=60
- mamy dwie kolumny: DataCzas i pomiar
- jest 8:00 następuje wysyłka czyli kontroler uruchamia połączenie i wykonanie skryptu ZapisAvgMax.php na serwerze OVH
- zostaje utworzony rekord „2025-03-26 08:00”
- jest 8:00:12 kolejny pomiar idzie do bazy ale rekord „2025-03-26 08:00” już istnieje dlatego jest pobierany z bazy i uśredniany razem z pomiarem nowym aktualnym po czym uaktualniany jest istniejący rekord
- potem kolejne pomiary 8:00:24, 8:00:36 i 8:00:48
- o 8:01:00 tworzony jest nowy rekord „2025-03-26 08:01” i cykl się powtarza, kolejne pięć pomiarów jest uśrednianych, które od 8:01 do 8:02 będą co 12 sek docierały do bazy.
