Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
piP

pi

@pi
Сводка
Сообщения
6.3k
Темы
1.6k
Группы
1
Подписчики
0
Подписки
0

Сообщения

Последние Лучшие сообщения Спорные

  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    так и не получилось, играя со значениями, добиться нужного результата… пришлось применить немного говнокода 😄
    может кому пригодится, у кого геркон будет так же «дрибезжать». возможно проблема в нем, надо попробовать другой поставить.
    цель была оповещать когда произойдет открытие.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #
    import RPIO	# Импортируем библиотеку RPIO
    import time	# ...и для работы со временем
    import MySQLdb
    import gc	#чистка мусора
    import requests
    import datetime
    from time import sleep
    close=0
    input_pins = (18,19,20,21,22,23,24,25,26,27) # Задаем номера пинов, которые будут использоваться под ввод. Лучше внести в этот список побольше пинов, дабы избежать наводок.
    for i in xrange(len(input_pins)): # Включаем их на ввод и подтягиваем к земле
    	RPIO.setup(input_pins[i], RPIO.IN, pull_up_down=RPIO.PUD_DOWN)
    def write_door_state(gpio_id, val): # Создаем функцию, запускаемую при изменении состояния GPIO
    	dat=datetime.datetime.now().strftime("%d.%m.%Y %H:%M:%S")
    	if val==0:
    		global close
    		if close==0:
    			close=1
    			try:
    				db = MySQLdb.connect(host="localhost",user="log",passwd="pas",db="1")
    			except:
    				print "connection failed"
    			door = open('/home/pi/project/door', 'w', 0)
    			door.write (time.strftime("0 "+"%Y-%m-%d %H:%M:%S")+"\tОткрытие\r\n") #\t - символ табуляции, \r\n - перевод строки
    			try:
    				cursor = db.cursor()
    				sql = """insert into door (bool,date,name) values ('%(val)s','%(date)s','%(stat)s')"""%{"val":'0', "date":dat, "stat":'Open'}
    				cursor.execute(sql)
    				db.commit()
    				cursor.close()
    				time.sleep(5) # delays for 5 seconds
    			except MySQLdb.Error as e:
    				print "MySQL Error: %s" % str(e)
    			else:
    				db.close()
    				gc.collect()
    			door.close()
    			requests.get("http://sms.ru/sms/send?api_id=блабла&to=номер&text=Door open!") 
    			time.sleep(60) # delays for 60 seconds	
    	else:
    		door = open('/home/pi/project/door', 'w', 0)
    		close=0
    		door.write (time.strftime("1 "+"%Y-%m-%d %H:%M:%S")+"\tЗакрытие\r\n")
    		door.close()
    # Настраиваем порт на ожидание прерываний и выполнение выщенаписанной функции#Добавляем прерывание, с подтяжкой к земле и подавлением дребезга контактов
    RPIO.add_interrupt_callback(22, write_door_state,pull_up_down=RPIO.PUD_DOWN, threaded_callback=True, debounce_timeout_ms=50) 
    
    RPIO.wait_for_interrupts() # Ждем прихода прерывания.
    

  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Возможно, наводки или дребезг контактов. Добавьте побольше пинов в input_pins и поэкспериментируйте с различными значениями debounce_timeout_ms.


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Добрый вечер
    попробовал сделать так же, но в логи почему то пишет часто состояние, я думал он писать только будет когда изменится статус.

    10.12.2016 18:32:35 Закрытие
    10.12.2016 18:33:03 Закрытие
    10.12.2016 18:33:32 Закрытие
    10.12.2016 18:33:33 Закрытие
    

    никто не сталкивался с таким?


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    А есть программа наподобие ArduBloсk но для малинки?


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Запросы можно осуществлять при помощи библиотеки urllib


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Для практики хорошая адача, но по-делу, стоимость велокомпьютера 300-450 руб и их так много…


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    добрый день! Такая же ситуация только разбираюсь как работать с GPIO. Задача состоит в том чтобы при срабатывании контактных датчиков (через оптопары) на Localhost отправлялась следующее: Например сработал Pin 17 т.е на нем 1 (или другой контакт всего их задействовано 4 (это датчики положения ворот открыто/закрыто а также кнопки открыть закрыть) то отправится должно:

    GET/objects/object=sensorMovement2&op=m&m=statusChanged&status=%i HTTP/1.0",
    

    Это для управления сценариями в системе MajorDoMo все варианты перепробовал но знаний не хватает…


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Попробуйте следующий вариант:

    import rpio
    import webbrowser
    RPIO.add_interrupt_callback(17, webbrowser.open("http://raspberrypi.ru"),pull_up_down=RPIO.PUD_DOWN, debounce_timeout_ms=50, edge='rising')
    RPIO.wait_for_interrupts()
    

    Ссылка откроется когда на 17 порту будет единица


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Здравствуйте. я в программировании чайник без ручки. подскажите как написать программу на питоне чтобы при нуле или 1(без разницы) на gpio порт к примеру 17 открывалась ссылка на сайт.


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    А с велокомпьютером кстати неплохая идея, можно забить в него что-то вроде базы данных компонентов и чтобы были предупреждения о необходимости обслуживания или замены определенного компонента при определенном пробеге.


  • Запись времени захода в комнату или простой пример работы с прерываниями по GPIO на Python
    piP pi

    Спасибо за интересную статью!!! Особенно за программную реализацию!!! Хочу сделать спидометр для велосипеда с применением геркона 😃 Думаю, что код с нуля писать не придется, а достаточно будет этот переделать под свои нужды))


  • GPIO для чайников (часть 5)
    piP pi

    Блин.. да какие же суки кругом статьи пишут.. открываешь, читаешь, надо ко ко ко два резистора, поддяжку туда, поддтяжку сюда, иначе на землю замкнёт всё сгорит. В мне 4 кнопки надо, так там мешок резисторов погони, весь вечер их искал. А первая мысль, какой даун так схемы делает, в ардуино конечно тоже резисторы в каждую щель хотят, но никогда с ними не возился, всё так подключанию, ничего нигде не горело.. А тут на, особенная схема, помрёшь пока подключишь..

    А не деле вот оно, как всё просто.


  • GPIO для чайников (часть 5)
    piP pi

    Всем привет.
    есть raspberry pi3 нужно собрать монтажную плату и подключить пару кнопок.
    за вознаграждение.
    пишите если у кого есть желание.


  • GPIO для чайников (часть 5)
    piP pi

    То, что логика инвертируется — понятно.


  • GPIO для чайников (часть 5)
    piP pi

    Есть ли разница как работать с пином: 3.3В + «Пин» или «Пин» + «Земля»?


  • GPIO для чайников (часть 5)
    piP pi

    Схема подключения кнопки в самом начале — это я даже не знаю как назвать. Такое даже любителю в голову не придёт. А уж в качестве «познавательного» материала это вообще нельзя показывать, это не может быть учебным материалом. Вы бы лучше это убрали и не позорились!
    И где защита от дребезга контактов кнопки? В примере при нажатии кнопки просто выход из программы — прокатит, но если вы будете управлять программой, то такие фортели получите, мама не горюй! Стыдно должно быть такие «учебные» материалы выкладывать.


  • GPIO для чайников (часть 5)
    piP pi

    Подскажите чайнику, перерыл все, не могу найти пример программы, чтобы зажигать светодиод от нажатия кнопки, но чтобы он не тух когда кнопку отпускаешь, а тух уже при следующем нажатии. И так далее бесконечно раз…
    За ранее спасибо!


  • GPIO для чайников (часть 5)
    piP pi

    Вопрос закрыт. Up значит вверх...к питанию...


  • GPIO для чайников (часть 5)
    piP pi

    А точно подтяжка у P1-05 через 1K8 pull up resistor на 3,3 В.. Или через 1K8 pull up на GND. тэ е. Куда именно подтяжка на землю или на питание 3.3 В?


  • GPIO для чайников (часть 5)
    piP pi

    По схеме GPIO --1K8 pull up resistor-- имеют только P1-03 и P1-05... P1-13 не имеет внутренней подтяжки.. Соответственно включать нечего..

  • 1 / 1
  • Войти

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

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