ZiiP 101 Posted August 17, 2017 Alleen voor de knutselaars!! Een simpele maar zeer effectieve licht sensor. Functie: Detecteer minimale veranderingen in de licht intensiteit. 1 x 4.7kOhm weerstand 0,05cent 1 x 11.8kOhm weerstand 0,05cent 1 x 0.01uf condensator 0,08cent 1 x 500kOhm photocel 0,20cent optioneel 1 x potmeter 1mOhm 0,40cent 1 x printplaatje 0,45cent te bestellen bij bijvoorbeeld www.vannallesenmeer. www.benselectronics. www.opencircuit en zo nog tiental anderen en natuurlijk een arduino // Code zelf de globale variabelen declareren // functie detectee licht void detecteerLicht(){ int lichtBewaking = analogRead(lichtAlarm); //lees de sensor int opslaanA; int opslaanB; float opslaanC; u8g.print("L="); u8g.print(lichtBewaking); //print de uitkomst op het scherm if(lichtBewaking>alarmwaarde || lichtBewaking< alarmwaarde){ // als lichtbewaking groter of lager is dan je hebt aangegeven alarmState=HIGH; //sla alarm } if(uurTijd==uur&&minTijd==min&&second()==1){ // verander uur en min naar eigen inzicht opslaanA=lichtBewaking/10; //if 556 / 10 = 55 opslaan als byte opslaanC=lichtBewaking/10; //if 556 / 10 = 55.6 opslaan als float opslaanB=(opslaanC-opslaanA)*10; // 55.6-55=0.6 x 10 =60 van float een byte maken EEPROM.write(10, opslaanA); //opslaan in arduino geheugen EEPROM.write(11, opslaanB); } } //einde functie //in de setup() lees je de waardes die je de vorige keer hebt opgeslagen setup(){ opslaanA= EEPROM.read(10); opslaanB= EEPROM.read(11); opslaanA=opslaanA*10; opslaanB=opslaanB*10; resultaat=opslaanA+opslaanB; } //einde setup void loop(){ detecteerLicht(); } //einde loop //volgende keer wanneer de arduino weer opstart samen met de tent/lamp/weet ik veel //lees de opgeslagen data van gisteren en vergelijk het met die van vandaag //als het een stuk lager is dan gisteren of juist veel hoger dan is er iets kapot //optioneel is een menu maken die het licht dagelijks calibreert // //bijvoorbeeld zo: if(lichtbewaking>resulataat+5 || lichtbewaking<resulataat+5 ){ //als kleiner of groter dan 5 in vergelijking met gisteren (HPS ouderdom?) resulataat=lichtBewaking; } else{ alarmState=HIGH; //sla alarm } De functie van de acryl stukje is het tegenhouden van stof die anders op de sensor komt. Die lijm je met secondelijm. Aluminium busje zorgt voor meer gerichte lezingenen versterkt licht van de zijkant, bereik is >190 graden 2 Quote Share this post Link to post Share on other sites
Wietefras 2,745 Posted August 18, 2017 Ik wil je feestje niet bederven, maar waarom koop je niet een standaard licht sensor van een paar duppies? Die geven nog gewoon lux waardes ook in plaats van willekeurige waardes die je maar weer moet zien te calibreren. Quote Share this post Link to post Share on other sites
ZiiP 101 Posted August 18, 2017 Je kunt idd ook een kant en klare kopen, daarom schreef ik "alleen voor de knutselaars". De code zal ook met een kleine aanpassing op de kant en klare lux sensor werken. De bedoeling van deze sensor is kleine veranderingen in de lichtsterke meten om te bepalen of alles nog goed gaat. Lux calibratie is daarom ook niet nodig, wat scheelt in de geheugen die een library voor de kant en klare sensor gebruikt. Je krijgt een bepaalde waarde als je lampen voluit draaien, die vergelijk je dan 1 x per dag of 1 x per 10seconden. Heeft het een afwijking van zoveel % dan weet je dat er iets niet of wel klopt. Hier een sensor van conrad die net zo werkt als de bovenstaande sensor, alleen is die duurder. https://www.conrad.nl/nl/module-bekabelde-lichtsensor-velleman-vma407-geschikt-voor-arduino-boards-arduino-1-stuks-96847.html?WT.mc_id=gshop&insert=8J&gclid=CjwKCAjwoNrMBRB4EiwA_ODYvw7FjeBoCXTZC5CgZ1_zxNM2-Qk-n3lt7uMYbYGIZar2txRJ_adksBoC8WkQAvD_BwE&tid=819986081_43073150835_pla-296080089822_pla-96847&WT.srch=1 Mvg Quote Share this post Link to post Share on other sites
Wietefras 2,745 Posted August 18, 2017 Ik ben ook groot voorstander van "knutselen", maar dan wel als het geld bespaart of een beter resultaat oplevert. Een lux sensor van 80 cent die tot 1 lux nog gevoelig is heeft dan toch mijn voorkeur. Die paar honderd bytes geheugen heb ik er wel voor over dat er ook nog een controleerbaar getal uit komt. Die Conrad sensor koop je voor 20cent op Aliexpress. Als je die niet al standaard hebt zitten in je Arduino starterkit. Quote Share this post Link to post Share on other sites
ZiiP 101 Posted August 18, 2017 Als die idd 20 cent kost en maar 1 draad gebruikt is het idd beter, ik heb ze alleen gemist. Ik heb wel sensors gezien die 3 tot 4 draden gebruiken voor een meting. Ik hoef geen 100000 Lux te meten,alleen een klein verschil in lichtintwnsiteit en dat lukt met deze sensor perfect. Mvg Quote Share this post Link to post Share on other sites
Wietefras 2,745 Posted August 18, 2017 Het is een kabeltje. Of daar nou 2 of 4 draden in zitten, who cares? Ik heb zelf een sensor module waar van alles mee wordt gemeten. Dan gaat er één kabel van dat ding met alle sensoren naar de Arduino. Of zoals Cabis het doet met een draadloze zender kan ook. Hoef je alleen nog stroom te regelen voor de sensor module. Heb je dit al geprobeerd trouwens? Ik meet al jaren de lichtintensiteit (in lux), maar er zit nogal wat fluctuatie in hoor. Ik had ooit de hoop dat ik de veroudering van mijn lampen zou kunnen meten, maar dat is echt een kansloze zaak. De meting verandert al als de sensor even anders hangt of als je het armatuur niet exact op dezelfde hoogte weer terug hangt, nadat je wat met de planten hebt zitten rommelen bijvoorbeeld. Ik meet de lichtintensiteit op top hoogte en dan wil het in de groei ook nog wel eens gebeuren dat er een blad over de sensor valt. Met bepaalde lampen zie je zelfs de lichtsterkte varieren over de dag. Afhankelijk van de temperatuur een beetje, maar vooral bij het inschakelen bouwt het "langzaam" op. Ben bang dat je een hele hoop alarm meldingen gaat krijgen. Of je moet de tolerantie heel hoog zetten, maar dan streef je het doel wel weer voorbij. Quote Share this post Link to post Share on other sites
ZiiP 101 Posted August 19, 2017 Dank voor de info Wietefras,ik denk dat ik de sensor elke uur ga kalibreren en een kalibratie menu maak als k ff bij de planten ben gaan kijken en de sensor waarde daardoor van slag is. Ik heb mijn hok nog niet klaar en heb het daar nog niet getest, in de woonkamer werk het wel. Met de programma is veel te regelen. Het is wel verdomd handig als het licht uit is, voor het geval dat er iets in fik vliegt. Overdag als er 1 led uitvalt zou de sensor dat moeten opmerken. Mvg Quote Share this post Link to post Share on other sites
Wietefras 2,745 Posted August 19, 2017 Schakel je het licht wel in met dezelfde Arduino? Het programma moet op zijn minst ook weten of de lamp aan moet staan toch? Dat lijkt mij de belangrijkste controle eigenlijk. Dat de lamp wel uit gaat als dat de bedoeling is en weer aan als dat de bedoeling is. Over "kleine verschillen" iets zinnigs melden lijkt me dus lastig. Zelfs als je de tent open doet dan daalt de lichtintensiteit al wat. Hoe ga je die alarm meldingen door krijgen? Toch niet met een geluidssignaal? Dat trekt wel weer erg de aandacht naar je kweek. Quote Share this post Link to post Share on other sites
ZiiP 101 Posted August 19, 2017 Nee niet via een geluidsignaal. De hele kast wordt aangestuurd door 1 arduino mega die een gigantische programma heeft. Er zijn nog maar 8 ingangen over De rest van de ingangen hebben een functie. Zodra ik klaar ben met het testen van de controller en al zijn functies, dan komt die in een stalen kast en de bedrading wordt dan ook gefatsoeneerd. Ook is er een arduino UNO die als een server draait icm W5100, hierdoor kan ik via mijn telefoon op internet met de MEGA communiceren en bijsturen. De controller heeft meer dan 40 instellingen in 4 hoofdprogramma's bestaande uit: dagmodus, nachtmodus, veilige modus en alarmmodus. Alles is te regelen, en die LDR sensor is een leuke extraatje. Bereik is maar van 0-1023, en zoals ik je al eerder aangaf hoef ik geen lux te meten maar een verandering in de lichtintensiteit tussen 0-1023. Hoe dat gaat werken: je start de arduino op wacht tot de lampen op 100% draaien Doe een meting bijv (700) Nu heb je een waarde van je lampen,blijf deze elke minuut vergelijken is de waarde opeens hoger/lager dan (MIJN TOLERANTIE) bijv (600) Dim het licht naar 50% en stuur een alarm (of doe iets anders) of checken op vuur : is de waarde opeens hoger/lager dan (MIJN TOLERANTIE) bijv (600) Doe het licht uit en neem weer een lichtmeting als er licht gemeten wordt schakel brand installatie in (of iets anders) kalibratie: als de waarde tussen de 630 en 760 zit voor bijvoorbeeld 2 uur ofzo kalibreer de sensor waarde Het is eigenlijk best simpel Mvg Quote Share this post Link to post Share on other sites
Wietefras 2,745 Posted August 19, 2017 De hele kast wordt aangestuurd door 1 arduino mega die een gigantische programma heeft. Er zijn nog maar 8 ingangen over Dat is ook weer een groot voordeel van die I2C dingen. Op twee pinnen kun je tig sensoren aansluiten. Ik denk toch dat die calibratie je grootste probleem gaat worden. Als je de boel opstart en dan de start waarde als calibratie punt neemt dan zie je dus niet dat je lampen niet aan gaan. Of als maar de helft aan gaat. De boel corrigeert automatisch naar die startup waarde en vind het dan wel best. Zou je vuur niet makkelijker/beter zien aan de temperatuur? Voor hetzelfde geld zit je relais gewoon vast en schakelt de lamp daardoor niet uit. Dan zet je de blusser aan voor jan doedel. Quote Share this post Link to post Share on other sites
ZiiP 101 Posted August 19, 2017 Aan alles is gedacht er zijn zat sensoren die de boel monitoren waaronder ook 2 die de temperatuur meten. Ic2 zal de metingen trager maken, en met een grote programma kan ik dat niet gebruiken. Temperatuur, lichtsterke en amperage zijn een goede beveiliging als je die kunt meten. De lampen worden geschakeld door mosfets. Mvg Quote Share this post Link to post Share on other sites