Conception et fabrication d’un poulailler connecté

Après la folle aventure du potager connecté, nous voici repris de connectivité aiguë !

Voici une visite guidée de 7 minutes : ( Vous pouvez vous abonner à ma chaîne : https://www.youtube.com/channel/UCtMHR7ng1EaqPY_8dGJW2TA )

Nous avons tenté de vivre en symbiose avec 5 poules pendant 6 mois, mais le bilan n’a pas été bon :

  • le partage de l’espace n’a pas été équitable, l’herbe ne s’en est pas remise et les rebords de fenêtre non plus !
  • la chasse aux œufs a un certain charme à Pâques, mais tous les jours, c’est lassant

Les contraintes liées aux poules sont :

  • L’eau
  • L’alimentation (céréales & restes)
  • La protection / isolation physique
  • La récupération des œufs

Après un tour du marché, j’ai trouvé celui ci : https://fr.eggs-iting.com/ qui actuellement ressemble plus à de la R&D qu’à un réel produit. De plus, l’algorithme de détection des œufs ne m’a pas convaincu.

Pour gérer ces contraintes, nous leur avons construit un espace clos et avons automatisé une partie des contraintes.

La construction du poulailler

Élagage de l’arbre, mise à niveau de la terre, suppression de l’ancienne barrière.
Réalisation d’un plancher pour la partie humaine du poulailler. Les deux poutrelles de béton sont un recyclage de l’ancienne cuve à fuel de la maison.
Gestion des contraintes arboricoles
Titouan à l’oeuvre
Fixation de la paroi verticale
La prison prend forme
La bâche, c’est pour nous protéger du soleil.

Les contraintes automatisées sont :

  • la distribution des céréales
  • la distribution de l’eau
  • la détection de la présence d’œufs (on ne va pas se mentir, plus qu’un besoin, c’était surtout un défi technique)

L’alimentation en céréales

Nos poules ont tendance à sortir 5 grains de la gamelle quand elles en mangent un, l’idée était donc de réguler quotidiennement la quantité de céréales dans leur gamelle tout en profitant d’une grande autonomie grâce à une réserve de plusieurs dizaines de kilos de céréales à l’abri. Le passage de la réserve se fait par une vis sans fin imprimée, et contrôlée par un Raspberry Pi zéro.

Impression 3D d’un tronçon de vis sans fin
Les 4 tronçons assemblés sur une tige filetée
Test de rotation dans un tuyau PVC 50mm
Validation de la motorisation
Réalisation d’un trou oblong « gros doigt »… pour le passage des céréales
Erwan toujours partant pour ce genre de projet !
Fixation du moto-réducteur à l’aide de 6 vis
Utilisation d’une pièce de jonction en aluminium permettant de régler les problèmes d’alignement d’axes.
Construction du silo à céréales coté appentis
Vue du haut. La fente donnera sur le trou oblong du tuyau de PVC
Perçage de la cloison de l’appentis, qui donne directement dans la gamelle des poules
Même trou, vu de l’intérieur de l’appentis
et vu de la mangeoire

Contrôle du poulailler via un Raspberry Pi

Comme pour le potager connecté, je suis passé par un raspberry pi, mais un modèle zéro, pour tester.

Le boitier « récup » réalisé par Titouan
Le boitier installé dans le poulailler : reste à lui faire une protection…
Quand votre poulailler ping en local en ipv6 !

Pour mettre en musique tout ça, j’ai utilisé Domoticz. J’ai détaillé son installation pour le poulailler.

Le raspberry pi est alimenté par l’énergie solaire. Un contrôleur de charge gère le panneau solaire et la batterie. 12V pour le moteur et la lampe, 5V pour le raspberry pi.

La distribution de l’eau

Pour l’alimentation en eau, je me suis contenté d’exploiter le réseau d’eau potable de ma maison avec un abreuvoir à mouton. Le bouchon de purge permet de nettoyer très facilement (mais manuellement) l’abreuvoir.

Le mécanisme est comparable au mécanisme d’une chasse d’eau.

La détection de la présence des œufs

Que diriez vous d’un poulailler qui vous prévient quand un œuf a été pondu ?

Cette fonctionnalité est plus un défi technique qu’un réel besoin, en effet, mes poules pondent le matin autour de 10:30 et chantent après avoir pondu.

Voici les principales étapes :

  • Découverte d’un service de machine learning en ligne
  • Codage de la chaîne complète
  • Notification

Nous avons observé que les poules pondent les œufs toujours au même endroit. Une caméra Pi fixe jouera parfaitement le jeu du début de la chaîne.

L’API Vision de Google dispose d’une interface web permettant de valider l’idée :

Et l‘API object-localizer permet de localiser les éléments identifiés :

Avec cette API, j’ai tout ce qu’il faut pour implémenter ma détection des œufs.

Voici les différentes parties de mon script Python :

  • authentification à GCP
  • allumage de la lumière
  • prise de la photo
  • extinction de la lumière
  • transmission de la photo à l’API de Google
  • réception de la réponse (flux Json ce dessus)
  • parsing du flux (analyse) pour savoir si des œufs ont été découverts (mots clés : food & egg) et si oui, combien et où
  • ajout des zones sur la photo où des œufs ont été découverts
  • mise à jour du capteur « nombre d’œufs » dans Domoticz à des fins statistiques
  • envoi de la notification par Pushbullet (photo + nombre d’œufs)

Et le résultat en image :

Si par hasard, une poule est en train de pondre au moment de la prise de la photo, alors je suis aussi prévenu :

Pour améliorer la reconnaissance, j’ai essayé une caméra infra-rouge, mais les mots clés associés à une photo noir et blanc ne sont pas adaptés au poulailler connecté !

J’ai donc réglé le problème en ajoutant une lampe LED qui s’allume comme un flash.

Dans Domoticz, j’ai créé des capteurs correspondant au nombre d’œufs :

"""
Script inspire des ressources suivantes : 
Google Vision API Tutorial with a Raspberry Pi and Raspberry Pi Camera.  See more about it here:  https://www.dexterindustries.com/howto/use-google-cloud-vision-on-the-raspberry-pi/
This script uses the Vision API's logo detection.

Prerequis :
 - chmod 750 poulailler.py (donner les droits d'execution sur ce script)
 - installer python
    - apt-get update && sudo apt-get install python3-picamera
    - apt-get install python3-pip
 - installer le client pour Google cloud vision : https://cloud.google.com/vision/docs/libraries
 - sudo apt-get update && sudo apt-get install google-cloud-sdk
 - sudo pip install --upgrade pip
 - sudo pip install --upgrade google-api-python-client
 - sudo apt-get install python-picamera
 - sudo pip install --upgrade google-cloud-vision
 - sudo pip install --upgrade oauth2client
 - sudo pip install pushbullet.py
 
 - configuration materielle : 
   - sudo raspi-config / enable Camera
 
 - copie de la font arialbd.ttf
 
execution : 
python poulailler.py

"""

import argparse
import base64
import picamera
import os
import json

from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
from pushbullet import Pushbullet

import requests

from PIL import Image, ImageDraw, ImageFont

import time
import datetime

from RPi import GPIO

def is_time_between(begin_time, end_time, check_time=None):
    # If check time is not given, default to current UTC time
    check_time = check_time or datetime.datetime.utcnow().time()
    if begin_time < end_time:
        return check_time >= begin_time and check_time <= end_time
    else: # crosses midnight
        return check_time >= begin_time or check_time <= end_time

def takephoto():
    camera = picamera.PiCamera()
    camera.capture('image.jpg')
    #os.system('fswebcam -r 1280x720 --save image_temp.jpg')

def main():
    #On desactives les  warnings et on lui precise que l on travaille avec les numeros des gpio et non le numero des pins
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)

    #ON precise que le gpio 14 est en mode sortie, elle sert ici a envoyer du courant
    GPIO.setup(18, GPIO.OUT)

    #Le code meme du programme, LOW correspond a eteindre et HIGH a allumer
    GPIO.output(18, GPIO.HIGH)

    dateiso =  datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')

    takephoto() # First take a picture
    """Run a label request on a single image"""

    credentials = GoogleCredentials.get_application_default()
    service = discovery.build('vision', 'v1', credentials=credentials)


    #ouverture de l'image
    im = Image.open("image.jpg")

    with open('image.jpg', 'rb') as image:
        image_content = base64.b64encode(image.read())
        service_request = service.images().annotate(body={
            'requests': [{
                'image': {
                    'content': image_content.decode('UTF-8')
                },
                'features': [{
                    'type': 'OBJECT_LOCALIZATION'
                }]
            }]
        })
        response = service_request.execute()

	#save json in file
	with open('data' + dateiso + '.json', 'w') as outfile:
		json.dump(response, outfile)
		
		jsonr = json.dumps(response, indent=4, sort_keys=True)	     
		input_dict = json.loads(jsonr)
		
	nbOeufs = 0

	try:
		for k in input_dict['responses'][0]['localizedObjectAnnotations']:
			name=k['name']
			if name == 'Egg' or name == 'Food':

				coordonnees = k['boundingPoly']['normalizedVertices']
				for j in coordonnees: 
					rx1 = coordonnees[0]['x']
					rx2 = coordonnees[1]['x']
					ry1 = coordonnees[0]['y']
					ry2 = coordonnees[2]['y']
							
					x1 = rx1 * im.size[0]
					x2 = rx2 * im.size[0]
					y1 = ry1 * im.size[1]
					y2 = ry2 * im.size[1]

					if name == "Egg" or name == "Food":                
						color = 500 #rouge   #20000 #vert
					elif name == "Fauna" or  name == "Bird":                
						color = 99900000 #violet
					else:                
						color = 1 #noir

					draw = ImageDraw.Draw(im)
					draw.line((x1, y1, x2, y1), fill=color, width=3)
					draw.line((x2, y1, x2, y2), fill=color, width=3)
					draw.line((x2, y2, x1, y2), fill=color, width=3)
					draw.line((x1, y2, x1, y1), fill=color, width=3)

					font = ImageFont.truetype("/home/pi/arialbd.ttf", 20)
					draw.text((x1 + 3, y1+3),name,color, font)

					del draw
					
				nbOeufs+=1
	except:
		nbOeufs = 0

	# write to stdout
	im.save("image.jpg")

	if nbOeufs >0:
		pb = Pushbullet('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
		push = pb.push_note("Cot cot", "Nb d'oeufs : " + str(nbOeufs) )

		with open("image.jpg", "rb") as pic:
			file_data = pb.upload_file(pic, "picture.jpg")
			push = pb.push_file(**file_data)

	print nbOeufs
	fichier = open("log.txt", "a")
	fichier.write("\n" + dateiso +  " " + str(nbOeufs))
	fichier.close()

	#copy nb vers Domoticz
	if is_time_between(datetime.time(10,55), datetime.time(11,05)):
		requete="http://127.0.0.1/json.htm?type=command&param=udevice&idx=3&svalue="+str(nbOeufs)
		r=requests.get (requete)

		requete="http://127.0.0.1/json.htm?type=command&param=udevice&idx=5&svalue="+str(nbOeufs)
		r=requests.get (requete)

	try:
		label = response['responses'][0]['logoAnnotations'][0]['description']
	except:
		label = "No response."        
	#print label

	#copy image
	nom, ext = os.path.splitext("image.jpg")
	os.rename("image.jpg", nom + '_' + dateiso + ext)

	#on eteint la lampe
	GPIO.output(18, GPIO.LOW)

if __name__ == '__main__':
    main()

51 commentaires

  1. Bonjour, très intéressant votre projet de poulailler connecté.
    Je suis actuellement entrain de faire aussi un poulailler connecté. Au départ je souhaitais aller jusqu’à la détection des oeufs mais comme j’ai vu des exemples de codes sur le net, ça m’a semblé trop compliqué (pour moi).
    Ensuite je suis tombé sr votre site et la détection des oeufs me semble plus simple et moyennant un peu de code mais pas tant que ça j’ai l’impression;
    Est ce que vous partargez votre code ?

    Cordialement,

    Julien Mouton

    1. Bonjour Julien,

      Merci pour votre commentaire.

      J’ai prévu de partager le code, je vous préviens quand c’est fait.

      J’ai eu la même réaction que vous au sujet des systèmes de détection plutôt compliqués, laissons à Google l’expertise de la détection et occupons nous du principal !

  2. Bonjour,

    D’accord, c’est vraiment sympa que vous partagiez le code !

    Impatient de voir ce programme ;).

    Merci

    Cordialement,

    Julien

  3. Waaaa !!! J’en été carrement loin de la solution !!
    Pour faire la partie localisation / comptage des oeufs, tu t’ai inspiré d’un projet déjà existant ou bien tu est parti de la feuille blanche ?

    En tt cas, chapeau pr ce projet très interressant 🙂

    Julien

    1. C’est une solution.

      J’ai préféré utiliser une solution du commerce plutôt que de développer la mienne, beaucoup moins coûteux en temps au moins !

      Tu verras dans le code que la notion de localisation et comptage n’est rien d’autre que l’analyse de la réponse Json, tu as le nombre d’objets « Egg » ou « Food » et les coordonnées (en %) de l’élément sur la photo.

      1. Effectivement, elle est assez simple la solution, en externalisant l’analyse de l’image ça permet de ne pas faire d’usine à gaz.
        Je viens d’analyser dans le détail le code, c’est assez simple à comprendre finalement; c’est logique.
        Une question pourquoi ne pas avoir fait directement ça :
        try:
        for k in input_dict[‘responses’][0][‘localizedObjectAnnotations’]:
        name=k[‘name’]
        if name == ‘Egg’ or name == ‘Food’:

        coordonnees = k[‘boundingPoly’][‘normalizedVertices’]
        for j in coordonnees:
        […]

        En gros, aller directement chercher l’élement ‘name’ dans la réponse JSON ?

        ATTENTION : ce n’est pas un reproche ni quoi ce soit ! Il y a autant de solution que de bonhomme ;).
        Je cherche juste à comprendre pourquoi ça a été fait comme ça.

        Autre question:
        Dans le raspberry, j’imagine que tu as un script qui te permet de lancer ton code Python, à une seule fois à une heure donnée ?

        1. Hello Julien,

          Merci pour cette contribution

          Effectivement, le script n’est pas forcement optimisé. Je suis en mode 80/20, une fois que ça marche, j’ai du mal à aller au bout.

          Je vais intégrer ta suggestion et surtout lister les prérequis nécessaire, parce que la connexion à GCP n’est pas triviale.

          Pour le lancement initiale, je vais aussi compléter l’article, mais je te réponds ici :

          J’ai une tâche cron :
          0 9-14 * * * /home/pi/launcher.sh >> log.txt
          (lancement du script chaque heure de 9h à 14h)

          et le launcher.sh lance le script python et applique des droits sur les fichiers générés

          1. Suggestion testée et intégrée, merci !
            J’ai fait la liste exhaustive des dépendances en testant mon script sur un Pi vierge.

  4. Bonjour,

    Qu’avez vous utilisé comme moteur cc pour faire tourner la vis sans fin ? Auriez-vous la ref ? Est-il suffisant pour ce type de vis sans fin ? Et quel est la pièce en alu utilisée entre l’axe de la vis et celui du moteur ?

    Merci et bravo pour le poulailler, il me donne des idées !!

    1. Bonjour,

      Je vais ajouter dans l’article la liste du matériel que j’ai utilisé.

      Mais pour répondre immédiatement, voici la reference : « DC 15W Moteur à Engrenage Electrique CW/CCW 12V 24V Contrôleur de Moteur Vitesse Lente à Bruit Faible (12V 30r/min) »
      https://www.amazon.fr/gp/product/B078NCYZYZ/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

      Actuellement, je l’alimente en 9v, j’ai donc de la marge. Certains grains de maïs posent problème, j’utilise plutôt du blé.
      Je note aussi de faire le test avec une alimentation 12V pour noter la différence de puissance

      L’axe est une tige filetée de 4mm et j’ai mis en place une pièce permettant un accouplement souple : « Accouplements flexibles de l’arbre 4pcs Coupleur du moteur pas à pas de 5 mm à 8 mm Connecteur de joint en alliage d’aluminium pour l’imprimante numérique RepRap Machine CNC »
      https://www.amazon.fr/gp/product/B074P3VBYR/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

  5. Autre piste d’amélioration : éviter les doublons
    Actuellement, un œuf est ponctuellement détecté à la fois en « Egg » et en « Food », mais les coordonnées peuvent permettre de dédoublonner.

    1. D’accord, tu as testé la suggestion de programme que je t’avais fait plus haut il y a quelques jours c’est ça ?

      J’ai pas testé le code encore, car je n’ai pas encore la caméra.
      Tu as utilisé la PiCamera V1 ?
      Est ce que la détection se fait bien si par exemple, l’oeuf est sale ou si il y a de la paille dessus ?

      1. Suggestion : oui, c’est ça.

        J’ai utilisé la PiCamera V2

        La détection est correcte, surtout avec une lampe. Si on ne voit que la moitié de l’œuf, Google a tendance à ne pas considérer un oeuf…

  6. Bonjour
    Magnifique travail
    Pouvez me dire si une liste du matériel et elle présente?
    un grand merci à vous et bonne continuation

  7. Bonjour,

    Pourriez-vous fournir le fichier que vous avez utilisé pour votre impression 3D ?

    Bravo pour votre poulailler !

    Diane

  8. Bonjour,

    nous sommes en train de remettre à neuf notre poulailler (après plus d’une année d’arrêt complet pour cause de fouine ayant décimé nos poules). Du coup je trouve plein d’inspiration dans le tien. Le côté connecté est super, j’y pensais depuis longtemps mais là ça va me mettre le pied à l’étrier.

    Une question concernant l’abreuvoir: as-tu du recu surl son utilisation, à la fois le côté pratique à l’usage (nettoyage…), mais aussi est-ce que les poules s’y sont bien adaptées (car c’est assez massif)? Est-il relié directement au service d’eau, ou à un réservoir quelconque?

    Merci!

  9. Bonjour BRUNO,

    J’adore ce que vous faites.

    J’ai également un projet concernant un poulailler connecté.

    Comment puis-je vous joindre ?

    Merci d’avance.

  10. BONJOUR.
    JE SUIS EN COURS DE CRÉATION DE MON POULAILLER, VU LA SITUATION ACTUELLE ON A DU TEMPS.

    EST JE VOUS SAVOIR DEUX CHOSES LE COÛT DE GOOGLE ET LE SCHÉMA ELECTRIQUE UTILISÉE

    BONNE CONFINEMENT

    1. Coût de GOOGLE : 0€ si vous faites moins de 1 000 requêtes par mois.
      Le schéma électrique a été double :
      – au début, un contrôleur de charge avec un panneau solaire et une batterie 12V. A ce moment là, le RPi etait alimenté par le port USB
      – ensuite, sur le secteur avec un transfo 220 -> 5V

  11. Bonjour Bruno,
    Pouvez vous décrire et expliquer votre solution pour gérer l’électricité avec les panneaux solaires et l’alimentation aux différents composants ?
    Merci

  12. Bonjour,

    Tout d’abord, c’est un super projet et j’adore l’idée ! 😀

    Je suis donc en train « d’essayer » de le réaliser lol

    Mais je bloque sur le câblage du connecteur GPIO de mon Raspberry Pi 3 avec ma carte 2 relais. Avez-vous une idée svp ? Sachant que je vais connecter uniquement un moteur 12V.

    Merci beaucoup pour votre aide 🙂

    1. Bonjour,

      C’est compliqué de vous aider sans savoir ce que vous avez fait.

      Vous avez trois câbles : la masse, le voltage d’entrée (VCC) et un GPIO.

      Vous avez ça ?

  13. Bonjour Bruno,

    Je suis tombé sur la vidéo de votre poulailler connecté sur YouTube. Merci beaucoup pour ce partage de connaissances. Je compte me lancer dans un projet semblable dans les semaines à venir.

    Seul hic : je ne sais pas coder, je bricole sans problème mais l’électronique, je n’ai jamais appris. Actuellement, je possède un Raspberry Pi 4, j’ai un budget de 150 € (à la louche), et j’ai plein de bonne volonté !

    Mon objectif : une porte automatique type guillotine pour que mes 4 poules sortent dans le jardin le matin et qu’elles rentrent le soir au poulailler + recevoir un message quand elles ont pondu + une camera pour observer le poulailler depuis mon smartphone et voir si mes 4 chéries se portent bien.

    Je n’envisage donc pas d’avoir un distributeur automatique de nourriture ni d’eau pour le moment mais j’aimerais avoir un système semblable au vôtre pour détecter des œufs.

    Mes questions :
    – Selon votre expérience, y a-t-il des pré-requis avant de se lancer dans ce projet ?
    – Est-ce indispensable d’être un crack en informatique pour réaliser ce projet ?
    – Pourrai-je vous écrire un email lorsque je serai complètement perdu entre 2 étapes ?

    Mille mercis de m’avoir lu et bonne continuation à vous !

    Al

    1. Merci Baptiste

      Je vous conseille deux choses :
      – prendre un cours en ligne de Python
      – de tester les fonctions principales de votre système dans votre bureau avant d’aller l’installer dans votre poulailler.

      Pas besoin d’être un crack de l’informatique, l’idée est d’apprendre. Votre but n’est pas d’en faire un produit que vous allez commercialiser.

      Envoyez moi un mail quand vous êtes coincé, j’essaierais de vous décoincer

  14. Bonjour,
    Tout d’abord bravo pour cette réalisation particulièrement réussie.
    De mon côté, j’ai déjà le poulailler et j’ai depuis quelques temps l’idée de le domotiser. En effet, j’ai déjà un raspy 2 qui me permet de gérer mes volets roulants, un store solaire Velux, mon aspi robot et aussi mon poêle à granulés. J’ai donc quelques connaissances, surtout en bricolage, beaucoup moins en programmation et/ou codage !
    Jusqu’à présent, je n’avais rien trouvé de satisfaisant pour le poulailler mais votre exemple me plait bien.
    Quelques petites questions si vous avez un peu de temps.
    Tout d’abord, je ne comprends pas bien où le code se trouve pour l’installer sur le raspy (je pense en prendre un nouveau). ne fois que domoticz est installé ?
    Comment communique-t-il avec Domoticz ? Chez moi c’est avec le RFXcom et le réseau local mais là je serai dans le jardin donc j’ai un peu peur de la portée (est-ce en passant par un VPN ; là j’y connais rien du tout).
    Dans la vidéo, vous n’avez pas relié la sortie 12V du régulateur car la batterie ne tient pas la nuit. Est-ce par manque de solaire ? Ou bien des panneaux « sous-dimensionnés » ? C’est peut-être désormais résolu …
    Voilà mes premières interrogations pour ce projet que je vais bientôt démarrer. J’attends juste votre aide initiale pour me lancer dans l’achat puis la réalisation.
    Merci par avance et bon WE

  15. Bonjour, Bruno
    Superbe projet , c’est top .
    Moi j’aurai quelque question sur ton poulailler , on niveau de votre pondoir , vous l’avez acheter tout fait ?
    1)Quelles sont les dimensions du pondoir ?
    2)Quelle est la dimension de la partir ou elles grattent ?
    3) L’ensemble est recouvert de tôle ?
    4) Et au niveau du grillage utilisé , il est pas trop grand pour les poussins ?
    5) vous pouvez m’indiquez les dimensions ainsi que le nombre de poule ?

    Sur la partie électronique c’est top
    J’utilise souvent l’esp8266 , c’est super et ca coute pas chère .
    Pour l’alimentation de la partie eau , j’hésitais entre une cuve par une
    pompe pour remplir le bac et une autre pour aspirer l’eau sale et l’injecté dans le potager.
    Merci encore pour le partage du projet .

  16. Bonjour Bruno,

    Merci pour l’idée de la trémie avec la vis sans fin, je vais appliquer ça pour mon distributeur, ça me parait la solution la fiable 🙂 .

    Est ce que tu aurais une idée pour la détection du niveau bas de grain dans la trémie ? ma première idée irait vers un petit module capteur IR (genre détection d’obstacle pour les robots) en bas de trémie, mais il y a aurait peut être mieux.

    a+,

    Antoine

    1. oui, j’ai une idée. D’ailleurs, j’ai voulu le faire, mais je n’ai jamais pris le temps. Par contre, je l’ai mis en place dans mon potager pour detecter le niveau d’eau dans un puits et dans une cuve. C’est hyper fiable, ca tourne depuis 4 ans, été comme hiver.
      La techno, c’est l’ultrason, avec le capteur HC-SR04
      Je n’ai pas encore fait l’article…
      En tout cas, c’est très accessible : 2€ max, le capteur et deux résistances

  17. merci beaucoup votre modèle de poulailler , cela nous a vraiment aider pour notre projet de sciences de l’ingénieur
    ma question est : sans reel connaissance en python peut-on faire un programme simple pour la camera
    merci d’avance pour votre réponse
    Gaëtan et Vincent

  18. bonjour,
    merci pour la diffusion de votre travail
    j’utilise pour mon poulailler un circuit ESP32CAM pour la caméra, qu’avez vous tester pour la vision de nuit ? je cherche à utiliser des diodes infrarouges..
    avez-vous un retour sur ce sujet ?
    bonne journée
    alain

  19. Merci pour votre réponse..
    Quel est la reference de votre régulateur et panneau solaire.. Est ce suffisant pour la consommation des appareils ?
    Merci

  20. Bonjour

    Est-ce que votre code fonctionne toujours sous la dernière version de debian (bullseye) ?
    Moi j’ai l’erreur suivante à l’exécution :
    pi@Poulailler:~ $ python poulailler.py
    File « /home/pi/poulailler.py », line 100
    with open(‘data’ + dateiso + ‘.json’, ‘w’) as outfile:
    TabError: inconsistent use of tabs and spaces in indentation

    Merci d’avance
    cordialement

    1. Le problème est lié à une tabulation ou un espace en tête de ligne.
      Assurez vous d’avoir bien copié collé et vérifiez que tous les espaces sont de même nature. Quitte à diviser le code pour identifier plus rapidement le problème.

  21. Bonjour, je suis un élève de STI2D et notre projet de spécialité est de réaliser un poulailler connecté.
    Enfin réaliser, il ne sera pas physique, uniquement en maquette à échelle réduite.
    Toute notre classe s’occupe d’une partie du projet, et avec mon binôme nous nous occupons de la détection des œufs dans les pondoirs.

    Et justement, votre poulailler connecté m’intéresse, je voulais m’en inspiré pour notre projet.

    Et je me demandais si vous aviez les mesures du pondoir que vous avez utilisé.

  22. Bonjour,
    J’adore votre poulailler ! Et je m’en suis inspiré !
    Reste un problème : l’alimentation en grains. Pouvez-vous partager le fichier STL que vous avez utilisé ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *