Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Вещи, которые нам понадобятся:
- Raspberry Pi с Raspbian
- Touch Sensor от adafruit
- Источник питания (аккумулятор / постоянный ток)
- Ethernet или WiFi для Raspberry Pi
- Другой компьютер
Шаг 1. Настройка оборудования Raspberry Pi
Сначала подключите наш сенсорный датчик к контактам GPIO на Raspberry Pi. Используйте несколько гибких кабелей
Определите 3 контакта на нашем датчике:
- GND - подключить к контакту заземления
- VCC - подключение к выводу 5 В
- SIG - подключиться к сигнальному штифту
В этом примере мы будем использовать 5V, землю и GPIO 18 на нашем Raspberry Pi.
Шаг 2: Настройка нашей среды на Raspberry Pi
Получите IP-адрес нашего Raspberry Pi.
Затем подключитесь к нашему Raspberry Pi по ssh:
ssh имя пользователя @ ipaddress
затем введите наш пароль.
Как только мы вошли, установите apache2 в качестве нашего веб-сервера, набрав:
sudo apt-get install apache2
Шаг 3. Разработайте фрагмент кода Python для считывания входных данных с нашего датчика
Дизайн
В нашем примере кода мы используем несколько разных команд.
Чтобы показать, что мы счастливы, делаем 2 длинных нажатия
Чтобы указать, что нам грустно, мы делаем одно короткое нажатие и одно долгое нажатие
Чтобы показать, что мы запутались, мы делаем одно короткое нажатие, выжидаем паузу, а затем 2 коротких нажатия. Чтобы показать, что мы счастливы, мы делаем одно короткое нажатие, один короткий промежуток и одно долгое нажатие
Чтобы показать, что нам скучно, делаем 3 коротких нажатия
Преобразование их в строковые команды: (t для короткого нажатия, T для длительного нажатия, g для короткого промежутка, G для большого промежутка)
счастлив: TgT
грустно: tgT
смущает: tGtgt
скучно: tgtgt
Затем наш код выведет наше текущее настроение в HTML-файл, удобный для браузера, для обслуживания.
Код
импортировать RPi. GPIO как GPIO импортировать время
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM) GPIO.setup (18, GPIO. IN)
touch_count = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd ():
global current_cmd, если current_cmd [-3:] == "TgT": current_cmd = "" настроение ("Грустно"), если current_cmd [-3:] == "tgT": current_cmd = "" настроение ("Счастливо"), если current_cmd [-5:] == "tGtgt": current_cmd = "" настроение ("Запутано") if current_cmd [-5:] == "tgtgt": current_cmd = "" настроение ("Скучно")
def настроение (настроение):
file = open ("index.html", "w") html = """
Портативный репортер настроения
Эй, мое последнее настроение
{}
"""
file.write (html.format (настроение))
в то время как (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.cleanup ()
Настройка для работы с нашим веб-сервером
введите или загрузите указанный выше файл python в расположение нашего веб-сервера, по умолчанию это / var / www / html
cd / var / www / html
sudo nano touch.py
Затем введите код выше
Шаг 4: Запустите наш сервер, чтобы увидеть его в действии
cd / var / www / html
sudo python touch.py
Затем введите IP-адрес нашего Raspberry Pi, и мы увидим, что наш репортер настроения работает!
Попробуйте разные типы сенсорных команд, и страница должна автоматически обновиться, чтобы отразить это!