Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Rzeczy, których będziemy potrzebować:
- Raspberry Pi z Raspbian
- Czujnik dotykowy od adafruit
- Źródło zasilania (akumulator/prąd stały)
- Ethernet lub WiFi dla Raspberry Pi
- Inny komputer
Krok 1: Konfigurowanie naszego sprzętu Raspberry Pi
Najpierw podłącz nasz czujnik dotykowy do pinów GPIO na naszym Raspberry Pi. Użyj elastycznych kabli
Zidentyfikuj 3 piny na naszym czujniku:
- GND - podłącz do pinu uziemienia
- VCC - podłącz do pinu 5V
- SIG - połącz z pinem sygnałowym
W tym przykładzie użyjemy 5V, uziemienia i GPIO 18 na naszym raspberry pi.
Krok 2: Konfigurowanie naszego środowiska na Raspberry Pi
Uzyskaj adres IP naszego Raspberry Pi.
Następnie połącz się z naszym raspberry pi za pomocą ssh:
ssh nazwa_użytkownika@ipaddress
następnie wpisz nasze hasło.
Gdy już jesteśmy, zainstaluj apache2 jako nasz serwer WWW, wpisując:
sudo apt-get zainstaluj apache2
Krok 3: Zaprojektuj fragment kodu Pythona, aby odczytać dane wejściowe z naszego czujnika
Projekt
W naszym przykładowym kodzie używamy kilku różnych poleceń.
Aby zaznaczyć, że jesteśmy szczęśliwi, wykonujemy 2 długie naciśnięcia
Aby wskazać, że jesteśmy smutni, wykonujemy jedno krótkie dotknięcie i jedno długie naciśnięcie
Aby wskazać, że jesteśmy zdezorientowani, wykonujemy jedno krótkie stuknięcie, czekamy na takt, a następnie dwa krótkie stuknięcia. Aby wskazać, że jesteśmy szczęśliwi, wykonujemy jedno krótkie dotknięcie, jedno krótkie odstępy i jedno długie naciśnięcie
Aby wskazać, że się nudzimy, wykonujemy 3 krótkie stuknięcia
Tłumaczenie ich na polecenia tekstowe: (t dla krótkiego stuknięcia, T dla długiego naciśnięcia, g dla krótkiej przerwy, G dla długiej przerwy)
szczęśliwy: TgT
smutny: tgT
zdezorientowany: tGtgt
znudzony: tgtgt
Następnie nasz kod wyśle nasz aktualny nastrój do przyjaznego dla przeglądarki pliku html do serwowania.
Kod
importuj RPi. GPIO jako czas importu GPIO
GPIO.oczyszczanie()
GPIO.setmode(GPIO. BCM) GPIO.setup(18, GPIO. IN)
liczba_dotknięć = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd():
global current_cmd if current_cmd[-3:] == "TgT": current_cmd = "" mood("Smutny") if current_cmd[-3:] == "tgT": current_cmd = "" mood("Szczęśliwy") if current_cmd [-5:] == "tGtgt": current_cmd = "" mood("Zmieszany") if current_cmd[-5:] == "tgtgt": current_cmd = "" mood("Znudzony")
def nastrój(nastrój):
file = open("index.html", "w") html = """
Przenośny rejestrator nastroju
Hej, mój ostatni nastrój to
{}
"""
file.write(html.format(nastrój))
podczas (1):
time.sleep(0.001) if(GPIO.input(18)): if touch_state==0: if gap_duration > 2000: gap_duration = 0 if gap_duration > 200: current_cmd = current_cmd + "G" else: current_cmd = current_cmd + "g " gap_duration = 0 touch_state = 1 touch_count = touch_count + 1 if touch_state==1: touch_duration = touch_duration + 1 else: if gap_duration 200: current_cmd = current_cmd + "T" else: current_cmd = current_cmd + "t" touch_duration = 0 cmd()
GPIO.oczyszczanie()
Konfiguracja do pracy z naszym serwerem internetowym
wpisz lub prześlij powyższy plik Pythona do naszej lokalizacji serwera WWW, który jest domyślnie /var/www/html
cd /var/www/html
sudo nano touch.py
Następnie wpisz powyższy kod
Krok 4: Uruchom nasz serwer, aby zobaczyć go w akcji
cd /var/www/html
sudo python touch.py
Następnie wpisz adres IP naszego Raspberry Pi, wtedy powinniśmy zobaczyć, jak działa nasz reporter nastroju!
Wypróbuj różne typy poleceń dotykowych, a strona powinna się automatycznie odświeżyć, aby to odzwierciedlić!