Inhoudsopgave:
- Stap 1: Manifest
- Stap 2: Circuit
- Stap 3: Programmeren - Eenvoudig
- Stap 4: Datalogging op Google Docs
Video: Honingbijenteller - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Waar de taakverdeling van de honingbij 25 miljoen jaar gestaag vooruitgaat… is ons menselijk superorganisme complexer en in alle richtingen gegroeid… vandaar de bijenteller… Door: thomashudson.org
Zie hier het verbeterde ontwerp: Honey Bee Counter II
28-4-19 - Ik ben me weer aan het verdiepen in dit project. Het is al zo lang het laatste ontwerp dat ik van plan ben om enkele verbeteringen aan te brengen. De prijs van printplaten (PCB's) is behoorlijk gedaald, dus ik maak een groot sensorbord, 24 poorten en ongeveer 14,5 "lang om helemaal over het lichaam van de korf te gaan. Ook ongeveer ~ 1,5" breed om te blokkeren IR uit de zon. Laat het me weten als je vragen/ideeën hebt.
Live data van - 25 juni 2012 Ik ben afgestapt van live data… mijn versie 2 heeft een SD-kaart en ik werk samen met een universiteit om wat onderzoek te doen… maak gerust je eigen WIFI-enabled zwermdetector en ik' Ik zou graag een partnerschap aangaan met iemand die ze aan de massa wil verkopen.
Stap 1: Manifest
Bee Counter - Versie 2, 14 oktober 2012 - micro SD datalogging - realtime klok zet de teller 's nachts UIT voor minder stroom - ontkoppelde de LED's van de microcontroller om het gemiddelde vermogen te verlagen tot 6,6 ma wanneer niet in gebruik - kleine batterij gaat mee maandenlang - klaar voor zonnecelstroom - onbeperkte temperatuursensoren - kunnen schattingen maken van de grootte van de bij (arbeider versus drones) en daarom de activiteit van de drone/arbeider volgen - 3D-geprinte draaistijlen of poorten - compleet te koop zonder batterij $ 400 of maak uw eigen (zie hieronder) Hier zijn de specificaties voor versie 1. Deze instructable beschrijft versie 1 die gemakkelijk kan worden geüpgraded naar versie 2, hoewel ik geen volledige plannen heb verstrekt. - 95% nauwkeurigheid - Werkt op USB-stroom - zou regenbestendig moeten zijn met een bovenklep - bijen passen zich binnen een paar minuten aan nieuwe opening aan - realtime monitoring op google docs - USB-verbinding dumpt gegevens op uw laptop tekstbestand Dit zijn de plannen om te bouwen je eigen. Er zijn algemene instructies voor het maken van prototypes of je kunt naar de circuitpagina gaan en mijn exacte bord en circuit kopiëren. 1. Koop een paar infrarood (IR) sensoren - Sparkfun: https://www.sparkfun.com/products/9542 - Koop 30K 50K en 100K weerstanden om de digitale ingangsgevoeligheid te testen. - Koop 10, 20, en 50 ohm weerstanden voor het voeden van de IR LED 2. Maak een prototype van uw onderdelen met een Arduino - ik gebruikte een dode bij op een draad - het is een eenvoudig circuit 3. Selecteer een microcontroller… Ik gebruikte de Teensy ++ - dezelfde gebruikersinterface als Arduino. - heeft 46 inputs/outputs, - het is goedkoop, en - lokaal ontworpen hier in Portland. 4. Ontwerp je printplaat gratis met EAGLE - ik volgde een les van 4 uur op dorkbotpdx.org hier in Portland. de software is gratis. - laat het printen via dorkbot in Portland $45 voor 3 boards 5. zet alles bij elkaar - soldeer je componenten op het board - kalibreer je sensoren - finetuning van je programmering Ruwe kosten en componenten voor mijn board ~ $110 - Printed Circuit Board $45 - aantal(44) QRE1113 IR-sensoren $ 33 - Teensy ++ $ 24 - weerstanden en pinnen $ 10 - mijn tijd $ ouch! Stuur me een bericht als je geïnteresseerd bent in het samenstellen van een kit, want het zou waarschijnlijk $ 130 zijn als je zelf wilt solderen en lijmen!
Stap 2: Circuit
meer details volgen, maar het is supereenvoudig … Sparkfun verkoopt de infraroodsensor of IR-sensor. Het is een LED EN een Sensor! gek handig!. Wanneer de bij onder de LED doorgaat, wordt het licht teruggekaatst naar de sensor (het is een fototransistor) en activeert een digitale ingang naar de Arduino (of in mijn geval een tiener). Ik heb twee fiches naast elkaar opgesteld … terwijl de bij door de poort gaat als hij de binnensensor als eerste raakt … hij gaat uit … als hij de buitensensor als eerste raakt komt hij binnen. Meer over de programmering … Bekijk de volledige schema en GERBER-bestanden bijgevoegd. - Ik heb 4 LED's in serie gebruikt met aan het einde een weerstand van 10 ohm… dat is gelijk aan 1,2 volt drop per LED. - je kunt je LED-spanningsval controleren met een online webtool zoals deze - als je uiteindelijk dezelfde opstelling bouwt als ik, kun je de IR-sensoren voor een beetje goedkoper krijgen via Digikey hier. - Pololu verkoopt ook dezelfde IR-sensoren op een bord (array) en ze hebben hier code en voorbeelden. - volgens het grote schema hieronder heb ik 100k ohm-weerstanden gebruikt om te aarden. dit verhoogt de gevoeligheid. Als u een kleinere weerstand gebruikt, wordt deze minder gevoelig. Het is een NPN Fototransistor. Ruwe kosten en componenten voor mijn bord ~ $ 110 - Printplaat $ 45 - aantal (44) QRE1113 IR-sensoren $ 33 - Teensy ++ $ 24 - aantal (11) 10 ohm 0805-weerstanden - aantal (44) 100k 0805-weerstanden - 26 headers en 26 spelden om de Teensy aan het bord te bevestigen $3 - mijn tijd $ouch! Stuur me een bericht als je geïnteresseerd bent in het samenstellen van een kit, want het zou waarschijnlijk $ 150 zijn als je zelf wilt solderen en lijmen!
Stap 3: Programmeren - Eenvoudig
De Teensy is geprogrammeerd in Arduino… of C++ maar ik ben een beetje bekend met Arduino… De code is hieronder bijgevoegd. /* Dit is voor de eerste twee gateways: A en B. */ // deze constante verandert niet: const int ain = 44; //pin 44 is de eerste digitale ingang voor Gate A const int aout = 45; // pin 45 is de tweede digitale ingang voor Gate A const int bin = 42; // hetzelfde voor Gate B const int bout = 43; // hetzelfde voor Gate B // Variabelen zullen veranderen: int ins = 0; // telt ins en outs int outs = 0; int ai = 0; // Poort A 1e pinstatus int lai = 0; // Gate A laatste status van 1e pin int ao = 0; // Poort A 2e pinstatus int lao = 0; // Poort A laatste status van 2e pin int bi = 0; int lbi = 0; int bo = 0; int lbo = 0; aantal int = 0; // dit test alleen of er een verandering is in onze bijentelling int lcount = 0; void setup () {// initialiseer de knoppin als invoer: pinMode (ain, INPUT); pinMode (uit, INPUT); pinMode (bin, INPUT); pinMode (bout, INPUT); // initialiseer seriële communicatie: Serial.begin (38400); // een beetje anders dan de Arduino hier …. 38400 } void loop () {// lees de ingangspin van de drukknop: ai = digitalRead (ain); oa = digitalRead(aout); bi = digitalRead (bin); bo = digitalRead(bout); if (lai != ai){ // heeft de status als de 1e pin is gewijzigd? if (ai > ao) { // zo ja, gaat de bij erin of eruit? ins++; // als het naar binnen gaat, voeg dan een bij toe aan ins }} if (lao != ao){ if (ao > ai) { outs++; }} if (lbi != bi){ if (bi > bo) { ins++; }} if (lbo != bo){ if (bo > bi) { outs++; }} lai = ai; // werkt de laatste status bij lao = ao; lbi = bi; lbo = bo; tellen = ins + outs; if (lcount != count){ // als de count is veranderd, printen we de nieuwe count Serial.print("number In: "); Serieel.println(ins); Serial.print("nummer Uit: "); Seriële.println(outs); lcount = tellen; } } Ik heb een debeebouce-reeks toegevoegd. Hier is de nieuwste kalibratievideo van vandaag 26/06/12. Het is 91% nauwkeurig, maar er is nog een beetje ruimte voor verbetering:
Stap 4: Datalogging op Google Docs
Ik heb Processing gebruikt om de gegevens realtime via een laptop te uploaden. Hier zijn de eerste gegevens die ik heb gekregen… - Live-datum van vandaag 25 juni 2012 De waarden worden geüpload via de bijgevoegde code. Het algemene idee is om een 'formkey'-link te gebruiken die wordt geopend bij het invullen van een formulier voor Google Docs. 1) log in op google docs 2) maak een nieuw FORM met zoveel input als je datapunten hebt 3) ga naar het 'live-formulier' en bekijk de broncode … zoek naar de 'formkey' en de invoer-ID's … hier is wat Ik vond: 4) het is gemakkelijk te achterhalen zodra je de broncode hebt en begint met het knippen en plakken van waarden in je browser om je beweringen te testen … probeer het behoorlijk krachtig.. In Processing (je kunt het waarschijnlijk rechtstreeks vanuit de Arduino posten, maar Ik dacht dat ik zou proberen in Processing..) String docs = nieuwe String [8]; //deze 'string' voegt gewoon alle stukjes van de URL samen 0 tot en met 7 of 8 in totaal…. docs[0] = "https://docs.google.com/spreadsheet/formResponse?formkey=dHNHNWtZQ3lJSzFCZ1kyX0VVVmU0LUE6MQ&ifq&entry.0.single="; //dit is de formkey van de FORM-broncode docs[1] = pairs[1]; //dit is mijn eerste datapunt # bijen IN. docs[2] = "&entry.1.single="; //dit vertelt google doc mijn eerste mijn tweede variabele komt daarna … zoek in de broncode om erachter te komen, maar het zal er ongeveer hetzelfde uitzien … docs [3] = paren [3]; //dit is de tweede variabele # bijen OUT. docs[4] = "&entry.2.single="; //dit vertelt google doc dat mijn derde variabele de volgende is.. docs[5] = Delta_in; // # bijen in min laatste aantal bijen in docs[6] = "&entry.4.single="; docs[7] = Delta_out; String docs2 = join(docs, ""); loadStrings(docs2); // zodra je al deze stukjes bij elkaar hebt gezet, post het je spreadsheet!!… test je eigen stukjes in je browser… Ik laat het elke 5-10 minuten posten… Ik heb de verwerkingscode bijgevoegd… Ik moet nog steeds de INT-variabelen veranderen in FLOAT want na een paar uur overschrijden de waarden 32.000 bijen!!! oeps..