示例#1
0
    def __init__(self,
                 capteur=None,
                 micro_controleur=None,
                 capteur_hc=None,
                 led=led_io(),
                 intensity_max=45,
                 energy_tr=2.5,
                 nb_tours_mesure=1,
                 counter_hc=0.0,
                 counter_hp=0.0,
                 led_hc=led_io()):
        '''Initialisation
			- capteur			: 	qrd1114_io sur la roue (optionnel) (remplace le micro_controleur)
			- micro_controleur	:	micro controleur pour mesure nb de tours (optionnel) (remplace le capteur optique)
			- capteur_hc		:	capteur d'heure creuse (class bt_io)
			- intensite_max		:	intensité maximum de l'abonnement
			- energy_tr			:	energie par tour de roue en Wh/tr
			- led				:	led pour une impulsion par tour
			- nb_tours_mesure	:	Nb de tour de roue utilisés pour réaliser la mesure
			- counter_hc		:	Compteur Heures creuse en Kwatt
			- counter_hp		:	Compteur Heures pleines en Kwatt
		'''
        if micro_controleur == None:
            assert isinstance(
                capteur,
                qrd1114_analog_io), "capteur must be a qrd1114_analog_io"
        self.capteur = capteur
        if capteur == None:
            assert isinstance(micro_controleur,
                              i2c_device_io), "capteur must be a i2c_device_io"
        self.micro_controleur = micro_controleur
        assert capteur_hc == None or isinstance(
            capteur_hc, bt_io), "capteur_hc must be a bt_io"
        self.capteur_hc = capteur_hc
        assert isinstance(led, led_io), "led must be a led_io"
        self.led = led
        self.energy_tr = energy_tr
        self.mini_tr = 3600. / (intensity_max * 230) * self.energy_tr
        self.mini_noir = self.mini_tr * 2.5 / 100 * 0.4  # durée mini du trait noir qui correspond à 2.5% du cercle -60% de marge
        self.nb_tours_mesure = nb_tours_mesure
        self.seuil_delestage = intensity_max * 230 * 0.90  # à 90% du max
        self.counter_hc = counter_hc
        self.counter_hp = counter_hp
        self.terminated = False  #Pour tuer l'enregistrement
        self.led_hc = led_hc
        # Creation d'une thread pour gestion led heure creuses
        if capteur_hc:
            self.capteur_hc.add_thread(on_changed=self.on_capteur_hc_change,
                                       pause=1)
示例#2
0
	def __init__(self, capteur, capteur_hc = None, led = led_io(), intensity_max=45, energy_tr=2.5, nb_tours_mesure = 1, counter = 0):
		'''Initialisation
			- capteur			: 	qrd1114_io sur la roue
			- capteur_hc		:	qrd1114_io sur la fleche des heures creuses
			- intensite_max		:	intensité maximum de l'abonnement
			- energy_tr			:	energie par tour de roue en Wh/tr
			- led				:	led pour une impulsion par tour
		'''
		assert isinstance(capteur, qrd1114_analog_io), "capteur must be a qrd1114_analog_io"
		self.capteur = capteur
		assert capteur_hc == None or isinstance(capteur_hc, bt_io), "capteur_hc must be a bt_io"
		self.capteur_hc = capteur_hc
		assert isinstance(led, led_io), "led must be a led_io"
		self.led = led
		self.energy_tr = energy_tr
		self.mini_tr = 3600. / (intensity_max * 230)*self.energy_tr
		self.mini_noir = self.mini_tr *2.5/100*0.6 # durée mini du trait noir qui correspond à 2.5% du cercle -40% de marge
		self.nb_tours_mesure = nb_tours_mesure
		self.seuil_delestage = intensity_max * 230 * 0.90 # à 90% du max
		self.counter = counter
		self.terminated = False #Pour tuer l'enregistrement
示例#3
0
            return 'HP'

    def on_capteur_hc_change(self):
        ''' Methode executer en cas de changement d'état HC/HP
		'''
        if self.capteur_hc.read():
            self.led_hc.on()
            logging.info("Période HEURES CREUSES activée.")
        else:
            self.led_hc.off()
            logging.info("Période HEURES CREUSES Désactivée.")


#########################################################
#                                                       #
#		EXEMPLE                                         #
#                                                       #
#########################################################

if __name__ == '__main__':
    pc = rpiduino_io()
    mcp3008 = mcp3008_hspi_io()  #Pour lecture analogique sur Rpi
    compteur = compteur_edf(qrd1114_analog_io(mcp3008.pin[0]),
                            led_io(pc.bcm_pin(16)), 45, 2.5)

    def rec_f(date_time, energy, power, counter):
        print "%s : %.1fWh ie %.1fWatts. Compteur : %s" % (date_time, energy,
                                                           power, counter)

    compteur.record(rec_f)
示例#4
0
		moyenne = 0
		nb = 0
		now=time.time()
		while time.time()<now+duration:
			moyenne += self.capteur.read()
			nb += 1
		return moyenne / nb
	
	def type_horaire(self):
		'''Renvoie le type d'horaire HC/HP
		'''
		if self.capteur_hc.read():
			return 'HC'
		else:
			return 'HP'

#########################################################
#                                                       #
#		EXEMPLE                                         #
#                                                       #
#########################################################

if __name__ == '__main__':
	pc = rpiduino_io()
	mcp3008 = mcp3008_hspi_io()	#Pour lecture analogique sur Rpi
	compteur = compteur_edf(qrd1114_analog_io(mcp3008.pin[0]), led_io(pc.bcm_pin(16)), 45,2.5)
	def rec_f(date_time, energy, power, counter):
			print "%s : %.1fWh ie %.1fWatts. Compteur : %s"%(date_time, energy, power, counter)
	compteur.record(rec_f)
	
	
示例#5
0
	def __init__(self, capteur = None, micro_controleur = None, capteur_hc = None, led = led_io(), intensity_max=45, energy_tr=2.5, nb_tours_mesure = 1, counter_hc = 0.0, counter_hp = 0.0, led_hc = led_io()):
		'''Initialisation
			- capteur			: 	qrd1114_io sur la roue (optionnel) (remplace le micro_controleur)
			- micro_controleur	:	micro controleur pour mesure nb de tours (optionnel) (remplace le capteur optique)
			- capteur_hc		:	capteur d'heure creuse (class bt_io)
			- intensite_max		:	intensité maximum de l'abonnement
			- energy_tr			:	energie par tour de roue en Wh/tr
			- led				:	led pour une impulsion par tour
			- nb_tours_mesure	:	Nb de tour de roue utilisés pour réaliser la mesure
			- counter_hc		:	Compteur Heures creuse en Kwatt
			- counter_hp		:	Compteur Heures pleines en Kwatt
		'''
		if micro_controleur==None:
			assert isinstance(capteur, qrd1114_analog_io), "capteur must be a qrd1114_analog_io"	
		self.capteur = capteur
		if capteur==None:
			assert isinstance(micro_controleur, i2c_device_io), "capteur must be a i2c_device_io"	
		self.micro_controleur = micro_controleur
		assert capteur_hc == None or isinstance(capteur_hc, bt_io), "capteur_hc must be a bt_io"
		self.capteur_hc = capteur_hc
		assert isinstance(led, led_io), "led must be a led_io"
		self.led = led
		self.energy_tr = energy_tr
		self.mini_tr = 3600. / (intensity_max * 230)*self.energy_tr
		self.mini_noir = self.mini_tr *2.5/100*0.4 # durée mini du trait noir qui correspond à 2.5% du cercle -60% de marge
		self.nb_tours_mesure = nb_tours_mesure
		self.seuil_delestage = intensity_max * 230 * 0.90 # à 90% du max
		self.counter_hc = counter_hc
		self.counter_hp = counter_hp
		self.terminated = False #Pour tuer l'enregistrement
		self.led_hc = led_hc
		# Creation d'une thread pour gestion led heure creuses
		if capteur_hc:
			self.capteur_hc.add_thread(on_changed = self.on_capteur_hc_change, pause = 1)
示例#6
0
#!/usr/bin/env python
# -*- coding:utf-8 -*

from FUTIL.my_logging import *
from FGYRO.mqtt_camera import *
from FGPIO.rpiduino_io import *
from FGPIO.led_io import *

my_logging(console_level=DEBUG, logfile_level=DEBUG, details=False)
logging.info('FGYRO.main.py start')

pc = rpiduino_io()
leds = led_io(pc.bcm_pin(23))

cam = mqtt_camera(mqtt_host='10.3.141.1',
                  image_folder='./capture/',
                  mqtt_base_topic='FILEUROPE/CAM',
                  leds=leds,
                  tempo=2.5,
                  camera_timeout=5)
cam.loop_forever()