System do głosowania

Typ_projektu
microPython
Zdjecie główne
Krótki opis projektu

Projekt realizuje system głosowania z wykorzystaniem ośmiu mikrokontrolerów ESP8266 programowanych w MicroPythonie. Jedna płytka pełni rolę serwera, a pozostałe siedem działa jako klienci. Oczywiście "klientów", czyli płytek do głosowania może być dowolna ilość, w zależności od potrzeb. Serwer zbiera głosy przesyłane przez klientów i wyświetla wyniki na stronie internetowej.

Każdy klient jest podłączony do płytki stykowej z dwoma przyciskami ("TAK" i "NIE") i komunikuje się z serwerem przez Wi-Fi. Serwer, połączony z komputerem za pomocą kabla, obsługuje żądania HTTP i aktualizuje liczniki głosów.

Projekt wykorzystuje środowisko Thonny i język MicroPython do programowania ESP8266, umożliwiając prostą i skuteczną implementację systemu głosowania.

Kody wygenerowano przy wsparciu technologii AI.

Niezbędne elementy

1. Płytka ESP8266 1+x (w zależności ile chcemy mieć urządzeń do głosowania)

2. Kable USB - micro USB B (jeden z przesyłem danych + bez przesyłu danych tyle co urządzeń do głosowania)

3. Płytka stykowa do każdego urządzenia do głosowania

4. Po 2 przęłączniki do każdego urządzenia do głosowania

5. Przewody męsko - męskie

6. Powerbanki

Opis projektu

Projekt realizuje rozproszony system głosowania, który wykorzystuje osiem mikrokontrolerów ESP8266 programowanych w języku MicroPython. System składa się z jednej płytki pełniącej rolę serwera oraz siedmiu płytek-klientów. Serwer gromadzi głosy przesyłane przez klientów i prezentuje wyniki na stronie internetowej dostępnej w lokalnej sieci Wi-Fi.

Główne elementy projektu

1. Serwer

Serwer jest kluczowym elementem systemu. Jego zadaniem jest:

  • Obsługa połączeń HTTP od klientów.
  • Zbieranie głosów w postaci żądań HTTP GET (np. głos "TAK" lub "NIE").
  • Aktualizowanie liczników głosów.
  • Hostowanie strony internetowej, na której wyświetlane są aktualne wyniki głosowania.

Serwer jest podłączony do komputera za pomocą kabla USB z przesyłem danych, co pozwala na łatwe monitorowanie działania systemu. Mikrokontroler łączy się z siecią Wi-Fi hostowaną przez telefon, co zapewnia prostą i elastyczną konfigurację bez potrzeby dodatkowego routera.

2. Klienci

Każdy z siedmiu klientów odpowiada za rejestrowanie głosów od użytkowników. Każda płytka ESP8266-klient jest podłączona do płytki stykowej, na której znajdują się dwa przyciski. W celu ich rozróżnienia:

  • Przycisk "TAK" – połączono zielonymi przewodami.
  • Przycisk "NIE" – połączono czerwonymi przewodami.

Po wciśnięciu jednego z przycisków, klient wysyła odpowiednie żądanie HTTP GET do serwera. Klient może oddać tylko jeden głos na głosowanie. Klienci są zasilani zewnętrznie i nie wymagają połączenia danych z komputerem, co zwiększa mobilność systemu.

3. Komunikacja

Komunikacja między serwerem a klientami odbywa się za pomocą sieci Wi-Fi. Telefon pełni funkcję punktu dostępowego (hotspot), do którego podłączają się wszystkie płytki ESP8266. Serwer nasłuchuje na porcie 80 i rejestruje głosy przesyłane przez klientów.

4. Wyświetlanie wyników

Wyniki głosowania są dostępne na stronie internetowej hostowanej przez serwer. Strona jest prosta i intuicyjna, wyświetla:

  • Liczbę głosów "TAK".
  • Liczbę głosów "NIE".
  • Informację o konieczności odświeżenia strony, aby zobaczyć aktualne wyniki.

5. Programowanie i środowisko

Projekt został zaimplementowany w języku MicroPython, który jest idealny do programowania mikrokontrolerów takich jak ESP8266. Do programowania użyto środowiska Thonny.

Zastosowania i zalety projektu

  • Zastosowania:
    System może być wykorzystany do prostych głosowań w małych grupach, np. w szkołach, biurach czy na spotkaniach.

  • Zalety:

    • Rozproszony system głosowania z wieloma klientami.
    • Prosta obsługa dzięki przyciskom.
    • Wyniki dostępne w czasie rzeczywistym na stronie internetowej.
    • Łatwa konfiguracja dzięki wykorzystaniu sieci Wi-Fi.
    • Możliwość rozbudowy o dodatkowe funkcje, np. autoryzację głosów

Wskazówki przy tworzeniu projektu

  • Pobierz Thonny oraz sterownik dla ESP8266 V3 (linki poniżej).
  • Po podłączeniu po raz pierwszy płytki esp8266 w Thonny wybierz opcje: Narzędzia→Opcje→Interpreter wybieramy MicroPython (ESP8266) oraz port i klikamy: Zainstaluj lub zaktualizuj MicroPython (esptool) nastepnie wybieramy opcje tak jak na obrazie: instalacja firmware i instalujemy.
  • Kody programów instalujemy na płytkach poprzez podłączenie płytki do kabla z przesyłem danych, nastepnie w Thonny: Plik→Zapisz jako→Urządzenie MicroPython. W tym przypadku, aby kod na płytce uruchamiał się automatycznie po jej podłączeniu do zasilania, należy przy zapisie kodu na płytce nazwać go main.py. Innym sposobem jest również zmodyfikowanie pliku boot.py na płytce.
  • W gotowych programach serwer.py oraz klient.py w 7 i 8 linijce kodu należy skonfigurować sieć Wi - Fi, do której chcemy, aby płytki się łączyły. Ponadto w kodzie klient.py w 11 linijce należy podać adres IP serwera, który można odczytać z powłoki w Thonny po podłączeniu się serwera do sieci.
Zdjęcia
Instalacja firmware
Pojedyncze urządzenie do głosowania
kod programu

ZIP poniżej

Schemat
Tagi
#microPython #głosowanie #esp8266 #mikroprocesory #progrmowanie
Odnośniki zewnętrzne
1) Sterownik do układu CH340 - https://sparks.gogo.co.nz/ch340.html
2) Ściągnij środowisko Thonny - https://thonny.org