Automatische kippendeur op batterijen

Hey iedereen,

Ik heb met een arduino uno een programmatje geschreven dat aan de hand van een LDR, en de waarde ingesteld via een potmeter een servo motortje doet draaien. Dit zal dienen om de deur van ons kippenhok te openen en sluiten. Nu werkt alles goed, maar ik heb dit alles tot nu gewoon gemaakt en getest met een arduino uno en een breadboardje.
Om dit effectief te installeren zou ik dit willen solderen zodat alles mooi op zijn plek zit, maar vooral het moet op batterijen beginnen werken.
Ik heb gelezen dat een Uno op zich maar enkele dagen zou meegaan op batterijen. Wat zijn betere opties om dit toch langer te laten draaien ? (liefst enkele maanden)

Een dun kabeltje trekken voor de 5V.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 27 mei 2020 17:51:39 schreef Driesverdoodt:
Ik heb gelezen dat een Uno op zich maar enkele dagen zou meegaan op batterijen. Wat zijn betere opties om dit toch langer te laten draaien ? (liefst enkele maanden)

Dat wordt een kwestie van rekenen met wat je nodig hebt aan vermogen.
Arduino, kan die niet in een slaapstand ?

Denk ook aan het energieverbruik van de deuraandrijving, ook al is dat maar enkele minuten per dag.

Kun je niet overwegen om te voeden uit 18650 of zoiets, 1 of meerdere, en er een lichtpaneelje boven te hangen?

[Bericht gewijzigd door big_fat_mama op 27 mei 2020 18:31:22 (37%)]

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Kale atmega chip nemen, of toch de arduino zo zuinig mogelijk maken ( powerled er af, USB-serial niet continue voeden of een arduino nemen waar dat niet op zit en je een los bordje moet opsteken, spanningsregelaar er af en rechtstreeks < 5V aanbieden).

Arduino in slaapmode zetten, op een timer zeg elke 15 minuten even waker laten worden (interrupt) om 1x een meting van de LDR te doen. LDR niet rechtstreeks met een spanningsdeler over de voeding zetten, maar vanuit een andere I/O pin voeden, zodat ' ie geen stroom trekt als er niet gemeten wordt.

Dan heel snel weer gaan slapen als het nog te licht is om de deur dicht te doen (of te donker om de deur open te doen).

Direct nadat de deur open of dicht is gedaan, hoef je waarschijnlijk ook niet elke 15 minuten te checken of het al donker (of licht) is, maar pas na een paar uur. En wellicht wil je als je ongeveer verwacht dat het gaan schemeren vaker checken, b.v. elke 5 minuten. Dat is slimmigheid voor later: eventjes kort zo' n meting doen verbruikt vrij weinig.

De motor van de deur maar 2 keer per dag aansturen: 1x voor open en 1x voor dicht. Tenzij het voor de kippen vaker nodig is, ik heb geen verstand van kippen. Ik denk nu alleen aan "zo lang mogelijk op een batterij".

In de mechanische constructie zit vast ook nog wel winst, maar ook daar heb ik geen verstand van.

En dan de viest simpele hack om een batterij langer mee te laten gaan: Begin met de grootste dikste vetste batterij die je er in gepropt krijgt >:)

(Bijladen met een zonnepaneeltje is ook een goeie)

Eluke.nl // Backwards Lightspeed Bus: i*i=-1, so iic=-c.

Is het niet mogelijk om zo'n arduino een interrupt te laten genereren als een astro clock? (evt met offset). eventueel met een RTC eraan gekoppeld
-Tijdstip wanneer het donker wordt, deur dicht.
-Tijdstip van zonsopgang bepalen, interrupt zetten en slaapmode
-Wachten op de interrupt, wakker worden deur open etc

veel nauwkeuriger dan welke LDR dan ook.
en geen storingsmetingen als het toevallig een keer onweert ofzo

Shiptronic

Golden Member

Tegenwoordig liggen de powerbanken bij de Aldi en Lidl in het schap, daar kan je wel even mee vooruit ;)

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Op 27 mei 2020 19:20:11 schreef Lucky Luke:
Kale atmega chip nemen, of toch de arduino zo zuinig mogelijk maken ( powerled er af, USB-serial niet continue voeden of een arduino nemen waar dat niet op zit en je een los bordje moet opsteken, spanningsregelaar er af en rechtstreeks < 5V aanbieden).

Arduino in slaapmode zetten, op een timer zeg elke 15 minuten even waker laten worden (interrupt) om 1x een meting van de LDR te doen. LDR niet rechtstreeks met een spanningsdeler over de voeding zetten, maar vanuit een andere I/O pin voeden, zodat ' ie geen stroom trekt als er niet gemeten wordt.

Dan heel snel weer gaan slapen als het nog te licht is om de deur dicht te doen (of te donker om de deur open te doen).

Direct nadat de deur open of dicht is gedaan, hoef je waarschijnlijk ook niet elke 15 minuten te checken of het al donker (of licht) is, maar pas na een paar uur. En wellicht wil je als je ongeveer verwacht dat het gaan schemeren vaker checken, b.v. elke 5 minuten. Dat is slimmigheid voor later: eventjes kort zo' n meting doen verbruikt vrij weinig.

De motor van de deur maar 2 keer per dag aansturen: 1x voor open en 1x voor dicht. Tenzij het voor de kippen vaker nodig is, ik heb geen verstand van kippen. Ik denk nu alleen aan "zo lang mogelijk op een batterij".

In de mechanische constructie zit vast ook nog wel winst, maar ook daar heb ik geen verstand van.

En dan de viest simpele hack om een batterij langer mee te laten gaan: Begin met de grootste dikste vetste batterij die je er in gepropt krijgt >:)

(Bijladen met een zonnepaneeltje is ook een goeie)

De kale atmega chip ben ik intussen online nog een paar keer tegen gekomen. Maar ik heb dit wel nog nooit gedaan. Zou deze dan ook op de 8Mhz werken of toch een extern kristal werken ? Ik weet ook wel niet hoe je deze dan nog best programmeerd ?

Ook met de slaapmode van Arduino heb ik niet echt ervaring, is dit een standaard functie ?

Verder goeie tips, de ga ik er zeker in verwerken. Bedankt!

Op 27 mei 2020 19:25:18 schreef DK:
Is het niet mogelijk om zo'n arduino een interrupt te laten genereren als een astro clock? (evt met offset). eventueel met een RTC eraan gekoppeld
-Tijdstip wanneer het donker wordt, deur dicht.
-Tijdstip van zonsopgang bepalen, interrupt zetten en slaapmode
-Wachten op de interrupt, wakker worden deur open etc

veel nauwkeuriger dan welke LDR dan ook.
en geen storingsmetingen als het toevallig een keer onweert ofzo

Een astroklok lijkt inderdaad wel ook zeker interessant. Heeft hier al iemand ervaringen mee met Arduino ?

RTC klok modules kan je goedkoop vinden in China. Vb : https://www.banggood.com/nl/DS3231-AT24C32-IIC-Precision-RTC...rehouse=CN

Opgelet, deze modules communiceren via I2C. De functie is louter de tijd en datum bijhouden + een alarm uitgang op een geprogrammeerd tijdstip. De klok blijft dus gewoon lopen op de knoopcel, terwijl de Arduino zich in slaapstand bevindt. De "Astro" functie moet je wel zelf in de Arduino programmeren (look-up tabel), dus telkens als er iets moet gebeuren, moet je in de klok module terug een nieuwe "wektijd" schrijven. Ook moet je natuurlijk de eerste keer de tijd + datum juist zetten. Wel wat complexer dan gewoon een LDR uitlezen dus.

Ik heb zelf geen oplossing voor dit geval, maar ik vraag me wel iets af: hoe controleer je bij het sluiten of de kippen aan de goede kant van het deurtje zitten?

Ik ben "deep sleep" bij een gewone Arduino nog nooit tegengekomen, wat niet wil zeggen dat het niet kan maar ik denk het niet. Effen googlen.
Echter, een ESP12 en ESP32 kan het zeker wel. Leuke is dat die wifi kan, dus je kunt je luikje via een webpagina bedienen O-) Het betekent wel dat je de hele schakeling super zuinig moet bouwen, dus geen LEDje dat stiekum nog stroom trekt, of een pull-up weerstand. Je moet echt terug naar uA's in sleep mode.
PS, mijn opmerking van hierboven was toch wel serieus bedoeld he. Batterijvoeding lijkt wel mooi, maar je bent veel beter af met een vaste voeding. Dus denk echt even goed na of dit toch niet mogelijk is.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Hensz

Golden Member

Op 27 mei 2020 19:50:55 schreef Driesverdoodt: Zou deze dan ook op de 8Mhz werken of toch een extern kristal werken ?

Voor wat jij ermee wilt heb je echt geen 8 MHz nodig, 50Hz zou bij wijze van spreken nog volstaan. Ik zou het op een horlogekristalletje (32,678 kHz) houden.
Als je iets met een klok wilt doen, dan is het wel verstandig om met een kristal te blijven werken.
Je hoeft ook geen hele precieze absolute kloktijd te hebben. Onthoud wanneer je gisteren de deur dicht deed en wanneer open. Als je dan een (half) uur van tevoren periodiek de LDR begint te raadplegen, kom je vanzelf bij het punt dat de boel open of dicht mag. Die tijd onthoudt je dan weer voor morgen. Als je klok binnen een minuut of wat per dag nauwkeurig is, is voor dit doeleinde voldoende. Omschakelen voor zomer- of wintertijd is ook niet nodig.

Don't Panic!

Op 27 mei 2020 20:59:34 schreef KlaasZ:
Ik heb zelf geen oplossing voor dit geval, maar ik vraag me wel iets af: hoe controleer je bij het sluiten of de kippen aan de goede kant van het deurtje zitten?

welopgevoede kippen gaan normaal altijd keurig op tijd op stok. Moet je zelfs niet controleren. Deurtje is er vooral om ongewenste bezoekers met een lege maag buiten te houden, neem ik aan..

Op 27 mei 2020 19:25:36 schreef Shiptronic:
Tegenwoordig liggen de powerbanken bij de Aldi en Lidl in het schap, daar kan je wel even mee vooruit ;)

Die gaan vaak zelf in slaapstand bij geen verbruiker.

Qua voeding denk ik aan een kleine loodaccu met een solar druppellader. Ik heb zo'n ding met zuignappen voor in de auto. Ligt in de tuin en houd m'n 7Ah accu's al een jaar op peil, en die gebruik ik ook zo nu en dan.

Die LDR mag je wel goed schoonhouden of in een mooie ruime houder maken. Een paar regenbuitjes of één vogelpoepje, en het hok gaat niet meer open.

Zoals gezegd de ESP bordjes kunnen jaren draaien op een setje AA's bij minuten lange slaaptijden. Gewoon met Arduino IDE/sketches te programmeren.

De LDR kan lastig worden bij zeer slecht weer, vuil, etc..

In plaats van de RTC kan een ESP even via internet zijn tijd goed zetten.

https://create.arduino.cc/projecthub/sfrwmaker/sun-and-moon-...p;offset=0

Mijn theorie: Zonder RTC of wifi kan je de library hierboven misschien in combinatie met de LDR gebruiken:

Als de LDR licht meet voor zonsopkomst dan moet je je klokje even een minuut terugzetten. Als het pas na zonsopkomst is dan klok een minuut vooruit.

Voor 16:00(?) ga je nooit het luik dicht doen, daarmee voorkom je LDR problemen. Als je 24u geen licht meet stuur je via wifi, ledje of buzzer een error.

Alvast bedankt voor alle tips allemaal!

Ik heb geen ervaring met ESP bordjes en al zeker niet met het gebruik van wifi in programmeren, dus dat gaat mijn petje te boven denk ik.

Hoe ik het nu dan zou doen is het volgende:
- Kale atmega chip met intern 8Mhz klok
- RTC module gebruiken samen met de sun and moon library van arduino om ongeveer de timing juist te krijgen.
https://www.gotron.be/pcf8523-real-time-clock-rtc-assembled-...board.html
- LDR gebruiken voor de beslissing te nemen om te openen/sluiten (of zou dit beter puur op de klok ?)

Maar dan weet ik nog niet goed hoe ik dit alles moet voeden, ik dacht oorspronkelijk 4 AA betterijen omdat mijn motor 5V nodig heeft
(28BYJ-48 Stepper Motor met ULN2003 Driver), maar dit is dan te veel voor de atmega ? En kan ik de RTC nu rechtstreeks met de knoopcel voeden of moet deze mee mee via de atmega ?

Ook had ik graag een verklikker ledje er bij gehad voor een lage batterij te signaleren, doe ik dit dan gewoon met een spanningsdeler op de batterijen ?

WIFI is echt schokkend simpel. Niet veel lastiger dan de waardes invoeren om in te loggen.

Als je aanhoudt dat het 7 uur na het eerste licht niet donker kan worden dan kan je de RTC of wifi weglaten. 'Vals licht' zoals koplampen of buitenverlichting kan je waarschijnlijk uitsluiten. Nog geavanceerder: het kan niet eerder donker worden dan het gemiddelde van de laatste 5 dagen.

Kippen die te lang binnen blijven is ook geen ramp.

Batterijen zou ik niet bewaken, wekelijks=maandelijkse even zelf meten en hopelijk kan je gewoon vaststellen dat je jaarlijks een nieuw setje erin zet. Zoals gezegd: een powerbank neemt je een hoop gedoe (behuizing, aansluiting, oplaadbaar, 5V, verwisselbaar) uit handen.

Ik zou het als volgt aanpakken:

eerst: bereken/meet/becijfer wat je ECHT aan energie nodig hebt.

* de motor om het luik open en dicht te doen.

Dit kan je nu meten. Hoeveel is de stroom? Hoelang heb je die nodig?

Dit moet dan 2x per dag geactiveerd worden dus dat is wat je echt nodig hebt en niet onderuit komt. De rest zijn verliezen. Nu zou je graag zeg 5% of 10% aan verliezen hebben, maar in zo'n geval als dit mag je blij zijn als je op 50% uitkomt: de motor moet maar een paar seconden per dag draaien, de rest van het circuit 24h/dag.

Als je dan aanneemt dat je motor 0.5A *5V * 4 sec *2xperdag = 10J/dag nodig hebt dan mag je hopen op 20J / dag.

Een 18650 heeft pak-em-beet 10Wh, dus dat is 3600*10 = 36kJ. Daar hou je het dus 5jaar mee uit.

In theorie zou je, als mijn gok kwa stroom klopt en het lukt om de verliezen tot 10J/dag te beperken met 1x per jaar bijladen toe moeten kunnen.

Die 10J/dag aan verliezen zijn ZEER lastig te behalen.

Bijvoorbeeld: een lopende arduino gebruikt ongeveer 20mA 100mW. Dat is 1J per 10 sec, 6J/min 360J/uur 8500J/dag. Je moet nog een factor 850 besparen om onder die 10J/dag te komen.

Hoeveel stroom mag je gebruiken om 10J/dag te gebruiken? 10J/dag is 0.1mW. Je hebt dus een "budget" van 20µA bij 5V. Chips als atmega en andere CPUs zitten in de buurt van de 1 µA, dus in theorie is het haalbaar.

Hmm. Net opgezocht: Met de WDT actief gebruikt de atmega328p zo'n 66 µA. Dat is dus eigenlijk te veel.

Maar als je dan zegt: een zonnepaneeltje er bij, dan wordt je budget al ineens een stuk meer.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/