Inhoudsopgave:

Arduino gebruiken voor Citizen Science!: 14 stappen (met afbeeldingen)
Arduino gebruiken voor Citizen Science!: 14 stappen (met afbeeldingen)

Video: Arduino gebruiken voor Citizen Science!: 14 stappen (met afbeeldingen)

Video: Arduino gebruiken voor Citizen Science!: 14 stappen (met afbeeldingen)
Video: ELISE Webinar Geospatial for Digital Government Transformation 20190507 1207 1 2024, Juni-
Anonim
Image
Image
Pssst, wat is het verschil tussen burgerwetenschap en?
Pssst, wat is het verschil tussen burgerwetenschap en?

De wetenschap stelt ons in staat om onze meest prangende vragen te stellen en allerlei curiositeiten te onderzoeken. Met wat nadenken, hard werken en geduld kunnen we onze verkenningen gebruiken om een beter begrip en waardering op te bouwen voor de complexe en mooie wereld om ons heen.

Deze tutorial leert je hoe je een Arduino (uno) microcontroller gebruikt, hoe je verschillende soorten sensoren gebruikt en hoe je data verzamelt en visualiseert. Onderweg bouwen we drie projecten: een kantelschakelaar, een temperatuur- en vochtigheidssensor en een lichtsensor!

Moeilijkheidsgraad: Beginner

Lees Tijd: 20 min

Bouwtijd: afhankelijk van uw project! (Projecten in deze tutorial duren ongeveer 15 - 20 min)

Stap 1: Pssst, wat is het verschil tussen burgerwetenschap en "officiële wetenschap"?

Het grootste verschil is dat burgerwetenschap, zoals ik graag zeg, 'handgolvend' is, wat betekent dat er veel fouten en onzekerheden zijn en dat er geen rigoureus proces is om ze te identificeren. Daarom zijn conclusies die via burgerwetenschap worden bereikt veel minder nauwkeurig dan wetenschap-wetenschap en mag er niet op worden vertrouwd bij het maken van serieuze/levensveranderende/levensbedreigende claims of beslissingen.*

Dat gezegd hebbende, burgerwetenschap is een geweldige manier om een fundamenteel begrip op te bouwen van allerlei fascinerende wetenschappelijke fenomenen en is goed genoeg voor de meeste dagelijkse toepassingen.

*Als je aan burgerwetenschap doet en je ontdekt iets dat potentieel gevaarlijk is (bijv. hoge loodgehalten in water), informeer dan je docent (indien van toepassing) en neem contact op met de relevante autoriteiten en professionals voor hulp.

Stap 2: Wat is Arduino??

Wat is Arduino??
Wat is Arduino??
Wat is Arduino??
Wat is Arduino??
Wat is Arduino??
Wat is Arduino??
Wat is Arduino??
Wat is Arduino??

Arduino is een microcontrollerbord en Integrated Development Environment ("IDE"), wat een mooie manier is om "coderingsprogramma" te zeggen. Voor beginners raad ik Arduino Uno-boards ten zeerste aan omdat ze super robuust, betrouwbaar en krachtig zijn.

Arduino-borden zijn een goede keuze voor burgerwetenschappelijke projecten omdat ze veel invoerpinnen hebben om in zowel analoge als digitale sensoren te lezen (we komen hier later meer op terug).

Natuurlijk kunt u andere microcontrollers gebruiken voor burgerwetenschap, afhankelijk van uw (of uw leerlingen) behoeften, vaardigheden en comfortniveau. Hier is een overzicht van microcontrollers om u te helpen beslissen wat het beste voor u is!

Om een Arduino-bord te flashen of te programmeren, sluit u het aan via USB en doet u het volgende:

1. Selecteer het type Arduino dat je gebruikt onder Tools -> Boards. (Foto 2)

2. Selecteer de poort (ook bekend als waar deze is aangesloten op uw computer). (Foto 3)

3. Klik op de knop Uploaden en controleer of het uploaden is voltooid. (Foto 4)

Stap 3: Gereedschap & Materialen

Gereedschap & Materialen
Gereedschap & Materialen

Als je net begint, is het aanschaffen van een kit een snelle en gemakkelijke manier om een heleboel onderdelen tegelijk te krijgen. De kit die ik in deze tutorial gebruik, is de Elegoo Arduino Starter Kit.*

Gereedschap

  • Arduino Uno
  • USB A naar B-kabel (ook bekend als printerkabel)
  • Doorverbindingsdraden

    • 3 man-naar-man
    • 3 man-naar-vrouw
  • Breadboard

    Optioneel maar aanbevolen om je leven gemakkelijker en leuker te maken:)

Materialen

Voor de projecten die in deze tutorial worden behandeld, heb je deze onderdelen uit de Elegoo Arduino Starter Kit nodig:

  • Kantelschakelaar
  • DTH11 temperatuur- en vochtigheidssensor
  • LED
  • 100 Ohm Weerstand

* Volledige openbaarmaking: ik koop dezelfde kits voor workshops, maar de kit die in deze tutorial wordt gebruikt, is geschonken door de lieve mensen van Elegoo.

Stap 4: Welke soorten sensoren kunnen we gebruiken?

Welke soorten sensoren kunnen we gebruiken?
Welke soorten sensoren kunnen we gebruiken?

Bij het ontwerpen van een wetenschappelijk experiment beginnen we meestal met een vraag: hoeveel CO2 nemen planten op een dag op? Wat is de impactkracht van een sprong? Wat is bewustzijn??

Op basis van onze vraag kunnen we vervolgens bepalen wat we willen meten en wat onderzoek doen om erachter te komen welke sensor we kunnen gebruiken om gegevens te verzamelen (hoewel het misschien een beetje lastig is om gegevens te verzamelen voor die laatste vraag!).

Bij het werken met elektronica zijn er twee hoofdtypen sensorgegevenssignalen: digitaal en analoog. Op de foto zijn de eerste twee rijen onderdelen allemaal digitale sensoren, terwijl de bovenste twee rijen analoog zijn.

Er zijn veel verschillende soorten digitale sensoren, en sommige zijn uitdagender om mee te werken dan andere. Als je onderzoek doet voor je burgerwetenschapsproject, controleer dan altijd hoe de sensor gegevens uitbrengt (srsly tho) en zorg ervoor dat je een (Arduino-)bibliotheek voor die specifieke sensor kunt vinden.

In de drie projecten die in deze tutorial worden behandeld, gebruiken we twee soorten digitale sensoren en één analoge sensor. Laten we leren!

Stap 5: Digitale sensoren! Deel 1: de Easy Ones

Digitale sensoren! Deel 1: de Easy Ones!
Digitale sensoren! Deel 1: de Easy Ones!
Digitale sensoren! Deel 1: de Easy Ones!
Digitale sensoren! Deel 1: de Easy Ones!

De meeste sensoren die u gebruikt, geven een digitaal signaal uit, wat een signaal is dat aan of uit staat.* We gebruiken binaire getallen om deze twee toestanden weer te geven: een Aan-signaal wordt gegeven door een 1, of Waar, terwijl Uit 0 is, of fout. Als we een afbeelding zouden maken van hoe een binair signaal eruitziet, zou het een blokgolf zijn zoals die in Foto 2.

Er zijn enkele digitale sensoren, zoals schakelaars, die supergemakkelijk en ongecompliceerd te meten zijn, omdat ofwel de knop wordt ingedrukt en we een signaal krijgen (1), of er wordt niet op gedrukt en we hebben geen signaal (0). De sensoren afgebeeld in de onderste rij van de eerste foto zijn allemaal eenvoudige aan/uit-types. De sensoren op de bovenste rij zijn wat complexer en zijn na ons eerste project afgedekt.

De eerste twee projecten in deze tutorial leren je hoe je beide typen kunt gebruiken! Op naar het bouwen van ons eerste project!!

*Aan betekent een elektrisch signaal in de vorm van elektrische stroom en spanning. Uit betekent geen elektrisch signaal!

Stap 6: Project 1: Kantelschakelaar digitale sensor

Project 1: Kantelschakelaar digitale sensor
Project 1: Kantelschakelaar digitale sensor
Project 1: Kantelschakelaar digitale sensor
Project 1: Kantelschakelaar digitale sensor
Project 1: Kantelschakelaar digitale sensor
Project 1: Kantelschakelaar digitale sensor

Laten we voor dit eerste project een tilt-schakelaar gebruiken, die zwarte cilindrische sensor met twee poten! Stap 1: Steek een poot van de tilt-schakelaar in Arduino Digital Pin 13 en het andere been in de GND-pin direct naast pin 13. Oriëntatie maakt niet uit.

Stap 2: Schrijf een schets die de status van digitale pin 13 inleest en afdrukt

Of je kunt gewoon de mijne gebruiken!

Als je net begint met coderen, lees dan de opmerkingen door om beter te begrijpen hoe de schets werkt en probeer wat dingen te veranderen om te zien wat er gebeurt! Het is oké om dingen te breken, dat is een geweldige manier om te leren! Je kunt het bestand altijd opnieuw downloaden en opnieuw beginnen:)

Stap 3: Om uw live data te zien, klikt u op de Serial Monitor knop (foto 2)

.. aaaand dat is het! U kunt nu de kantelschakelaar gebruiken om de oriëntatie te meten! Stel het in om je kat te roepen wanneer het iets omstoot, of gebruik het om bij te houden hoe boomtakken bewegen tijdens stormen!.. & er zijn waarschijnlijk andere toepassingen tussen die twee uitersten.

Stap 7: Digitale sensoren! Deel 2: PWM en seriële communicatie

Digitale sensoren! Deel 2: PWM en seriële communicatie
Digitale sensoren! Deel 2: PWM en seriële communicatie
Digitale sensoren! Deel 2: PWM en seriële communicatie
Digitale sensoren! Deel 2: PWM en seriële communicatie
Digitale sensoren! Deel 2: PWM en seriële communicatie
Digitale sensoren! Deel 2: PWM en seriële communicatie

Er zijn veel manieren om complexere digitale signalen te creëren! Eén methode wordt Pulse Width Modulation ("PWM") genoemd, wat een mooie manier is om een signaal te zeggen dat een bepaalde tijd aan en een bepaalde tijd uit is. Servomotoren (die kunnen worden gebruikt om positie te meten) en ultrasone sensoren zijn voorbeelden van sensoren die PWM-signalen gebruiken.

Er zijn ook sensoren die seriële communicatie gebruiken om gegevens één bit of binair cijfer tegelijk te verzenden. Deze sensoren vereisen enige bekendheid met het lezen van datasheets en kunnen behoorlijk lastig zijn als je net begint. Gelukkig hebben gewone seriële sensoren codebibliotheken* en voorbeeldprogramma's om uit te halen, zodat u nog steeds iets functioneels kunt samenstellen. Meer details over seriële communicatieprotocollen vallen buiten het bestek van deze tutorial, maar hier is een geweldige bron over seriële communicatie van SparkFun om meer te leren!

Laten we voor dit voorbeeldproject de temperatuur- en vochtigheidssensor (DHT11) gebruiken! Dit is een lil' blauw vierkant met gaten en 3 pinnen.

Eerst hebben we een aantal speciale bibliotheken nodig voor de DHT11-sensor: de DHT11-bibliotheek en de Adafruit Unified Sensor-bibliotheek. Om deze bibliotheken (en de meeste andere Arduino-bibliotheken) te installeren:

Stap 1: Open de Arduino-bibliotheekmanager door naar Sketch -> Bibliotheken -> Bibliotheek beheren te gaan (Foto 2)

Stap 2: Installeer en activeer de DHT-bibliotheek door te zoeken naar "DHT" en vervolgens op Installeren te klikken voor de "DHT Arduino-bibliotheek" (foto 3)

Stap 3: Installeer en activeer de Adafruit Unified Sensor-bibliotheek door te zoeken naar "Adafruit Unified Sensor" en op installeren te klikken.

Stap 4: Voeg de DHT-bibliotheek in uw open schets door naar Sketch -> Bibliotheken te gaan en op de "DHT Arduino-bibliotheek te klikken. (Foto 4) Dit zal een aantal nieuwe regels invoegen bovenaan uw schets, wat betekent dat onze bibliotheek is nu actief en klaar voor gebruik!(Foto 5)

*Net als je favoriete lokale bibliotheek, zijn codebibliotheken een schat aan kennis en het harde werk van andere mensen dat we kunnen gebruiken om ons leven gemakkelijker te maken, yay!

Stap 8: Project 2: Digitale seriële sensor voor temperatuur en vochtigheid

Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid
Project 2: Digitale seriële sensor voor temperatuur en vochtigheid

Pak 3 man-naar-vrouw jumperdraden uit de Elegoo Arduino Starter Kit en we zijn klaar om te gaan!

Stap 1: Met de header-pinnen naar u toe gericht, sluit u de meest rechtse header-pin op de DHT11 aan op een Arduino-aardingspin ("GND").

Stap 2: Sluit de middelste header-pin aan op de Arduino 5V-uitgangspin.

Stap 3: Sluit de meest linkse header-pin aan op Arduino Digital Pin 2

Stap 4: Lees ten slotte de DHT-bibliotheek en probeer een schets te schrijven! Oooo je kunt de mijne of de DHT-testvoorbeeldschets gebruiken binnen Arduino -> Voorbeelden!

Als je het eenmaal aan de gang hebt, ga je gang en meet je de temperatuur en vochtigheid van alle dingen!.. Zoals de adem van een dier, een kas, of je favoriete klimplek op verschillende tijdstippen van het jaar om de *perfecte* zendtemperatuur te vinden.

Stap 9: Analoge sensoren

Analoge sensoren!
Analoge sensoren!
Analoge sensoren!
Analoge sensoren!

Na de moeilijke duik in digitale sensoren, kunnen analoge sensoren een makkie lijken! Analoge signalen zijn een continu signaal, zoals te zien op de 2e foto. Het grootste deel van de fysieke wereld bestaat analoog (bijv. temperatuur, leeftijd, druk, enz.), maar aangezien computers digitaal* zijn, zullen de meeste sensoren een digitaal signaal afgeven. Sommige microcontrollers, zoals Arduino-kaarten, kunnen ook analoge signalen inlezen**.

Voor de meeste analoge sensoren geven we de sensor stroom en lezen vervolgens het analoge signaal in met behulp van de analoge ingangspinnen. Voor deze test gebruiken we een nog eenvoudigere opstelling om de spanning over een led te meten als we er met licht op schijnen.

*Computers gebruiken digitale signalen om informatie op te slaan en te verzenden. Dit komt omdat digitale signalen gemakkelijker te detecteren en betrouwbaarder zijn, omdat we ons alleen maar zorgen hoeven te maken over het wel of niet krijgen van een signaal, in plaats van ons zorgen te maken over de kwaliteit/nauwkeurigheid van het signaal.

** Om een analoog signaal op een digitaal apparaat in te lezen, moeten we een analoog-naar-digitaal- of ADC-omzetter gebruiken, die het analoge signaal benadert door de invoer te vergelijken met een bekende spanning op het apparaat en vervolgens te tellen hoe lang het duurt duurt om de ingangsspanning te bereiken. Voor meer informatie is dit een handige site.

Stap 10: Project 3: LED als lichtsensor

Project 3: LED als lichtsensor!
Project 3: LED als lichtsensor!
Project 3: LED als lichtsensor!
Project 3: LED als lichtsensor!

Pak een LED (elke kleur behalve wit), een weerstand van 100 Ohm en 2 startkabels. Oh, en een broodplank!

Stap 1: Steek de LED in het breadboard met het langere been aan de rechterkant.

Stap 2: Sluit een jumperdraad van Arduino Analog Pin A0 en de langere LED-poot aan

Stap 3: Sluit de weerstand aan tussen de kortere LED-poot en de negatieve voedingsrail van het breadboard (naast de blauwe lijn).

Stap 4: Sluit de Arduino GND-pin aan op de negatieve stroomrail op het breadboard.

Stap 5: Schrijf een schets die in Analoge Pin A0 leest en print naar de Seriële Monitor

Hier is een voorbeeldcode om u op weg te helpen.

Stap 11: Gegevens visualiseren: Arduino IDE

Gegevens visualiseren: Arduino IDE!
Gegevens visualiseren: Arduino IDE!
Gegevens visualiseren: Arduino IDE!
Gegevens visualiseren: Arduino IDE!

De Arduino IDE wordt geleverd met ingebouwde tools om gegevens te visualiseren. We hebben de basisprincipes van de seriële monitor al onderzocht, waarmee we sensorwaarden kunnen afdrukken. Als u uw gegevens wilt opslaan en analyseren, kopieert u de uitvoer rechtstreeks van de seriële monitor en plakt u deze in een teksteditor, spreadsheet of ander hulpmiddel voor gegevensanalyse.

De tweede tool die we kunnen gebruiken om onze gegevens in het Arduino-programma te bekijken, is de Serial Plotter, een visuele versie (ook wel grafiek genoemd) van de Serial Monitor. Om de Serial Plotter te gebruiken, gaat u naar Tools Serial Plotter. De grafiek in Foto 2 is de output van de LED als lichtsensor van Project 3!*

De plot wordt automatisch geschaald en zolang u Serial.println() voor uw sensoren gebruikt, worden ook al uw sensoren in verschillende kleuren afgedrukt. Hoera! Dat is het!

*Als je naar het einde kijkt, is er een super interessant golfpatroon dat waarschijnlijk te wijten is aan de wisselstroom ("AC") in onze bovenlichten!

Stap 12: Gegevens visualiseren: Excel! Deel 1

Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1
Gegevens visualiseren: Excel! Deel 1

Voor serieuzere data-analyse is er een supercoole (en gratis!) Add-in voor Excel genaamd Data Streamer*, die je hier kunt downloaden.

Deze invoegtoepassing leest van de seriële poort, dus we kunnen exact dezelfde coderingstechniek gebruiken om gegevens naar serieel af te drukken om gegevens rechtstreeks in Excel te krijgen … jawel!

De Data Streamer-invoegtoepassing gebruiken:

1. Als je het eenmaal hebt geïnstalleerd (of als je O365 hebt), klik je op het tabblad Data Streamer (uiterst rechts) in Excel.

2. Sluit uw Arduino aan en klik op "Apparaat aansluiten", selecteer vervolgens de Arduino in het vervolgkeuzemenu. (Foto 1)

3. Klik op "Start Data" om het verzamelen van gegevens te starten! (Foto 2) U ziet drie nieuwe bladen openen: "Data In", "Data Out" en "Settings".

Live-gegevens worden afgedrukt in het Data In-blad. (Foto 3) Elke rij komt overeen met een sensormeting, waarbij de nieuwste waarde in de laatste rij wordt afgedrukt.

Standaard krijgen we slechts 15 rijen met gegevens, maar u kunt dit wijzigen door naar "Instellingen" te gaan. We kunnen tot 500 rijen verzamelen (limiet is te wijten aan Excel-bandbreedte - er gebeurt veel op de achtergrond!).

* Volledige openbaarmaking: hoewel deze tutorial niet is aangesloten, werk ik wel met het Microsoft Hacking STEM-team dat deze invoegtoepassing heeft ontwikkeld.

Stap 13: Gegevens visualiseren: Excel! Deel 2

Gegevens visualiseren: Excel! Deel 2
Gegevens visualiseren: Excel! Deel 2
Gegevens visualiseren: Excel! Deel 2
Gegevens visualiseren: Excel! Deel 2
Gegevens visualiseren: Excel! Deel 2
Gegevens visualiseren: Excel! Deel 2

4. Voeg een plot van uw gegevens toe! Doe wat data-analyse! Scatterplots laten zien hoe de sensormetingen in de loop van de tijd veranderen, wat hetzelfde is wat we zagen in de Arduino Serial Plotter.

Een spreidingsplot toevoegen:

Ga naar Invoegen -> Grafieken -> Scatter. Wanneer de plot verschijnt, klik er met de rechtermuisknop op en kies "Selecteer gegevens" en vervolgens Toevoegen. We willen dat onze gegevens worden weergegeven op de y-as, met "tijd"* op de x-as. Klik hiervoor op de pijl naast de y-as, ga naar het Data In-blad en selecteer alle binnenkomende sensorgegevens (foto 2).

Berekeningen en vergelijkingen kunnen we ook in Excel doen! Om een formule te schrijven, klikt u op een lege cel en typt u een gelijkteken ("="), en vervolgens de berekening die u wilt doen. Er zijn veel ingebouwde commando's zoals gemiddeld, maximum en minimum.

Als u een opdracht wilt gebruiken, typt u het gelijkteken, de opdrachtnaam en een haakje openen, selecteert u vervolgens de gegevens die u analyseert en sluit u de haakjes (foto 3)

5. Om meer dan één kolom met gegevens te verzenden (ook bekend als meer dan één sensor), drukt u de waarden op dezelfde regel af, gescheiden door een komma, met een laatste lege nieuwe regel, zoals deze:

Serial.print (sensorReading1);

Serieel.print(", "); Serial.print (sensorReading2); Serieel.print(", "); Serieel.println();

*Als u wilt dat de werkelijke tijd op de x-as staat, selecteert u het tijdstempel in kolom A op het Data In-blad voor de x-aswaarden in uw Scatterplot. Hoe dan ook, we zullen onze gegevens zien als deze in de loop van de tijd veranderen.

Stap 14: Ga heen en meet alle dingen

Ga vooruit en meet alle dingen!!
Ga vooruit en meet alle dingen!!
Ga vooruit en meet alle dingen!!
Ga vooruit en meet alle dingen!!
Ga vooruit en meet alle dingen!!
Ga vooruit en meet alle dingen!!

Oké mensen, dat is alles! Tijd om naar buiten en naar boven te gaan! Gebruik dit als een basis om sensoren, Arduino-codering en data-analyse te verkennen om je vragen, curiosa en favoriete mysteries in deze grote, mooie wereld aan te pakken.

Onthoud: er zijn veel mensen die je op weg kunnen helpen, dus laat alsjeblieft een reactie achter als je een vraag hebt!

Nog wat ideeën nodig? Hier leest u hoe u een draagbare schakelaar voor statusverandering, een externe temperatuursensor op zonne-energie en een industriële weegschaal met internetaansluiting maakt!

Vind je deze tutorial leuk en wil je meer zien? Steun onze projecten op Patreon!:NS

Aanbevolen: