Тестирование датчика температуры DS18B20 на Raspberry Pi
Тестирование датчика температуры DS18B20 на Raspberry Pi
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd /sys/bus/w1/devices
- ls
- cd 28-xxxx (замените на серийный номер, который появится)
- cat w1_slave
1-Wire интерфейс может быть немного капризным, но он надежно сообщает, доступно ли значение температуры. Поскольку датчик раскрывает свои данные как простой текстовый файл, все, что нужно — просто прочитать файл.
Первая строка заканчивается либо YES, либо NO. Если YES, вторая строка содержит температуру в тысячных долях градуса Цельсия. В примере выше датчик сообщает 20,687 °C, а затем 26,125 °C.
Когда подключено несколько датчиков, каждый появится как отдельная директория 28-xxxx. Подключайте по одному за раз, запоминайте созданную директорию и маркируйте датчик для будущего использования.
Работа с ультразвуковыми датчиками
Ультразвуковой датчик HC‑SR04 питается от шины +5 В Pi (пин 2). Триггерный пин (GPIO 23) инициирует измерение, а эхо-пин возвращает высокий импульс, ширина которого соответствует расстоянию туда-обратно. Поскольку GPIO-пины терпят только 3,3 В, делитель резисторов защищает линию эхо.
Пример кода
#!/usr/bin/python
# Import required Python libraries
import time
import RPi.GPIO as GPIO
# Use BCM GPIO references instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
# Define GPIO to use on Pi
GPIO_TRIGGER = 23
GPIO_ECHO = 24
print("Ultrasonic Measurement")
# Set pins as output and input
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger
GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo
# Set trigger to False (Low)
GPIO.output(GPIO_TRIGGER, False)
# Allow module to settle
time.sleep(0.5)
# Send 10us pulse to trigger
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
while GPIO.input(GPIO_ECHO)==0:
start = time.time()
while GPIO.input(GPIO_ECHO)==1:
stop = time.time()
# Calculate pulse length
elapsed = stop-start
# Distance pulse travelled in that time is time multiplied by the speed of sound (cm/s)
distance = elapsed * 34000
# That was the distance there and back so halve the value
distance = distance / 2
print("Distance : %.1f" % distance)
# Reset GPIO settings
GPIO.cleanup()
Ракетная установка, запускаемая ультразвуком
Следующий скрипт использует ультразвуковой датчик для запуска ракеты, когда объект ближе, чем пользовательское расстояние. Он также захватывает изображение и зажигает светодиод как визуальный индикатор.
#!/usr/bin/python
# Author : Julian and Kyle Milligan
# Date : 09/01/2013
# Import required Python libraries
import time
import RPi.GPIO as GPIO
from subprocess import call
# Use BCM GPIO references instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
# Define GPIO to use on Pi
GPIO_TRIGGER = 23
GPIO_ECHO = 24
GPIO_FIRE = 4
print("Ultrasonic Measurement")
# Set pins as output and input
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger
GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo
GPIO.setup(GPIO_FIRE,GPIO.OUT) # Fire
# Set trigger to False (Low)
GPIO.output(GPIO_TRIGGER, False)
# Allow module to settle
time.sleep(0.5)
# Set distance to trigger
setdistance = input('Please enter a value to trigger the camera:')
while True:
time.sleep(0.1)
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
s = start
quit = 0
while quit == 0:
quit = GPIO.input(GPIO_ECHO)
start = time.time()
if start - s > 0.1:
quit = 1
if start - s < 0.1:
while GPIO.input(GPIO_ECHO) == 1:
stop = time.time()
elapsed = stop-start
distance = elapsed * 34300
distance = distance / 2
print("Distance : %.1f" % distance)
if distance < setdistance:
call(["raspistill -o image.jpg"], shell=True) # take a picture with Pi Camera
print("Fire")
GPIO.output(GPIO_FIRE, True) # Turn on GPIO pin 7 fire the rockets
# Reset GPIO settings
GPIO.cleanup()
Стриминг веб-камеры с Raspberry Pi
Для стриминга видео с USB-веб-камеры убедитесь, что ваш Pi подключен к сети. Подключите недавнюю веб-камеру и следуйте официальному руководству по настройке MJPEG-стриминга. Для более глубокого погружения см. документацию теста датчика DS18B20.
Производственный процесс
- Подключение нескольких DS18B20 1-Wire датчиков к Raspberry Pi для точного мониторинга температуры
- Как подключить однопроводный датчик температуры DS1820 к Raspberry Pi через GPIO
- Подключение ультразвукового датчика HC‑SR04 к Raspberry Pi 3 — полное руководство
- Датчик слежения за линией на Raspberry Pi — простой детектор двери/линии KY‑033
- Подключение цифрового термометра DS18B20 1-Wire к Raspberry Pi — пошаговое руководство
- Создайте домашний монитор температуры на Raspberry Pi с MCP9808, InfluxDB и Grafana
- Мастерство GPIO Raspberry Pi: подключение PIR-датчика движения на B+/Model 2
- Система домашней безопасности на Raspberry Pi: обнаружение движения PIR + камера с email-уведомлениями
- Подключение, калибровка и программирование PIR-датчика HC‑SR501 с Raspberry Pi
- Датчик эмоций и ЭЭГ: низкобюджетное железо для детекции эмоций в реальном времени