управление освещением

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

Управление освещением и голосовое оповещение о погоде. Пример кода и электрическая схема подлючения реле к 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 вольт! Это смертельно.

Тэги:

 

Автор:

Комментариев: 12

  • Mike3
    02.01.2014 в 23:23 ответ

    В качестве речевого синтезатора можно использовать Festival TTS

    • IvanSCM10
      02.01.2014 в 23:29 ответ

      Можно) Только он думает дольше при синтезе, а запрос быстрее идет. Да качество не ахти. Как бы не хочется заставлять пользователя системы ждать, это плохо для любого продукта или программы )

  • dimonoid9
    03.01.2014 в 00:57 ответ

    Скажите, а питон какой версии использовался?

    • IvanSCM10
      03.01.2014 в 01:47 ответ

      Python 2.7.3

      • dimonoid9
        03.01.2014 в 02:31 ответ

        Просто я хотел-бы начать изучать питон, да не знаю, с какой версии лучше начать.

        • IvanSCM10
          03.01.2014 в 11:46 ответ

          Для начала без разницы версия. Вы вообще знакомы с программированием? Опыт был ранее? ) Если был труда не составит

        • Mike3
          03.01.2014 в 12:18 ответ

          Начать лучше с С и не забивать мозги питонами

          • dimonoid9
            03.01.2014 в 16:00 ответ

            Так я уже и начал с си, и собираюсь продолжить на питоне...

            • Mike3
              03.01.2014 в 16:13 ответ

              А смысл? Продолжайте и дальше изучать Си, начните знакомство с фреймворком Qt5.

  • dimonoid9
    04.01.2014 в 00:15 ответ

    Я тут пытался разобраться в этой программе - зачем тут LIGHT2 ?

    • IvanSCM10
      04.01.2014 в 13:26 ответ

      можете выпилить, я хотел еще повешать реле ) но передумал

  • leon200011
    20.02.2014 в 10:39 ответ

    А скажите пожалуйста, для чего тут стоит диод? Не очень силен в электронике.

Ваш комментарий

Авторизуйтесь для отправки комментария

© Сообщество пользователей RaspberryPi 2021