computer
Programowanie Mikroprocesory Mikrokontrolery Last.fm Programowanie Mikroprocesory Mikrokontrolery Facebook Twitter

Valid XHTML 1.0 Transitional

Poprawny CSS!

Programowanie mikrokontrolerów

Internetowa stacja pogodowa


1. Opis projektu

Poniższy projekt dotyczyć będzie budowy termometru internetowego z komunikacją Wifi. Głównym założeniem projektu jest skonstruowanie urządzenia które zapewni:

  • Akwizycje danych w sieci Wifi przez dostęp do serwera WWW zawartego w urządzeniu
  • Akwizycje danych przez bazę danych SQL na serwerze zewnętrznym z dostępem do danych przez serwis WWW umieszczony na serwerze hostingowym.
  • Kreślenie wykresów na podstawie danych zebranych w bazie SQL poprzez stronę WWW
  • Inne w miarę potrzeby

Projekt oparty będzie na następujących elementach:

  • Płytka z modułem Wifi LoLin ModeMcu V3 (2 sztuki)
  • Płytka pomiarowa I2C BMP280 (2 sztuki)
  • Czujnik AM2302 (temperatura, wilgotność)
  • Wyświetlacz OLED SSD1306 128X64 NONAME I2C

Dzięki modułowi BMP280 oprócz temperatury pozyskiwana będzie dodatkowo wartość wilgotności oraz ciśnienia atmosferycznego. Dane będzie można odczytać za pomocą zaimplementowanego ekranu OLED, przy pomocy połączenia z witryną generowaną przez serwer WWW zaimplementowany w module Wifi (dostępny tylko w sieci lokalnej) oraz przy pomocy strony internetowej generowanej na podstawie bazy danych MySQL. Pomiary realizowane będą za pomocą dwóch modułów pomiarowych BMP280 tak aby mierzyć parametry wewnątrz mieszkania oraz na zewnątrz. W dalszym opisie będę odwoływał się do fragmentów programu tworzonego dla układu wifi modeMcu tworzonego w środowisku Arduino, fragmentów kodu PHP wykorzystywanego do dodawania i zarządzania danymi przysłanymi przez moduł pomiarowy do bazy danych, fragmentów kogu HTML wykorzystywanych do wyświetlania wyników w sieci lokalnej przez serwer www w urządzeniu oraz językiem SQL w celu zarządzania danymi w bazie SQL. Z uwagi na szeroki zakres projektu oraz fakt że jestem samoukiem niektóre terminy oraz określenia mogą być nieprofesjonalne oraz nie precyzyjne jednak będą prowadzić do uruchomienia sprawnego urządzenia.

Projektowane urządzenie będzie działało zgodnie z poniższym schematem blokowym

Opis

 Zgodnie z powyższym schematem blokowym czujniki dokonujące pomiarów komunikować się będą za pomocą sieci Wifi z kontem hostingowym obsługującym język programowania PHP. Za pomocą skryptu PHP wyniki otrzymywane z czujników dodawane będą do odpowiedniej tabeli w bazie danych SQL. Interpretacja wyników przebiegać będzie za pomocą odczytu wartości z tabeli SQL przez skrypt PHP i wyświetlanie ich w dwóch formach. Pierwszą z nich będzie prezentacja pomiarów w postaci tabeli. Drugą z nich będzie prezentacja wyników w postaci wykreślonego wykresu wartości pomierzonych. Czujniki dodatkowo wyposażone będą we własne wyświetlacze umożliwiające odczyt pomiarów oraz diagnostykę ich pracy. Budowę układu rozpoczniemy od zbudowania czujnika z możliwością diagnostyki jego pracy poprzez dodanie do niego wyświetlacza. Do budowy pierwszego z czujników wykorzystany zostanie wyświetlacz OLED SSD1306 128X64 NONAME I2C. Pierwszym krokiem będzie uruchomienie wyświetlacza tak aby współpracował z płytą Wifi LoLin ModeMcu V3.

2. Uruchomienie wyświetlacza OLED z płytką Wifi LoLin ModeMcu V3

Pierwszym krokiem będzie konfiguracja i uruchomienie wyświetlacza OLED opartym na sterowniku SSD1306 o rozdzielczości 128X64 komunikującym się po protokole I2C z płytką Wifi LoLin ModeMcu V3. Sposób uruchomienia został przedstawiony w odrębnej sekcji. (link do opisu uruchomienia OLED na I2C).

3. Uruchomienie czujnika temperatury, ciśnienia, wilgotności - BMP280

 Układ pomiarowy zastosowany w projekcie oparty został na czujniku temperatury, ciśnienia, wilgotności - BMP280. Budowa zasada działania oraz uruchomienie czujnika BMP280 opisane zostało na osobnej podstronie. (link do opisu czujnika BMP280).

 

4. Uruchomienie komunikacji WIFI

Układ komunikacji bezprzewodowej zastosowany w projekcie oparty został na module WIFI - NodeMcu v3. Budowa zasada działania oraz uruchomienie modułu WIFI NodeMcu v3 opisane zostało na osobnej podstronie. (link do opisu modułu NodeMcu v3).

 

5. Uruchomienie serwera www prezentującego wyniki na stronie www (w sieci lokalnej)

Uruchomienie prostego serwera www na wykorzystywanym układzie przedstawione zostanie w osobnej sekcji (link do opisu uruchomienia serwera www na EP8266).

Poniżej przedstawiony zostanie kod źródłowy wykorzystany do wyświetlenia mierzonych przez czujnik wartości na stronie www którą możemy otworzyć w sieci lokalnej jako strona www dzięki zaimplementowanemu serwerowi www w nasz układ.

 

//********************************************** Opracować //*********************************************

dfdfdfdfd

6. Utworzenie i konfiguracja bazy danych SQL

Aby wykorzystywać możliwości bazy danych SQL musimy posiadać dostęp do takiej bazy. Projekt wykorzystuje podstawowe funkcje baz danych SQL tak więc wystarczy założyć sobie konto hostingowe u dowolnego dostawcy ( płatne lub darmowe) byle hosting oferował dostęp do bazy danych SQL oraz wspierał technologie PHP potrzebna do dodawania nowych danych do tabeli pomiarów.

7. Wysyłanie danych do bazy SQL za pomocą skryptu PHP

Wysyłanie danych do bazy SQL odbywa się za pomocą skryptu PHP umieszczonego na hostingu www. Aby wykorzystać możliwości bazy danych SQL potrzebujemy hosting wspierający obsługę języka PHP. Dodawanie danych do bazy SQL realizowane jest za pomocą skryptu PHP realizowanego przez serwer hostingowy na podstawie danych wejściowych wysyłanych w linku przez moduł wifi metodą POST. Wartości przekazywane przez link internetowy wysyłany przez moduł wifi NodeMcu są interpretowane przez skrypt PHP i dodawane do bazy danych SQL.

8. Prezentacja wyników z bazy SQL w postaci wykresu z wykorzystaniem CanvasJS

ddddddddddddddddddd

 (link do opisu konfiguracji i obsługi pakietu CanvasJS).

9. Kod programu

ddddddddddd

piątek 23-kwi-21 14:46:02 CEST


23-kwi-2021 14:46:02 CEST
by Pioter




Wszelkie prawa zastrzeżone! Kopiowanie, powielanie i wykorzystywanie zdjęć, treści oraz jej fragmentów bez zgody autora jest zabronione.
© mikroprocesory.info.pl@gmail.com 2013.