Тест датчика DS18B20
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd / sys / bus / w1 / devices
- ls
- cd 28-xxxx (измените его, чтобы он соответствовал появившемуся серийному номеру)
- кот w1_slave
Интерфейс немного ненадежный, но, к счастью, он сообщает нам, есть ли допустимая температура для считывания. Это похоже на файл, поэтому все, что нам нужно сделать, это прочитать
В конце первой строки ответа будет либо ДА, либо НЕТ. Если да, то температура будет в конце второй строки с точностью до 1/000 ° C. Итак, в приведенном выше примере температура фактически читается как 20,687, а затем 26,125 ° C.
Если у вас подключено несколько датчиков, вы увидите несколько 28-xxx файлы. У каждого из них будет уникальный серийный номер, поэтому вы можете подключать по одному, смотреть, какой файл создается, и маркировать датчик!
Ультразвуковые датчики
Датчик питается от шины +5 В от контакта 2 Pi. Триггерный штифт идет от контакта 16 (Gpio23), и это сообщает датчику о начале измерения. На эхо-выводе обычно низкий уровень до тех пор, пока датчик не отправит выходной сигнал, затем он становится +5 В на время, которое датчик потребовал для измерения расстояния. Это причина для резисторов, поскольку GPIO может обрабатывать только + 3,3 В.
Диаграмма
Код
#! / usr / bin / python
# Импортировать необходимые библиотеки Python
время импорта
импортировать RPi.GPIO как GPIO
# Использовать ссылки BCM GPIO
# вместо физических номеров контактов
GPIO.setmode (GPIO.BCM)
#
# Определите GPIO для использования на Pi
GPIO_TRIGGER =23
GPIO_ECHO =24
#
print "Ultrasonic Measurement"
#
# Установить контакты как выход и вход
GPIO.setup (GPIO_TRIGGER, GPIO.OUT) # Триггер
GPIO.setup (GPIO_ECHO, GPIO.IN) # Echo
#
# Установить триггер на False (Low)
GPIO.output (GPIO_TRIGGER, False)
#
# Разрешить модуль для установки
time.sleep (0.5)
#
# Отправьте импульс 10 мкс для запуска
GPIO.output (GPIO_TRIGGER, True)
time.sleep (0.00001)
GPIO.output (GPIO_TRIGGER, False)
start =time.time ()
в то время как GPIO.input (GPIO_ECHO) ==0:
start =time.time ()
#
while GPIO.input (GPIO_ECHO) ==1:
stop =time.time ()
#
# Расчет длительности импульса
elapsed =stop- start #
# Пройденное за это время расстояние равно времени
#, умноженному на скорость звука (см / с)
расстояние =прошедшее * 34000
#
# Это было расстояние туда и обратно, поэтому уменьшите значение вдвое
distance =distance / 2
#
print "Distance:% .1f"% distance
#
# Сбросить настройки GPIO
GPIO.cleanup ()
Ультразвуковая ракетная установка
Это код и схема для запуска больших ракет Trak с использованием ультразвукового датчика на Pi. Цель состоит в том, чтобы прикрепить ракетный отсек к Big Trak с датчиком спереди. Код прост:он запрашивает расстояние, которое обычно составляет 80 (8 см). Затем он будет распечатывать измерения каждую секунду, пока не будет один ниже 80, запускает ракеты, делает снимок с помощью функции вызова и включает светодиод. Этот код находится в стадии разработки, поэтому, если вы видите способ его улучшить, я хотел бы услышать.
Схема в PDF
#! / usr / bin / python
#
#
# Автор:Джулиан и Кайл Миллиган
# Дата:01.09.2013
# Импорт необходимые библиотеки Python
время импорта
импортировать RPi.GPIO как GPIO
из вызова импорта подпроцесса
# Использовать ссылки BCM GPIO
# вместо физических номеров контактов
GPIO.setmode (GPIO.BCM)
# Определить GPIO для использования на Pi
GPIO_TRIGGER =23
GPIO_ECHO =24
GPIO_FIRE =4
#
print «Ультразвуковые измерения»
#
# Установить контакты как выход и вход
GPIO.setup (GPIO_TRIGGER, GPIO.OUT) # Триггер
GPIO.setup (GPIO_ECHO, GPIO.IN) # Echo
GPIO.setup (GPIO_FIRE, GPIO.OUT) # Fire
# Установите для триггера значение False (Low)
GPIO.output (GPIO_TRIGGER, False)
# GPIO.output (GPIO_FIRE, False)
#
# Разрешить модулю установить
time.sleep (0.5)
#
# Установить расстояние до срабатывания
setdistance =input ('Пожалуйста, введите значение для срабатывания камеры:') # на экране появится запрос на срабатывание
while True:
time.sle ep (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 ( )
если start - s> 0.1:
quit =1
#
если 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
print "Fire"
GPIO.output (GPIO_FIRE, True) ## Включите GPIO pin 7 запускайте ракеты
#
# Reset Настройки GPIO
GPIO.cleanup (
Потоковое воспроизведение веб-камеры с Pi
Ингредиенты
1. Raspberry Pi с подключением к сети / Интернету.
2. Чем новее веб-камера, тем лучше
Подробнее:Тест датчика DS18B20.Производственный процесс
- Измерение температуры с помощью однопроводного датчика DS18B20 и Raspberry Pi
- 1-проводный датчик температуры DS1820 на Raspberry Pi (напрямую через GPIO)
- Ультразвуковой датчик (HC-SR04) + Raspberry Pi
- Датчик отслеживания линии с RPi
- Цифровой датчик термометра Raspberry Pi 1-Wire (DS18B20)
- Датчик температуры Raspberry Pi
- Raspberry Pi GPIO с датчиком движения PIR:Лучшее руководство
- Домашняя система безопасности Raspberry Pi с камерой и ИК-датчиком
- Взаимодействие датчика движения HC-SR501 PIR с Raspberry Pi
- Датчик эмоций / ЭЭГ