Water uw planten met een Attiny microcontroller


Ik weet het, er zijn een flink aantal instructables op automatiseren het Bewateren van uw planten. Dit gebeurt meestal rond een Arduino. Ik besloot maar een beetje van een goedkopere oplossing met één van de Arduino little brothers, de Attiny45, maar het waarschijnlijk met een Attiny13 ook werken zou. (bevestigd, het doet)

Het circuit is heel simpel. Een luchtvochtigheid sensor in bijlage tussen Vcc en Pin 3 (= analoge pin2) vormt een voltage divider. Als de bodem droog wordt, de weerstand van de sensor neemt toe en de spanning op de pin3 daalt.
Als het daalt tot onder het niveau van het niveau ingesteld met P1, weet de Attiny de grond is te droog en maakt van pin 7 hoog. Pin 7-feeds in een solid state relais - 39MF22 - waarmee wordt overgeschakeld op een pomp die is onderdompelen in een waterreservoir.
Ik heb de 39MF22 besloten om geen andere reden dan dat het was erg goedkoop.
De zenerdiode D1 is er ter bescherming van de chip. Als er een lange lijn afkomstig van de vochtigheid sensor, spanningspieken kunnen worden overgedragen, vandaar de zenerdiode. Ik zal het jumperblock later bespreken

Tot dusver de Attiny heeft niets gedaan meer dan fungeren als een Comparateur en in feite kan worden vervangen door een 741 (als je vergeet over pin campatibility), maar dat een microcontroller, kan het een paar meer dingen doen. (wil je doen met een 741 op-amp, kijk hier)
Submersible pompen meestal niet graag running droog worden overgelaten, zodat de Attiny controleert het waterpeil door middel van een switch (S1) die in mijn geval een riet overschakelen op de buitenkant van de container met een magneet op een zwevende apparaat IN de container. U kunt ook een tilt-switchor een mechanische schakelaar geactiveerd door een zwevende apparaat. De eenvoudigste vorm die ik heb gezien was een drijvende rubber ducky aangesloten op een switch via een tekenreeks. Als het waterpeil te laag kreeg, zou de ducky trek aan de switch.

Als je genoeg fantasie hebt, je kon bijvoorbeeld attache een LDR of een NTC tussen Pin 1 en grond en laat het drenken alleen worden gedaan 's nachts, in de ochtend, tijdens de mid dag of wanneer het het heetste moment van de dag was.

Afbeelding 2 toont de montage van de onderdelen op een PCB. Als ik snel de schakeling testen wilde, had ik niet gemonteerd sommige onderdelen nog. Het heeft een beetje meer onderdelen dan in de vorige foto en dat is omdat ik een standaard 7805 gebaseerd voeding toegevoegd

Afbeelding 3 toont de PCB (downloaden) het heeft sommige rode dingetjes op, en ik zal deze later. Wees ervan bewust dat deze PCB wordt gezien van de component kant en daarom direct bruikbaar voor de warmteoverdracht: In het kort: afdrukken op glanzend papier, zet dat op de copperside van een stuk van schoon en vetvrij PCB en Pipetteer die met behulp van een heet strijkijzer. Etch in de HCl en H2O2 (mijn voorkeur)

Afbeelding 4 toont de vochtigheid sensor die ik gebruik. Er is een heleboel discussie over vocht sensoren, maar meestal komt het neer op 2 gegalvaniseerd spikes of een gips-sensor. Ik heb zowel gebruikt en ik liever de gegalvaniseerde spikes. Makkelijk te maken, makkelijk te gebruiken. Ja maar wat over corrosie?

Yep is er corrosie, vooral wanneer een stroom stroomt door de spikes (alhoewel er heel weinig). en dat is waar de jumperblock in het circuit komt. Voor de eenvoud ben ik de spikes voeding alleen uit de hoofdlijn, dus er is een continue spanning en een continue stroom en ja dat corrosie versnelt.

Je kon koos echter om te voeden de spikes van een digitale i/o pin bijvoorbeeld Pin 5. Ik kon heb die optie in de PCB-design met een jumper 3 prong, maar dat leek een beetje dwaas zoals besloot ik al dat i was just gonna de main line gebruiken, maar als u wilt voeden van Pin 5 dan eens een kijkje op het PCB-design. Het gaat om een koperen traceren onderbreken en het uitvoeren van een draad. Dat is allen daar is aan het. De software is al geschikt voor het. De veranderingen zijn aangegeven in rood op de PCB-design

Gewoon een beetje meer over de sensor en een weerstand R1. In het ideale geval heeft R1 dezelfde waarde als uw sensor over haar 'gewoon nat genoeg, kon gebruiken wat water' resistentie heeft. Dus, wanneer u uw sensor hebt gemaakt, plak het in uw bodem op een moment dat het jcould gebruiken wat water. Dus niet wanneer je de bodem is bot droog, maar op een moment je denken, Nou, ik kan water vandaag, maar misschien het zal houden tot tomoro.
Stok in je sensor en meten zijn weerstand. Koos die als weerstand voor uw R1. In mijn geval was het 10 k, maar veel hangt af van de aard van de bodem, maar ook op de afstand tussen de pieken. Ik heb ze dicht bij elkaar, maar je kon kiezen om ze op tegenovergestelde uiteinden van uw bed van de plant...

Software:
------
/ * Tuin 3
april 2012
Sensoren:
-Vochtigheid spike op analoge PIN2-

*
*----------------------Humid------------------------------
* Schema:
* [Grond]--[10k-pad-weerstand]--| --[Spikes]--[Vcc]
*
* Analoge Pin 2
*
*
ATTiny pinnen
Fysieke Analoog-Digitaal
1 0 5 reset, PinChange Interrupt
2 3 3 INT0, 3
3 2 4 INT0, 4
4 grond
5 0 INT0, 0
6 1 INT0, 1
7 1 2 INT0, 2
8 Vcc
*/
PIN definities
Const byte levelPin = 3; analoge Pin3 -> fysieke pin2 niveau instellen
Const byte humidPin = 2; analoge Pin2 -> fysieke pin3 vochtigheid sensor
Const byte pumpPin = 2; digitale Pin2 -> lichamelijke pin7 pomp
Const byte emptyPin = 1; digitale Pin1 -> fysieke Pin6 waterpeil
Const byte spikePin = 0; Digitale Pin0 -> fysieke Pin5 Extra voor het schakelen van intermitterende van spike
Variabele-instelling
int vochtige = 0; float is niet nodig
int irrigeren = 0; niveau voor irrigatie
byte niveau = 0;
De volgende functie, "setup", moet altijd aanwezig zijn
VOID Setup
{
pinMode(levelPin,INPUT); niveau instellen
pinMode(humidPin,INPUT); meet luchtvochtigheid
pinMode(emptyPin,INPUT); maatregelen reservoir
pinMode(spikePin,OUTPUT); voor de alternatieve voorziening spikes
pinMode(pumpPin,OUTPUT); Uitgang voor Relay
digitalWrite (pumpPin, laag);
digitalWrite (spikePin, laag);
}

void loop //This functie moet altijd aanwezig zijn
{
niveau = digitalRead(emptyPin);
/*
Eerst het niveau apparaat met P1 op het levelPin lezen en op te slaan die in 'irrigeren'
*/
irrigate=sample(levelPin);
/*

Vervolgens lezen wij de vochtigheid sensor.
We zullen eerst moeten de spikePin is ingesteld op hoog, in het geval dat wordt gebruikt voor het voeden van de sensor. Na de lezing zetten we het terug) als de waarde gelezen ('vochtige') is kleiner dan wat wordt beschouwd als droog ('irrigeren') dan de pomp moet worden ingeschakeld voor een bepaalde tijd. Dit wordt gedaan door aan te geven een hogere vaagheid voor het uitschakelen van de pomp
*/
digitalWrite (spikePin, hoge);
Moist=sample(humidPin); Lees humiditySensor
digitalWrite (spikePin, laag);
niveau = digitalRead(emptyPin);
Als (vochtige < = irrigeren) digitalWrite (pumpPin, niveau);
Als (vochtige > = irrigeren + 5) digitalWrite (pumpPin, laag); Hiermee voorkomt u dat de Jitter
einde lus
}
int monster (int z)
/ * Deze functie zal de Pin 'z' 5 keer gelezen en een gemiddelde nemen.
Daarna zal dit worden toegewezen door te delen door 4
Dus: delen door 20
*/
{
byte i;
int sval = 0;
voor (ik = 0; ik < 5; i ++) {sval = sval + analogRead(z); / / sensor op analoge pin 'z'
}
sval = sval / 5; gemiddelde
sval = sval / 4; schaal tot en met 8 bits (0 - 255)
sval = sval/20;
retourneren sval;
}

De software is vrij rechtdoorzee en hoeft niet veel uitleg. Het meten gebeurt met de functie "monster" (ik 'stal' die ergens maar ik vergat waar het krediet is dus niet allemaal van mij). Elke keer voordat de functie wordt aangeroepen, is de 'spikePin' hoog ingesteld voor het geval u die gebruikt om te voeden de spikes. Als u gewoon het voeden van de 5V lijn, kan die instructie worden weggelaten.
Zoals het is, maatregelen de software voortdurend, zodat het maakt echt niet dat er veel verschil waar u de spikes van voeden. Als u kiest om te voeden de spikes van de digitale I/O pin, zou het zinvol om ook in een vertraging in het meten, zoals eens per uur, of twee keer per dag. Als het circuit niet over een klok beschikt, is het makkelijkst te doen die vertraging met één of meer 'vertraging' instructies.

Krijgen van de software in de Attiny
Er zijn tal van instructies daarover, en het is niet het onderwerp van deze tutorial. U kunt een speciale programmeur, een ander arduino of zelfs uw seriële of parallelle poort.
Maar in het kort u moet installeren een Attiny85 kern en te selecteren dat bij compileren en programmeren. Ga hier voor kernen en uitleg.

Extra:
Pin 1 van de Attiny is hoge getrokken omdat dit meestal de resetpin is en men wil niet dat die los hangen. Als een R4 door een 1 k weerstand in serie met een LED vervangen zou, kan die worden gebruikt voor signaal functies zoals 'Ik nu meten ben' of 'het water niveau te laag is'. Echter u dient aan deze pin als een gewone digitale pin en dus verliest haar reset-functie. Dat betekent dat de herprogrammering niet mogelijk zonder een HighVoltage programmeur is.

Opmerking:
Als u het maken van de PCB, is het verstandig om de pads waar de conenctors in een tikkeltje groter gaan met BV een viltstift of sommige nailpolish, zodat wanneer u soldeer in de connectoren ze goede grip kunnen krijgen.

Gerelateerde Artikelen

Water uw planten met een opamp

Water uw planten met een opamp

Er is een meer uitgebreide versie van dit instructable. Kunt u op die plaats zoeken. Ik momenteel kan niet 'ongedaan' deze korte ibble'.In een eerdere instructable, presenteren een automatische tuin drenken project met een Attiny, vermeld ik dat het
Het gebruik van de IR-bibliotheek met een attiny

Het gebruik van de IR-bibliotheek met een attiny

Dit Instructable zal u vertellen hoe het gebruik van de IR (infrarood) bibliotheek op een Attiny. Ik zal met behulp van een Attiny85 met een Arduino Uno. Ik zal niet dekken hoe te uploaden schetsen naar de Attiny enkel het gebruik van de IR-bibliothe
Wat te doen met een 3d afgedrukt jack o ' lantern (bijgewerkt)

Wat te doen met een 3d afgedrukt jack o ' lantern (bijgewerkt)

dit instructable beschrijft wat te doen met een 3d-gedrukte jack o ' lantern. Zie mijn andere instructables om te leren hoe model, render en animatie van een jack o ' lantern...Stap 1: 1. 3d-print het stl-bestand van een van mijn gemodelleerde pompoe
Met behulp van een Quadrature Encoder met een ATtiny-2313 en een OLED-Display met

Met behulp van een Quadrature Encoder met een ATtiny-2313 en een OLED-Display met

In dit instructable leert u hoe om een roterende encoder te gebruiken (Zie http://en.wikipedia.org/wiki/Rotary_encoder) met een microcontroller en hoe geeft u de numerieke waarde weer als een bar en een numerieke waarde op een OLED-display. Zie de vi
Kleur veranderende nacht licht met een ATtiny

Kleur veranderende nacht licht met een ATtiny

Ik wilde iets maken voor mijn vrouw als een geschenk en dit is wat ik kwam met. Dit is een donkere geactiveerde kleur veranderende nachtlampje. Het heeft een sensor die vertellen kan wanneer de kamer licht is uitgeschakeld. Dit klikt, zal een RGB LED
Wat te doen met een oude spa

Wat te doen met een oude spa

Rechts, zodat ik een fontein in de voortuin met behulp van een voorraad trog bouwde, dus heb ik besloten om te proberen en opbouw van een echte economie in de achtertuin.De vrouw in eerste instantie dacht dat ik gek was en zei ze haatte het idee, maa
Hack uw Hasbro R2D2 met een IOIO Microcontroller!

Hack uw Hasbro R2D2 met een IOIO Microcontroller!

Mijn vrouw kocht me een Hasbro Interactive R2D2 Astromech Droid voor mijn verjaardag een paar jaar geleden nadat ik zei hoe leuk het zou zijn om het te kappen en ik heb eindelijk in geslaagd te kruipen en beginnen te spelen!Hoewel de controlefuncties
Aan de slag met een 8051 microcontroller

Aan de slag met een 8051 microcontroller

Hoi allemaalIk hou van micro-controllers projecten. Ik gebruik vaak zowel Arduino kaarten en "naakt" AVR micro-controllers (ATTINY en ATMEGA apparaten) voor mijn projecten.Ik kies voor mijn cultuur, te bestuderen van een andere soort micro-contr
Hoe om te lezen binair getal/Hexuitdraai draaischijf schakelen met een AVR Microcontroller

Hoe om te lezen binair getal/Hexuitdraai draaischijf schakelen met een AVR Microcontroller

dit instructable zal u tonen hoe om te lezen het nummer op een binaire pushwheel of draaischijf schakelaar met behulp van LED's of een AVR microcontroller (ik gebruik een ATmega328p maar dit kan worden aangepast voor elke AVR of waarschijnlijk een an
Wat te doen met een gekapte boom

Wat te doen met een gekapte boom

als u ooit een boom in stukken knipt hebben, je zult worden gelaten met een heleboel puin.Hier zijn een paar ideeën voor de left-overs.Stap 1: materialen Alle project voorbeelden werden gebouwd met behulp van deze eenvoudige hulpmiddelen en materiale
Wat kun je met een 3D Printer?

Wat kun je met een 3D Printer?

Ik kreeg voor het eerst een 3D pen die echt cool was. Ik kocht dan een 3D-printer. Heel erg cool. Na een tijdje realiseerde ik me er geen einde aan de dingen die ik afdrukken kan, hoewel een aantal van hen zijn zeer moeilijk te goed pull off. Ik dach
Wat te doen met een 'misdragende' golfbal

Wat te doen met een 'misdragende' golfbal

In het verleden dacht ik dat sommige van mijn golfballen 'defect' moet zijn. Ze zou nooit gaan waar ik hen gericht. Zij gingen in het bos, in het water, in de rough - soms nooit te vinden. Ik nooit gericht hen er, maar dat is waar ze gingen. Dus, als
INTERFACING een DOT-MATRIX van 8 X 8 LED DISPLAY met een AT89C51 MICROCONTROLLER

INTERFACING een DOT-MATRIX van 8 X 8 LED DISPLAY met een AT89C51 MICROCONTROLLER

Interfacing op een 8 x 8 dot matrix annuleerteken zitten vermaak en is gemakkelijk om te spelen met, dus laten we recht erin!Stap 1: Wat moet je:AT89C51 MICRCONTROLLER8 X 8 DOT MATRIXEEN DEVELOPMENT BOARD OFDOT MATRIX MODULEStap 2: Principes die je m
Mini USB-toetsenbord met een $7-Microcontroller

Mini USB-toetsenbord met een $7-Microcontroller

Een toetsenbord die gebruikmaakt van een microcontroller te sturen usb toetsaanslagen, die met AutoHotKey, een Windows-toepassing interfacet voor het maken van toepassingen en macro's maken.AutoHotKey kan worden gebruikt met uw oorspronkelijke toetse