MPU-6050 jest miniaturowym modułem 3 osiowego akcelerometru i żyroskopu.
Oprogramowanie służy do demonstacji działania modułu współpracującego z płytką ESP32. Na podstawie
danych odczytywanych z modułu generowana jest strona w przeglądarce internetowej. Dane na stronie prezentowane
są w formie tekstowej oraz jako wizualizacja orientacji modułu w przestrzeni.
Oprogramowanie oparte zostało na projekcie "ESP32 Web Server with MPU-6050 Accelerometer and Gyroscope
(3D object representation)" autorstwa Rui Santos-a i wykorzystuje bibliotekę MPU6050_tockn.
Cechy programu demonstracyjnego:
Widok wygenerowanej strony w przeglądarce
Moduł i płytkę ESP32 należy połączyć tak jak to pokazano na rysunku poniżej.
ESP32 sygnał | ESP32 port | MPU-6050 sygnał |
---|---|---|
VCC | 3V3 | VCC |
GND | GND | GND |
SCL I2C | GPIO22 | SCL |
SDA I2C | GPIO21 | SDA |
Oprogramowanie demonstracyjne zostało przygotowane w formie pakietu dla edytora Arduino.
Aby możliwa była prawidłowa kompilacja i działanie w edytorze musi być zainstalowane rozszerzenie
dla płytki ESP32. W opcjach edytora Narzędzia->Płytka: należy wybrać typ płytki do której będzie
zapisywane oprogramowanie np. "ESP32 Dev Module".
Będzie także potrzebna zainstalowana wtyczka "ESP32 Sketch Data Upload" do przesyłania systemu plików ESP.
Jeżeli w edytorze nie ma wtyczki, należy:
Do odczytu i zarządzania danymi z MPU-6050, oprogramowanie demonstracyjne odwołuje się do procedur umieszczonych w zewnętrznych bibliotekach: MPU6050_tockn i Arduino_JSON. Biblioteki można dodać do Arduino IDE albo poprzez menedżer bibliotek Arduino->Szkic->Dołącz bibliotekę->Zarządzaj bibliotekami albo poprzez ręczne dodanie plików bibliotek do folderu .../Arduino/libraries/
Oprogramowanie działa jako serwer WWW, który jest dostępny w obrębie wybranej sieci WiFi. Działając jako stacja, oprogramowanie zainstalowane na płytce ESP32 musi znać nazwę i hasło sieci do której będzie się logować. Dane te zapisane są na stałe na początku pliku źródłowego z roszerzeniem .ino.
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
Obok pliku źródłowego z rozszerzeniem .ino powinien znaleźć się podkatalog /data zawierający pliki dzięki którym przeglądarka wyświetli generowaną przez serwer stronę WWW z danymi odczytywanymi z modułu MPU-6050. Są to:
Po zasileniu połączonych płytek ESP32 i modułu MPU-6050, układ zaczyna działanie jako serwer od próby
zalogowania się do sieci o podanych na początku pliku źródłowego nazwie i haśle. W przypadku sukcesu
wysyła portem szeregowym z ustawioną szybkością 115200 bps przydzielony przez router adres IP w ramach
sieci WiFi.
Connecting to WiFi...
192.168.0.157 (to przykładowy numer)
Po wpisaniu numeru w pasku adresu przeglądarki powinna wyświetlić się strona podobna do
tej powyżej.
Po zalogowaniu do sieci przeprowadzana jest kalibracja modułu MPU-6050 podczas której, przez okres 3 sekund
powinien pozostawać w bezruchu.
Po około 6 sekundach od włączenia zaczyna się automatyczne odświeżanie danych odczytywanych
z modułu MPU-6050 i grafiki 3D odwzorowującej położenie płytki czujnika.