Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Блоги сообщества Raspberry Pi
  3. Управление освещением и голосовое оповещение о погоде

Управление освещением и голосовое оповещение о погоде

Запланировано Прикреплена Закрыта Перенесена Блоги сообщества Raspberry Pi
1 Сообщения 1 Posters 64 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано pi
    #1

    Управление освещением и голосовое оповещение о погоде. Пример кода и электрическая схема подлючения реле к Raspberry Pi. Запилил видео, где рассказываю о простейшем применении "малинки".

    Предварительно установитеmplayer и alsa:

    sudo apt-get install alsa-utils
    sudo apt-get install mplayer
    

    Также установите pip для Python, для легкой установки пакетов. И затем c его помощью установите feedparser. Рассказывать не буду, проще найти информацию по запросу "install pip python" в гугле )

    Сам код для скрипта WebIOPi:

    # заставляем работать с кодировкой utf8, необходимо для гугло транслита
    # -*- coding: utf-8 -*-
    # импорт модулей
    import webiopi
    import subprocess
    import feedparser
    
    # получаем GPIO
    GPIO = webiopi.GPIO
    
    # константы на нумерацию портов GPIO
    LIGHT = 23
    LIGHT2 = 18
    BUTTON1 = 17
    BUTTON2 = 22
    
    def setup():
        # конфигурируем пины GPIO
        GPIO.setFunction(LIGHT, GPIO.OUT)
        GPIO.setFunction(LIGHT2, GPIO.OUT)
        GPIO.setFunction(BUTTON1, GPIO.IN)
        GPIO.setFunction(BUTTON2, GPIO.IN)
    
    def loop():
    	# ловим нажатие кнопки 1
    	if (GPIO.digitalRead(BUTTON1) == GPIO.HIGH):
    		# инвертируем значение на пине (программный свитч)
    		GPIO.digitalWrite(LIGHT, not GPIO.digitalRead(LIGHT))
    	# ловим нажатие кнопки 2
    	if (GPIO.digitalRead(BUTTON2) == GPIO.HIGH):
    		# предупреждаем о задержке
    		subprocess.call(["mplayer", "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=Пожалуйста, ожидайте, запрашиваю погоду."])
    		# вытаскиваем погоду
    		d = feedparser.parse('http://rp5.kz/rss/76334/ru')
    		# читаем погоду
    		subprocess.call(["mplayer", "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q="+d.entries[0].title])
    
    def destroy():
    	# заканчиваем работу, выключаем свет )
        GPIO.digitalWrite(LIGHT, GPIO.LOW)
    

    Схема:

    Транзистор любой NPN структуры, я использовал советский КТ961Б, для работы в режиме коммутации подойдет любой. Сопротивление подобрать для необходимого тока открывания транзистора. Реле я взял SRI-05VDC-SD-C с напряжением 5 вольт и максимальным током для контактов 10А. Диод 1N4001 вроде, необходим для уберания эффекта самоиндукции катушки реле, иначе попалим транзистор и ногу малинки. Земля на транзисторе общая с питанием реле и малиной. НИ В КОЕМ СЛУЧАЕ НЕ ПИТАЙТЕ РЕЛЕ ОТ GPIO! Спалите нахрен малину) Перед питанием можно включить реле. А так желательно отдельный источник питания для таких штук. Реле можно и на 12 вольт.Просьба не винить меня за спаленные малины, делаете все на свой страх и риск. Необходимо уметь держать паяльник и знать основы работы с электрическими цепями. Осторожнее в цепях 220 вольт! Это смертельно.

    1 ответ Последний ответ
    0

    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Login or register to search.
    • Первое сообщение
      Последнее сообщение
    0
    • Категории
    • Главная
    • Документация
    • Последние
    • Пользователи