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)
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
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)
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)
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)
#!/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()