Et bilde sier mer enn tusen ord og en video har 24 bilder i sekundet, derfor følte jeg at et par minutters video kan vise mer enn mange artikler med tekst.
Når det er skrevet, så vil videoen nedenfor vise hvordan mikrofonen fungerer og at den ikke er usensitiv som mange på Internett påstår.
Relatert lenke:
tirsdag 15. desember 2015
mandag 14. desember 2015
Hacke en ikealampe med Arduino og Adafruit Neopixel klone - Video!
Som alltid åpnet jeg posten og til min store glede var det elektronikk der! Min NeoPixel klone var kommet frem, helt fra min gode venn (av mange andre) som sender meg gaver fra Kina.
Når det er sagt, hva er neopixel? Jo, det er en ring med RGB-led som er unikt adresserbare.
Dette betyr at du gjennom 3 kabler (data + strøm + jord) kan styre/adressere "uendelig" med leds.
Jeg kjører her en demo på en ESP8266 (NodeMCU V1), men i praksis kan man gjøre dette på nesten hva som helst av Arduinokompatible enheter.
For å teste dette veldig kjapt, tok jeg å lastet ned biblioteket til Adafruit og la det inn i Arduino library-mappen. Deretter limte jeg inn konstantene for å mappe om til riktig pinout på ESP8266:
Jeg valgte å deretter definere pinout i Adafruit-koden:
Sketchen jeg testet, er den som heter "buttoncycler" som man finner under examples etter man har lagt inn library. Jeg måtte derfor definere opp en knapp også:
Man må også definere antall piksler man har, jeg har her 24 piksler:
#define PIXEL_COUNT 24
Ellers er det egentlig ikke så mye å gjøre, last det over på NodeMCUen og lek i vei :-)
Her er demovideoen når jeg testet
Relaterte lenker
Når det er sagt, hva er neopixel? Jo, det er en ring med RGB-led som er unikt adresserbare.
Dette betyr at du gjennom 3 kabler (data + strøm + jord) kan styre/adressere "uendelig" med leds.
Jeg kjører her en demo på en ESP8266 (NodeMCU V1), men i praksis kan man gjøre dette på nesten hva som helst av Arduinokompatible enheter.
For å teste dette veldig kjapt, tok jeg å lastet ned biblioteket til Adafruit og la det inn i Arduino library-mappen. Deretter limte jeg inn konstantene for å mappe om til riktig pinout på ESP8266:
#define NODEMCU_D0 16
#define NODEMCU_D1 5
#define NODEMCU_D2 4
#define NODEMCU_D3 0
#define NODEMCU_D4 2
#define NODEMCU_D5 14
#define NODEMCU_D6 12
#define NODEMCU_D7 13
#define NODEMCU_D8 15
#define NODEMCU_D9 3
#define NODEMCU_D10 1
#define NODEMCU_D12 10
Jeg valgte å deretter definere pinout i Adafruit-koden:
#define PIN 4Som man ser der oppe, er 4 = D2 (altså plugger jeg da data-linjen inn på D2 på ESP8266).
Sketchen jeg testet, er den som heter "buttoncycler" som man finner under examples etter man har lagt inn library. Jeg måtte derfor definere opp en knapp også:
#define BUTTON_PIN 5Vi ser der oppe at Pin 5 på Arduino tilsvarer D1 på ESP8266, altså tok jeg en kabel på D1 som er han i andre enden. Jeg har ikke knapp tilgjengelig så jeg tok enda en kabel på GND (jord). Når koden er som den er, vil de to kablene kortsluttet for et øyeblikk tilsvare en "momentary switch", en øyeblikksbryter. Sketchen vil starte animasjoner, den cycler gjennom 10 moduser.
Man må også definere antall piksler man har, jeg har her 24 piksler:
#define PIXEL_COUNT 24
Ellers er det egentlig ikke så mye å gjøre, last det over på NodeMCUen og lek i vei :-)
Her er demovideoen når jeg testet
Relaterte lenker
mandag 7. desember 2015
Lag en imponerende bluescreen presentasjonsvideo på 1-2-3
Fremfor å vise videoene dine "ramme til ramme", viser jeg her hvordan du kan lage imponerende innramminger på 1-2-3, som mitt eksempel her:
Det ser kanskje fancy ut, men det tar ca 10 minutter å "ramme inn" videoen, hvis du har klart et kamera. Enten trenger du Adobe Photoshop + Adobe Premiere, eller du kan hoppe over Photoshop hvis du har mulighet for å vise en solid bakgrunnsfarge på TVen din. Det er også mulig å bruke et laken, klippe ut fargede ark osv. Fantasien setter grenser, som alltid!
Nå må du trekke ut bildet slik at kantene går rett, slik at du ikke får forvrengt bilde.
Bildet lagres nå ned som bluescreen.jpg med kvalitet 12.
Importer bildet inn i prosjektmappen, dra det så inn på tidslinjen i det øverste videosporet.
Nå må du åpne effektbiblioteket og trekk så bluescreen over laget ditt bluescreen.jpg
Hvis alt gikk som forventet, skal dette bli resultatet:
Man kan nå legge andre lag under dette laget og det ser ut som presentasjonen foregår på tv-apparatet. Den samme effekten kan man selvsagt bruke andre steder, i en bok osv. Man kunne også filmet tven sin mens den viste en solid bakgrunnsfarge. For en "sanntids"-bakgrunnsfarge er det viktig å tenke på at man ikke må stå foran bildet med samme farge som den man skal gjøre transparent. La oss si at jeg ønsket å stå foran tv-apparatet og filme, mens jeg skulle bluescreene inn en annen video på tven. Hvis jeg da hadde på meg blå genser, hadde jeg blitt usynlig der genseren var, det samme hadde skjedd med øynene mine.
Hvis du har blå øyne kan du da prøve en "grønn bluescreen", en green screen. Eller du kan bruke andre farger, da kan du velge en av de andre keyene (flere å velge mellom).
Det ser kanskje fancy ut, men det tar ca 10 minutter å "ramme inn" videoen, hvis du har klart et kamera. Enten trenger du Adobe Photoshop + Adobe Premiere, eller du kan hoppe over Photoshop hvis du har mulighet for å vise en solid bakgrunnsfarge på TVen din. Det er også mulig å bruke et laken, klippe ut fargede ark osv. Fantasien setter grenser, som alltid!
1) Ta bilde av TV-apparatet ditt
Du trenger ikke å bry deg om hva som er på skjermen, men hvis du ikke har Photoshop kan du velge å vise en blå eller grønn video (søk etter green background eller blue background på youtube og vis dette på tven)2) I Photoshop lager du et nytt dokument på 1920x1080 piksler
Her drar du nå inn bildet av tven din og slå på grid (CTRL+ * ). Trykk så CTRL+T (transform).Nå må du trekke ut bildet slik at kantene går rett, slik at du ikke får forvrengt bilde.
Bildet lagres nå ned som bluescreen.jpg med kvalitet 12.
3) Opprett Adobe premiere prosjekt, dra inn bildet du lagde i steg 2.
Pass på at du velger HDV og 1080P 24fps prosjekt.Importer bildet inn i prosjektmappen, dra det så inn på tidslinjen i det øverste videosporet.
Nå må du åpne effektbiblioteket og trekk så bluescreen over laget ditt bluescreen.jpg
Hvis alt gikk som forventet, skal dette bli resultatet:
Man kan nå legge andre lag under dette laget og det ser ut som presentasjonen foregår på tv-apparatet. Den samme effekten kan man selvsagt bruke andre steder, i en bok osv. Man kunne også filmet tven sin mens den viste en solid bakgrunnsfarge. For en "sanntids"-bakgrunnsfarge er det viktig å tenke på at man ikke må stå foran bildet med samme farge som den man skal gjøre transparent. La oss si at jeg ønsket å stå foran tv-apparatet og filme, mens jeg skulle bluescreene inn en annen video på tven. Hvis jeg da hadde på meg blå genser, hadde jeg blitt usynlig der genseren var, det samme hadde skjedd med øynene mine.
Hvis du har blå øyne kan du da prøve en "grønn bluescreen", en green screen. Eller du kan bruke andre farger, da kan du velge en av de andre keyene (flere å velge mellom).
torsdag 3. desember 2015
Loddestemningen
Beklager ordspillet - loddestemningen. Men stemningen for å lodde kom over meg, så det var passende følte jeg.
Dette er en flux capacitor, den gjør tidsreise mulig. Neida, det er en 16 bit ADC (analog til digital converter). |
Man kan også programmere den fra koden sin og velge å forsterke signal med 2/3x (standard), 1x, 2x, 4x, 8x og 16x. Så hvis man har for eksempel 1V maks ut fra en analog sensor, kan man øke gain med 4 og få ut 4V maks. Når det er sagt, kan man også adressere de ved å laske over mot "addr". Mer om det i guiden hos adafruit:
Man kan altså kjøre 4 16 bit ADC for å gi 4x4 = 16 analoge input med 15bit målinger inn gjennom da 2 ledninger mot mikrokontrolleren! (pluss strøm og jord) eller: 2x4 = 8 x 16bit målinger gjennom to ledninger.. Man må selvsagt ha kabler til sensorer og mellom enhetene i i2c bussen :-)
Her ser vi en lyssensor jeg loddet på pinner. |
Liten Arduino Pro Micro før jeg lodder fast pinnene. |
Her er alt jeg loddet i kveld, man ser to kapasitive Touch sensorer, samt en 16 bit adc, en voltage divider Og en lyssensor. |
Bergens tidende lanserte rentekartet
Tjenesten "rentekartet" fra Bergens Tidende var ganske morsomt, men samtidig fikk det meg til å lure litt. Hvorfor er den en åpenbar geografisk sammenheng mellom rentenivået til innebyggerne i vårt land?
Nå er rentekartet litt vanskelig å se i sin helhet uten å modifisere DOM (Document Object Model) på grunn av at det ikke er laget med tanke på responsivt design, dessverre. Men jeg tok å manipulerte DOM for å se utsnitt av hele landet:
Det jeg umiddelbart begynte å lure på, var om det var noe som gjorde at de som bor de stedene kanskje ikke refinansierer sine boliglån? De har kanskje tilknytning til lokalbanken sin?
Kan det være andre årsaker? Kanskje datagrunnlaget er for lite og de få som svarte har dårlige vilkår? BT er jo en bergensavis så det er jo naturlig at de får mange respondenter på vestlandet.
Et annet alternativ kan også være at det er dyrere boliger der rentenivået er lavere. At folk er "bedre kunder" gir jo gjerne bedre vilkår? Unntak for boligprisene fins jo, men dette er jo et snitt av flere respondenter. Boliger er jo dyrere i storbyene enn utenfor og da har gjerne banken bedre marginer? Det blir bare spekulasjoner, men jeg synes nå det var interessant observasjon :-P
Sjekk gjerne ut rentekartet selv http://www.bt.no/bolig/Rentekart-Har-du-darligere-rente-enn-naboen-648916_1.snd
Nå er rentekartet litt vanskelig å se i sin helhet uten å modifisere DOM (Document Object Model) på grunn av at det ikke er laget med tanke på responsivt design, dessverre. Men jeg tok å manipulerte DOM for å se utsnitt av hele landet:
Det er jo tydelig at en del områder har greie rentevilkår Men de som bor midt på fjellet eller langs svenskegrensen ser ut til å ha dårlige rentevilkår. |
Kan det være andre årsaker? Kanskje datagrunnlaget er for lite og de få som svarte har dårlige vilkår? BT er jo en bergensavis så det er jo naturlig at de får mange respondenter på vestlandet.
Et annet alternativ kan også være at det er dyrere boliger der rentenivået er lavere. At folk er "bedre kunder" gir jo gjerne bedre vilkår? Unntak for boligprisene fins jo, men dette er jo et snitt av flere respondenter. Boliger er jo dyrere i storbyene enn utenfor og da har gjerne banken bedre marginer? Det blir bare spekulasjoner, men jeg synes nå det var interessant observasjon :-P
Sjekk gjerne ut rentekartet selv http://www.bt.no/bolig/Rentekart-Har-du-darligere-rente-enn-naboen-648916_1.snd
LilyTiny LilyPad ATtiny85 - Wearable IoT - kom i gang!
LilyTiny LilyPad ATtiny85 er en mikrokontroller som skal tåle vaskemaskinen og er laget for å sy på klær, kostymer eller annet.
I bunn og grunn bygger den på Atmega sin ATtiny85 men har innebygd USB-krets som forenkler innlasting av fastvare samt strømleveranse gjennom USB er jo da også mulig.
Jeg kjøpte enhetene gjennom aliexpress og som vanlig fulgte det ikke med noe annet enn kretskortet. Derfor skal jeg avmystifisere kretskortet gjennom dette innlegget.
For å bruke Arduino IDE med enheten må man legge inn driver, følg guiden her:
https://digistump.com/wiki/digispark/tutorials/connecting
Deretter er det litt forskjellig fra hvordan vanlig Arduino virker, man må velge "Micronucleus" som programmer og man må koble ut kortet når man skal laste opp fastvaren, deretter sier Arduino IDE at du skal koble den til og vips fyker den over. (Du vil altså ikke se en com-enhet, slik du gjør med vanlig Arduino, du får heller ei brukt serial printline mot PC).
Relaterte lenker:
Den gjør ikke skam på navnet sitt "LilyTiny" |
Størrelsesmessig er den som en femkroner. |
Baksiden viser koblingsmulighetene man har mot ATtiny85 SOIC (Small Outlined Integrated Circuit). |
Tilkoblingsmuligheter
Bak på enheten står det følgende:
P0, P1, P2, 5V, VIN, GND, P5, P4, P3.
Men hvordan brukes dette i praksis?
Her ser man ATtiny 85 chippen sine muligheter og hva som er koblet opp hvor. |
Basert på kretskortet og ATtiny85 kan man derfor lese seg frem til:
- IO - inputs / outputs
- P0 - PWM / MOSI / D1
- PB0 (MOSI/DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0)
- Pin 5 på chippen
- P1 - PWM / MISO / D0
- PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1)
- Pin 6 på chippen
- P2 - A1
- PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2)
- Pin 7 på chippen
- P3 - A3
- PB3 (PCINT3/XTAL1/CLKI/OC1B/ADC3)
- Pin 2 på chippen
- P4 -A2
- PB4 (PCINT4/XTAL2/CLKO/OC1B/ADC2)
- Pin 3 på chippen
- P5 - Reset / A0
- PB5 (PCINT5/RESET/ADC0/dW)
- Pin 1 på chippen
- Strøm
- VIN
- Volt inn ()
- GND
- Jord
- 5V
- 5 Volt
For å bruke Arduino IDE med enheten må man legge inn driver, følg guiden her:
https://digistump.com/wiki/digispark/tutorials/connecting
Deretter er det litt forskjellig fra hvordan vanlig Arduino virker, man må velge "Micronucleus" som programmer og man må koble ut kortet når man skal laste opp fastvaren, deretter sier Arduino IDE at du skal koble den til og vips fyker den over. (Du vil altså ikke se en com-enhet, slik du gjør med vanlig Arduino, du får heller ei brukt serial printline mot PC).
Relaterte lenker:
onsdag 2. desember 2015
Arduino + OLED + Mikrofon = visuell lydmåler
Etter å ha kjøpt et par oleds, en del Arduinoer og mange sensorer, har jeg lekt en del.En av de første tingene jeg gjorde, var å lage en værstasjon som lastet data fra nettet. Men det var jo data som eksisterte fra før i skyen, Vi vet jo at det regner i bergen i morgen også, så hva er vitsen med værmeldingen?
Det biblioteket lekte jeg litt med, blant annt tok jeg min thingspeak kode og la inn OLED-biblioteket. Det fungerte for det meste fint. Jeg måtte så pause alt av Arduino en stund pga. jeg ikke hadde tid (eller fritid). Men to ting jeg har laget som tok relativt liten innsats:
Avstandssensoren kan man lese om her: https://www.arduino.cc/en/Tutorial/Ping
Min sensor har fire pins, en dedikert for sending av ultrasonisk lyd og en pin dedikert for lesing. Men i praksis gjør min kode det samme som den der, i tillegg til OLED-visning.
Problemet med lydmåleren er at den i utgangspunktet ser ut til å ikke virke. Folk på det store Internettet påstår også den har veldig lav følsomhet. Det er nok på grunn av at de ikke har skjønt hvordan den virker.
Det første man må gjøre som alt annet, er å skjønne hvordan det henger sammen og hvorfor det virker (eller ikke virker). Dette er jo vanlige problemstillinger for IT-folk :-P
Jeg kjøpte fire mikrofoner for mikrokontrollere på aliexpress, som vanlig fulgte det ikke med manualer eller koblingsskjemaer, heller ei kabler. Men man vet jo at det skal ha spenning og jord, i tillegg vet man jo at digital er 1 eller 0 og analog er 0-X. Jeg sier der X på grunn av at analog er en variabel verdi som avhenger av innverdien. Mikrofonen støtter både 3.3V og 5V, men 5V vil jo gi høyere tall ut.
Når man kobler det opp og leser ut digital verdi får man 1 eller 0, men det er ikke alt. Man kan (og må) kalibrere mikrofonen. Når man gir mikrofonen strøm og jord, lyser det opp to leds:
Da tar man for eksempel å ganger dette opp for grafisk visning:
Egentlig burde jeg endre koden min til å ha en "baseline" som en variabel, bare ta vare på laveste verdien og bruke den til å filtrere ut. Det vil jo bety at jeg må ha en måte å rekalibrere, en knapp eller noe.. ("calibrate"). Det er jo ganske enkelt, så lenge knappen holdes inne, kan den lese av lydnivået og lagre laveste nivået den får. Deretter bruker man det som referansenullpunktet.
Det tror jeg at jeg må lage en dag jeg har tid :-) Men det blir sikkert ikke i Desember.
Når det er sagt, så tar jeg jo bare da denne verdien og skriver den til OLEDen. Da bruker jeg funksjoner som fins i u8glib biblioteket.
EKsempel på den grafiske "speedometer"-nålen:
Det jeg har tenkt at jeg burde lage, var en sanntidsgraf, det er jo ganske enkelt egentlig. Jeg kan jo ikke holde for mye data i en mikrokontroller, men det er jo et 128x64 piksel display, hvor jeg dedikerer 128x32 til tekst og 128x32 til grafen. Men i praksis er det ikke heniktsmessig med 32 datapunkter på grunn av at 1 piksel brede datapunkter blir kanskje litt kornete grafikk. Derfor ser jeg for meg at jeg kan fylle en matrise på kanskje 16 eller kanskje så lite som 8. Med 8 blir det jo 32/8 = 4 piksler bredde som kan gi en "fin bakke" mellom punkter på den lille skjermen.
Jeg har uansett ikke komemt i gang med det enda, er bare en tanke jeg har i hodet :-P Men hvis jeg lager den graf-funksjonen, kan jeg jo bruke den til andre ting også. Miljøstasjonen kan jo vise svevestøv, temperatur, fukt osv.
Her er lydmåleren i praksis i en hverdagslig test:
Pga. dårlig støtte for ESP8266 og OLED måtte jeg teste flere biblioteker før jeg fant ett som fungerte ( https://github.com/squix78/esp8266-oled-ssd1306 ). |
1. Arduino parkeringssensor (ultrasonisk sensor)
Første prototype på avstandssensor tallet er centimeter unna objekt |
Min sensor har fire pins, en dedikert for sending av ultrasonisk lyd og en pin dedikert for lesing. Men i praksis gjør min kode det samme som den der, i tillegg til OLED-visning.
2. Arduino lydmåler
Arduino lydmåleren var litt værre, men etter jeg har fått det til er det ikke så vanskelig det heller.Problemet med lydmåleren er at den i utgangspunktet ser ut til å ikke virke. Folk på det store Internettet påstår også den har veldig lav følsomhet. Det er nok på grunn av at de ikke har skjønt hvordan den virker.
Det første man må gjøre som alt annet, er å skjønne hvordan det henger sammen og hvorfor det virker (eller ikke virker). Dette er jo vanlige problemstillinger for IT-folk :-P
Fire mikrofoner, men den ene mangler 2903 SMD-chippen... Kina skylder meg en 2903 SMD-chip. |
Jeg kjøpte fire mikrofoner for mikrokontrollere på aliexpress, som vanlig fulgte det ikke med manualer eller koblingsskjemaer, heller ei kabler. Men man vet jo at det skal ha spenning og jord, i tillegg vet man jo at digital er 1 eller 0 og analog er 0-X. Jeg sier der X på grunn av at analog er en variabel verdi som avhenger av innverdien. Mikrofonen støtter både 3.3V og 5V, men 5V vil jo gi høyere tall ut.
Når man kobler det opp og leser ut digital verdi får man 1 eller 0, men det er ikke alt. Man kan (og må) kalibrere mikrofonen. Når man gir mikrofonen strøm og jord, lyser det opp to leds:
- Strømindikator
- Lydindikator (deteksjon)
Det man må gjøre er å skru og skru, det tar litt tid.. Rotary switch heter dette. Man må skru helt til lyset forsvinner, man skal bare så vidt skru seg dit. Dette må man gjøre i et rom med "vanlig" lydnivå, uten tale, musikk, tv osv. (ingen bakgrunnstøy). Når det er gjort, kan man teste å klappe, plystre eller noe. Da skal det blinke forsiktig i den ene led mens den andre fortsetter å lyse konstant som alltid.
Når man har kalibrert mikrofonen vil man i praksis ha invertert det digitale signalet. Det har ikke noe å si i praksis, men man kan bruke det digitale signalet til å detektere klapp, knipsing eller annet. Kanskje man vil lage en "secret knock" som låser opp døren eller en mikrofon som skrur ned tvlyden hvis den går over et visst nivå? Det er jo uendelig med muligheter her og fantasien setter forsåvidt grensen.
Mikrofonen i seg selv gir da enten 1 eller 0 på digital, men analog gir som sagt X verdi fra 0. I praksis gir den aldri 0, den har en "baseline" som vil variere etter hvor mye bakgrunnstøy man har i rommet. Dette vil i praksis være den verdien man har når man tar å gjør om kalibrert mikrofon til spenning med formelen:
volts = (lestAnalogVerdi * innSpenning ) / 1024Jeg valgte å bruke 3.3V på grunn av at den har mindre støy enn 5V. Men dette gir uansett ut et tall etter kalibrering, uten at man lager noen lyder. Tallet er nok veldig lavt, kanskje 0.08. Dette vil jo være "baseline" som man må si er et referanse nullpunkt.
Da tar man for eksempel å ganger dette opp for grafisk visning:
double dspval = ((volts-0.07) * 1024) ;Jeg trakk der vekk 0.07 som var min kalibrerte baseline, det vil nok være avvik basert på bakgrunnslyder, mikrofon osv. Samt man justerer på en skrue når man kalibrerer, så tallet vil ikke være statisk. Trikset er å skrive ut verdien i console og se hvilken minimumsverdi man får.
Egentlig burde jeg endre koden min til å ha en "baseline" som en variabel, bare ta vare på laveste verdien og bruke den til å filtrere ut. Det vil jo bety at jeg må ha en måte å rekalibrere, en knapp eller noe.. ("calibrate"). Det er jo ganske enkelt, så lenge knappen holdes inne, kan den lese av lydnivået og lagre laveste nivået den får. Deretter bruker man det som referansenullpunktet.
Det tror jeg at jeg må lage en dag jeg har tid :-) Men det blir sikkert ikke i Desember.
Når det er sagt, så tar jeg jo bare da denne verdien og skriver den til OLEDen. Da bruker jeg funksjoner som fins i u8glib biblioteket.
EKsempel på den grafiske "speedometer"-nålen:
u8g.drawLine(0+dataverdien, 32, 64, 64);Jeg har da en metode som får inn verdien som skrives i tekst i øvre delen av skjermen, samt jeg har da denne "speedometernålen" som bruker samme inndataverdi.
Det jeg har tenkt at jeg burde lage, var en sanntidsgraf, det er jo ganske enkelt egentlig. Jeg kan jo ikke holde for mye data i en mikrokontroller, men det er jo et 128x64 piksel display, hvor jeg dedikerer 128x32 til tekst og 128x32 til grafen. Men i praksis er det ikke heniktsmessig med 32 datapunkter på grunn av at 1 piksel brede datapunkter blir kanskje litt kornete grafikk. Derfor ser jeg for meg at jeg kan fylle en matrise på kanskje 16 eller kanskje så lite som 8. Med 8 blir det jo 32/8 = 4 piksler bredde som kan gi en "fin bakke" mellom punkter på den lille skjermen.
Jeg har uansett ikke komemt i gang med det enda, er bare en tanke jeg har i hodet :-P Men hvis jeg lager den graf-funksjonen, kan jeg jo bruke den til andre ting også. Miljøstasjonen kan jo vise svevestøv, temperatur, fukt osv.
Her er lydmåleren i praksis i en hverdagslig test:
torsdag 5. november 2015
NodeMcu + Arduino IDE + Thingspeak = Sant
WOHOO, NANANANANANANANNAA!
Det er ikke første gang jeg sender til det store Internettet fra en mikrokontroller, det gjorde jeg først med en Arduino koblet mot en Rasberry Pi 2 gjennom en trådløs seriell bro. På RPIen kjrøte da pythonscript som sendte videre data.
Hele mikrokontrollergamet ble jeg kjent med gjennom www.friskby.no, men jeg har jo som alltid den utforskende egenskapen som jeg er kjent for å ha :-P Derfor må jeg teste alt mulig rart!
Hele mikrokontrollergamet ble jeg kjent med gjennom www.friskby.no, men jeg har jo som alltid den utforskende egenskapen som jeg er kjent for å ha :-P Derfor må jeg teste alt mulig rart!
Hvor minimalistisk er ikke en NodeMCU med Arduino IDE, kodet opp til å sende rett til thingspeak.com? En alt-i-ett enhet! (med unntak av sensorer)
Jeg tok en bacon på bildet for å illustrere hvor godt dette virker. |
Jeg kjører nå DHT22 rett inn i thingspeak :-) Se gjerne beviset her: https://thingspeak.com/channels/64263
Alternativt kan de late bare beskue bildet mitt:
ESP8266 er dårlig navn på sensoren, jeg må nok lage en kanal per sensor og navngi kanalene etter sensortype. Det er vel mer naturlig enn å navngi mikrokontrolleren :P |
Komme i gang med Arduino IDE sammen med NodeMCU
Mitt blogginnlegg om å komme i gang med NodeMCU hadde jeg trodd skulle fortsatt med koding i LUA-script. Men det var ikke så bra å kode i det språket. Jeg vurderte å teste Expressif også, men til syvende og sist fant jeg ut at jeg skulle teste Arduino IDE sammen med NodeMCU.
Årsaken for at jeg fant ut at jeg måtte gå videre var:
Når dette er gjort, tar man å trykker OK.
På windows vil du laste ned libm.a og legge den inn i:
Nå kan du åpne konsollet (Tools>Serial Monitor). Følg med på magien:
Årsaken for at jeg fant ut at jeg måtte gå videre var:
- Merkelige feil i de få bibliotekene som eksisterer
- Ikke like mange biblioteker som Arduino har
Det er egentlig ikke så "alvorlige" feil, men det er jo feil som gjør at man river seg i hodet.
Jeg prøvde til og med å gå over på DEV-firmware, men det hjalp ikke. Jeg kom meg litt videre, men fikk bare nye feil og merkeligheter :-P
Fremgangsmåte for å få NodeMCU DEV V2 til å virke i Arduino IDE
Først åpner du github / esp8266 / Arduino og kopier stien til board manager. Per i dag er den:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
, denne må legges inn i File>Preferences>Additional boards manager URL.Her ser man boards manager med stien. |
Når dette er gjort, tar man å trykker OK.
Søk etter ESP i Tools > Board > Boards manager, velg så installer. |
Når den er ferdig, slår du av Arduino IDE. Slå deretter på Arduino IDE, velg Tools> Board > NodeMcu V1 (ESP12E Module). Deretter tar du Tools > Programmer > "USBasp".
Nå kan du se om det virker, ta File > Example > DHT Sensor Library > DHT Tester.
Hold inne knappen "FLASH" på NodeMCU mens du laster opp fra Arduino IDE.
Hvis du får feilmelding med:
Nå kan du se om det virker, ta File > Example > DHT Sensor Library > DHT Tester.
Hold inne knappen "FLASH" på NodeMCU mens du laster opp fra Arduino IDE.
Hvis du får feilmelding med:
packages/esp8266/tools/xtensa-lx106-elf-gccDa må du laste ned en fil manuelt, se: https://github.com/esp8266/Arduino/issues/612.
På windows vil du laste ned libm.a og legge den inn i:
C:\Users\DITTBRUKERNAVN\AppData\Roaming\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9\xtensa-lx106-elf\lib
NB! Filen er pakket (to ganger), den kan pakkes ut med 7-zip.
NB! Filen er pakket (to ganger), den kan pakkes ut med 7-zip.
Slå nå av Arduino IDE og slå den på igjen.
Prøv igjen å laste opp kode samtidig som at du holder inne "FLASH".
Hvis du nå har ingen problemer, er det tid for kaffe. Hvis ikke, må du mest sannsynlig legge inn følgende i boards.txt:
Prøv igjen å laste opp kode samtidig som at du holder inne "FLASH".
Hvis du nå har ingen problemer, er det tid for kaffe. Hvis ikke, må du mest sannsynlig legge inn følgende i boards.txt:
I Windows må du først åpne for eksempel notepad++ som administrator, deretter åpne filen, legge det inn på bunnen og lagre. Deretter restarter du Arduino IDE nok en gang og prøver igjen.
Nå bør det virke :-) Hvis ikke, må du selge PCen din på finn.
Nå bør det virke :-) Hvis ikke, må du selge PCen din på finn.
Last opp din første kode på NodeMCU med Arduino IDE!
.
Etter feilsøkingen ovenfor kan du laste opp din første kode, hold inne flash-knappen på NodeMCU og trykk på last opp i Arduino IDE |
Nå kan du åpne konsollet (Tools>Serial Monitor). Følg med på magien:
For at du skal få opp noe her, må du jo nødvendigvis ha en DHT22 eller en DHT11 sensor, samt du må velge riktig sensortype i koden og koble den riktig opp på NodeMCU. Jeg brukte DHT22 laget for Arduino (shield), den skal ha +5V, Jord og en IO-port. Jeg koblet jord på GND, +5V på SD2 og D4 brukte jeg som IO-pin.
Etiketter:
Arduino IDE,
DHT22,
fukt,
Internet of things,
IoT,
NodeMCU,
sensor,
temperatur
Komme i gang med NodeMCU
Når du har kjøpt din egen NodeMCU eller lånt en av en venn, kan du endelig komme i gang.
Spørsmålet du kanskje da har, er hvordan du kommer i gang.. Hva er de første stegene?
Jeg har derfor laget en liten guide her, jeg har prøvd å holde den lettfattelig med illustrasjoner og forklaringer. Etter denne guiden er på plass, kommer jeg mest sannsynlig til å lage noe i praksis.
Den første guiden handler bare om å få på plass det basiske: kommunikasjon mellom deg og NodeMCU og oppkobling mellom NodeMCU og ditt nettverk. I god tradisjon vil jeg også oppgradere firmware (fastvare) på NodeMCU før jeg starter.
Guiden min tar for seg at du har kjøpt en NodeMCU med innebygget USB-kontroller, hvis det ikke er tilfelle må du nesten ha en FTDI->USB adapter og koble rx>tx og tx>rx.. Men nok småpreik, jeg gjør resten av guiden gjennom bilder :-)
Guiden vil være ca tilsvarende for Windows, OSX, Ubuntu og andre operativsystemer.
Når de to stegene ovenfor er gjort, har du følgende kommandoer du kan skrive inn i putty:
Så enkelt var det!
NB! Pro tip:
Hvis du synes Putty er vanskelig og har erfaring med Arduino IDE, er det ingen ting som tilsier at du ikke kan bruke Arduino IDE sammen med NodeMCU. Du starter i så fall Arduino, velger COM-port og åpner konsollet. Sett NL + CR som linjeendelse nede i høyre hjørnet.
Spørsmålet du kanskje da har, er hvordan du kommer i gang.. Hva er de første stegene?
Jeg har derfor laget en liten guide her, jeg har prøvd å holde den lettfattelig med illustrasjoner og forklaringer. Etter denne guiden er på plass, kommer jeg mest sannsynlig til å lage noe i praksis.
Den første guiden handler bare om å få på plass det basiske: kommunikasjon mellom deg og NodeMCU og oppkobling mellom NodeMCU og ditt nettverk. I god tradisjon vil jeg også oppgradere firmware (fastvare) på NodeMCU før jeg starter.
Guiden min tar for seg at du har kjøpt en NodeMCU med innebygget USB-kontroller, hvis det ikke er tilfelle må du nesten ha en FTDI->USB adapter og koble rx>tx og tx>rx.. Men nok småpreik, jeg gjør resten av guiden gjennom bilder :-)
Guiden vil være ca tilsvarende for Windows, OSX, Ubuntu og andre operativsystemer.
Kom i gang
Det aller første du gjør, er å gå inn på github/nodemcuFørst kobler du NodeMCU med en MicroUSB kabel til din PC |
Programmet lastes ned og kjøres. Du trykker egentlig bare "flash". Du finner det på github / nodemcu-flasher |
Deretter må du inn å finne comport (jeg hadde COM6) som NodeMCU viser deg. I dette eksempelet bruker jeg putty. Velg Serial i radiobutton til høyre, fyll inn riktig tall for COM-port. Baud må mest sannsynlig stå på 9600. |
Når de to stegene ovenfor er gjort, har du følgende kommandoer du kan skrive inn i putty:
wifi.setmode(wifi.STATION)Deretter sjekker du at du fikk en ip-adresse av din router:
wifi.sta.config("minWiFiSSID","MittWiFiPassord")
print(wifi.sta.getip())
Du bør få ut:
<ip adresse> <nettmaske> <gateway>
Så enkelt var det!
Heartbeat ("hjerteslag") fra WiFi-koblingen vises i form av en liten blinkende LED. |
NB! Pro tip:
Hvis du synes Putty er vanskelig og har erfaring med Arduino IDE, er det ingen ting som tilsier at du ikke kan bruke Arduino IDE sammen med NodeMCU. Du starter i så fall Arduino, velger COM-port og åpner konsollet. Sett NL + CR som linjeendelse nede i høyre hjørnet.
Videre læring
onsdag 4. november 2015
Hardwarefest!
Selv om jeg er glad i å programmere i mykvare, er det alltid morsomt med harde pakker. I dag fikk jeg flere hardware-pakker i posten! Jeg lar dette bli et innlegg hvor jeg viser de uten alt for mye tekst.
DHT22 er en fukt og temperatursensor, denne er noe bedre enn DHT11 som jeg har flere av allerede. |
Dette er en bevegelsessensor som jeg skal leke med |
NodeMCU (ESP8266) er en mikrokontroller med innebygd WiFi, det gir en fin IoT (Internet Of Things) enhet. Den er også kompatibel med Arduino |
Arduino Pro Micro, det er min minste Arduino hittil. Det skal bli morsomt å lodde på de headerne :-) Ble litt overrasket over hvor mye mindre den er enn Nano V3. |
Utviklingskort for ESP8266, gjør det enklere å koble på sensorer. |
Bakside av utviklingskort for ESP8266, glemte å tenke på at jeg må ha en strømforsyning på minst 6V :-P Må se om den kan mates med 5V via headers. |
torsdag 22. oktober 2015
Tre uker med Arduino
Etter tre uker med arduino vil jeg skrible sammen noen av erfaringene mine fra den morsomme tiden.
Hva er en Arduino?
En arduino, eller en arduino-kompatibel enhet kjører som regel på en ATMEL-prosessor. Arduino er en IDE (et utviklingsmiljø) for små mikrokontrollere. Det fins også Arduino-kloner, samt det fins porting av Arduino til andre prosessorer som for eksempel esp8266 [Ekstern lenke].
Hva er forskjellen på alle Arduinoene?
Det er mange Arduinoer og kloner i alle former fra rund til avlang, kvadratisk. Noen har mer lagringsplass enn andre, noen har flere digitale og analoge inputs, noen har innebygd motorstyring, noen har mulighet for "shields" (moduler som utvider funksjonaliteten uten å kable noe). I tillegg er det noen som er mer strømsparende enn andre, noen er raskere, noen har dedikert "krystall" for bedre tidtaking, Noen Arduinoer har USB-grensesnitt, andre krever en adapterkabel og har bare seriell innebygd. Noen har dedikert USB-interface, andre ikke.
Hva kan man koble på Arduino?
Man kan koble på veldig mye rart, fargesensorer, små oled-skjermer, lcd-skjermer, trådløs kommunikasjon (WiFi, 868Mhz osv), blåtann, MicroSD-adapter, Avstandsmålere, støvsensorer, barometriske sensorer, forskjellige typer gass-sensorer og mye annet. Det er veldig mye rart man kan koble på Arduino og mange løsninger leveres med ferdige moduler som betyr at man trenger bare å koble opp 4-6 kabler per modul. Mange moduler kobles mot analoge og/eller digitale pinner og 3V3 eller 5V. Noen kobles på i2C bussen som er en buss man kan koble flere enheter på og alle enhetene har da en unik adresse. OLED-skjermer kommer i flere former, der noen av de går på i2C. Det skal sies at i2C bussen er en anelse tregere, men for de fleste bruksområder er den bra nok. I tillegg må man være observant på at hvis man har mange sensorer på i2C, må man endre resistanseverdien for å få nøyaktig signal.
I likhet med en medalje, har også avstandssensoren en bakside. Men denne baksiden vil jeg si er fin å se på :) |
DHT11 er en temperatur og fuktsensor, men et bedre valg er nok storebroren DHT22 som er en anelse mer nøyaktig og koster ca. det samme. De bruker samme biblioteket og det ligger klart i Arduino IDE. |
Eksempelkode for å dimme ledlampe basert på lys i rommet:
int measureLightPin = 5; // Analog pin for lyssensorint ledPin=13; // led pin (innebygget led i Arduinoen)float pwm = 0; // flyttallsvariabel for pulsviddemodulasjon
void setup() {
}
void loop() { // hvert sekund
static unsigned long lastTime = millis();
if (millis() - lastTime >= 1000) {
lastTime = millis();
int l = analogRead(measureLightPin); // les lysnivå (ca. 0-1000)
pwm = (l / 4); // Del på 4 for å få ca 1:1 mellom avlest lys og maks ledlysstyrke (1000/255 = 3,92 ~~ 4)
// dim led etter avlest lys
analogWrite(ledPin, pwm);
}
}
Hvordan er det å jobbe med Arduino?
Det er egentlig veldig enkelt så fremt man velger en av de som har USB-grensesnitt. Maskinen finner drivere selv og Arduino IDE finner riktig COM-port. Man velger så COM-port og velger type arduino. Deretter kan man enten kjøre en av eksempelkodene, definere opp egne pins og teste, åpne konsollet og lese av verdier eller se på LED som dimmes for eksempel.
Man kan også bruke biblioteker fra tredjeparter som Adafruit, Sparkfun og andre. Man kopierer da inn biblotekene enten ved å ta sketch > import zip, eller kopiere de via utforskeren. Hvis man kopierer inn bibliotekene selv, må de legges på: ...\Arduino\libraries\.
Man kan også bruke biblioteker fra tredjeparter som Adafruit, Sparkfun og andre. Man kopierer da inn biblotekene enten ved å ta sketch > import zip, eller kopiere de via utforskeren. Hvis man kopierer inn bibliotekene selv, må de legges på: ...\Arduino\libraries\.
I mange tilfeller ligger bilbioteker på github og har gjerne en -master ending, denne må fjernes fra biblitekenes mappenavn når de legges inn utpakket i libraries-mappen. De fleste bibliotekene har eksempelkode.
Alt i alt gikk det meste fint, det eneste man må være litt observant på er at Arduino Leonardo og Arduino Romeo er spesielle i måten USB virker på. Det er en virtuell ekstra Serial Port, som betyr at vanlig Serial ikke virker ut mot for eksempel XRF trådløs eller eventuell WiFi. Man må da bruke Serial1. Det er jo for det meste uproblematisk, men noen biblioteker er hardkodet for å kjøre mot Serial. Man kan dog skrive om på bibliotekene, man kan kopiere de opp for å lage egne versjoner osv. Så det er egentlig mer en ting å være observant på, enn at det er et problem sånn sett.
Når man har lekt litt med Arduino IDE og sett på litt sensorer, osv. tar det ikke mange sekunder å lage noe. Man kunne i teorien laget et dukkehus med lysstyring, ringeklokke osv. på veldig kort tid! Man kan lage alt mulig annet også. Jeg har en Arduino som kommuniserer med en Rasberry Pi over 868 Mhz (XRF), som sender videre data til Firebase skydatabase. Jeg kommer nok til å skrive litt mer om det prosjektet en annen gang.
mandag 5. oktober 2015
Koble XRF Xbee mot Rasberry Pi 2
Før jeg i det hele tatt skriver noe mer, anbefaler jeg å åpne følgende lenker i nye faner:
- Interaktiv pinout
- Særlig da UART
Det er fire ting å være observant på:
- Kobler du XRF rett i rasberry pi, må den ha +3.3V som du finner på Pin 1
- Kobler du XRF gjennom en adapter, krever den ofte +5V som du kan hente fra Pin 2
- RXD og TXD kobles motsatt på Rasberry Pi og XRF
- Internettet er utdatert(!)
- Guider på nettet sier du må deaktivere seriell konsoll ved å redigere /etc/inittab
- Men denne er ikke lenger i bruk :-)
- Nå er det nok å kjøre raspi-config
Slik gjør du klar din RPI for XRF:
sudo su
cp /boot/cmdline.txt /boot/cmdline.txt.bak # sikkerhetskopi
vi /boot/cmdline.txt
Fjern nå alle referanser til ttyAMA0 som er seriell konsollmulighet.
Filen vil nå se ut slik som dette:
dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwaitDu lagrer nå filen og skriver nå kommandoen:
raspbi-config
Dette fører deg til en grafisk meny hvor du kan deaktivere seriell konsoll.
Reboot av Raspberry pi er neste steget
Reboot
Nå er vi klar for å installere en pakke
sudo su
apt-get install minicom
minicom -D /dev/ttyAMA0 -b 9600
Du kommer nå inn i en seriell konsoll.
For å teste at kommunikasjonen fungerer, tar du kjapt å skriver:
+++
Du skal ikke ta enter etter du skriver +++, bare vent. Du skal få "OK" som svar.
Virker det ikke nå, må du skjule alle bevis på at du har prøvd. Neida, da kan du prøve å liste ut enheter med kommandoen:
ls -l /dev/ttyAMA*
Hvis alt gikk vel, skal du ha en linje ala dette:
crw-rw---- 1 root dialout 204, 64 Oct 5 21:13 /dev/ttyAMA0
Har du ikke det, må du se om du husket å deaktivere seriell konsoll i starten, samt at du har koblet rxd mot txd og txd mot rxd :-) Koblet du XRF-enheten rett på +3.3V må du mest sannsynlig gi den en 1uF kondensator i tillegg.
Hvis du lurer på hvordan suksess ser ut, er det slik. |
Relaterte lenker
Etiketter:
Internet of things,
IoT,
pi,
raspberry pi,
trådløs,
xbee,
xrf
fredag 25. september 2015
Arduinokomponenter på vei i posten :)
Jeg er en verdensvant Internetthandler og denne uken har jeg ikke gjort skam på min ordrehistorikk. Følgende komponenter har jeg bestilt, for å hjelpe å holde liv i banken min DNB som sliter med oppsigelser for tiden
Sensoren brukes ofte i luftrensere og har visstnok ganske god kvalitet når det gjelder nøyaktighet av svevestøvmålinger (PM2.5). Den kan påvirkes av lysinntrengning bak sensoren, da det er optisk virkemåte.
Det er helt sikkert mulig for flere å slenge seg på, om man jobber med visualisering, modellering av data, kommunikasjon, maskinvare, osv. For meg er dette spennende, særlig at alt blir åpen kildekode og at man kan selv utvikle sine egne punkter.
Romeo V2
Av mange arduinobaserte kretskort på markedet, er dette en som er fin for å starte utviklingen på. Det er mye som kan brukes ut av boksen, uten å fikle for mye med løse komponenter, breadboards og loddetangen. Jeg er for all del ikke redd for en loddetang, men det er greit å ha et proto-brett som er fleksibelt og kan benyttes til mer enn en ting. Her er det utallige muligheter, det er vel i praksis fantasien som setter grenser. ( lenke )Bilde hentet fra dfrobot.com |
Støvsensor
En sensor for å måle støvpartikler, enkelt og greit :-) Den bruker optisk måling av partikler, samt det er en motstand som fungeer som varmeelement for å skape sirkulasjon av luften. ( lenke )Sensoren brukes ofte i luftrensere og har visstnok ganske god kvalitet når det gjelder nøyaktighet av svevestøvmålinger (PM2.5). Den kan påvirkes av lysinntrengning bak sensoren, da det er optisk virkemåte.
Bilde hentet fra dfrobot.com |
Støvsensoradapter
For å koble støvsensoren opp, er det en fordel med adapteren,. Denne gjør at man med enkelhet kan koble sensoren mot Arduino. (lenke)Bilde hentet fra dfrobot.com |
Barometrisk sensor
Den barometriske sensoren BMP180 fungerer ved å måle trykk og temperatur. Høyde og trykk har ikke et statisk forhold, selv jordens rotasjon påvirker dette. Ofte er det slik at man kalibrerer telefoner og annet ved enten sjønivå (0 meter over havet), eller ved en kjent høyde. Dette blir da utfallet av en ligning med ukjent. En utfordring med høydemåler er at høyden da vil påvirkes av temperaturen, siden trykket endres ved temperatur. Dette kompanseres dog ved å bruke bibliotek til sensoren.
Bilde hentet fra ebaylenken nedenfor |
Jeg kjøpte to sensorer på ebay, til kr. 11 per stk ( lenke )
MircoSD
Mikrokontrollere har som kjent lite lagring, vi snakker her ikke megabytes men kilobytes. Det er plass til lite programmering og plass til enda mindre lagring. Hva hvis kommunikasjonen går ned? Kanskje man bør bufre til microsd og overføre ved gitte intervaller?
Bilde hentet fra ebay. |
XBee USB Adapter
Dette adapteret er strengt tatt ikke nødvendig, men det gjør at man kan flytte radiodelen lenger unna kretskortet. Adapterkotet skal benyttes sammen med mottakerside (Rasberry Pi 2) og det blir da bare å koble opp primært jord, +5v, rx til tx og tx til rx (data). Kortet kostet hele 26,54 Kr på ebay! XBee er altså en formfaktor som kan brukes til mange forskjellige trådløse teknologier, men denne adapteren gjør at du kan enten bruke dupont-kabler eller usb-kabel ut mot mikrokontrollerens kretskort.
Bilde hentet fra ebay |
XRF XBee
Jeg bestilte to stykker XRF Xbee, hvor av en skal monteres inn i XBee USB Adapteren og deretter skal jeg bruke dupont kabler ned til Rasberry Pi 2. Den andre skal monteres rett i socketen på Arduino Romeo V2. Det blir rene "Plug and pray".
Bilde hentet fra dfrobot.com |
Nå skal det sies at en alternativ løsning enn å kjøpe to XRF XBee i mitt tilfelle, ville være å kjøpe en "Slice of radio" som er laget for å monteres rett på IO socketen til Rasberry Pi. Men det jeg ikke likte med "Slice of Radio"; er at den dekker over alle IO-pins. Det vil jo si man må enten la vær å bruke resten, eller man må stacke mye i høyden. Ved å derimot bruke den adapteren ovenfor fra ebay, vil jeg kunne bruke dupont kabler ned på IO-pins som er aktuelle å bruke (RX mot TX og TX mot RX).
Med XRF XBee har man mulighet for lang rekkevidde og lavt forbruk, det er også mulig å sette den i sovemodus når radiomodulen ikke er aktiv. I teorien kan man også koble dupontkabler rett på XRF XBee og man trenger ikke drivere hvis man gjør det på denne måten. Det fins jo alternative løsninger som bruker usb-adaptre som vil kreve drivere i Linux.
Med XRF XBee har man mulighet for lang rekkevidde og lavt forbruk, det er også mulig å sette den i sovemodus når radiomodulen ikke er aktiv. I teorien kan man også koble dupontkabler rett på XRF XBee og man trenger ikke drivere hvis man gjør det på denne måten. Det fins jo alternative løsninger som bruker usb-adaptre som vil kreve drivere i Linux.
Analog Ambient Light Sensor
Det er rett å slett en lyssensor, bestilte to på gøy fra dfrobot.com.
Det er ingen begrensninger for hva man kan bruke denne til, så fremt man bare vil bruke den til noe som har med lysnivå å gjøre :-) Eksempel kan være å slå av taklyset når det er lyst nok ute, eller slå på lyset når det er mørkt ute.. Begge deler er selvsagt også mulig!
Det er ingen begrensninger for hva man kan bruke denne til, så fremt man bare vil bruke den til noe som har med lysnivå å gjøre :-) Eksempel kan være å slå av taklyset når det er lyst nok ute, eller slå på lyset når det er mørkt ute.. Begge deler er selvsagt også mulig!
Bilde hentet fra dfrobot.com |
DHT11 Temperatur og fuktsensor
Sensoren måler fukt og temperatur, men er da naturligvis påvirkelig av kretskortenes varmeutvikling, så vel som lysinntrengning. Nøyaktighetsgraden er +-1C, DHT22 har +-0.5C som nok kanskje egentlig er et bedre valg.. Etterpåklokskap er også klokskap, vil jeg påstå! Nok et produkt fra dfrobot.com
Bilde hentet fra dfrobot.com |
Kabler
Det er ikke et must, da man får kabler med adapterne og enhetene fra dfrobot, men det skader ikke å ha noe slitk liggende. I alle fall ikke når det er hele 11,56kr på ebay! Dette heter altså "dopont male to female". Det kan også hete noe som "dupont wire jumper cable".
Bilde hentet fra ebay |
Takk til
På lik linje med de som vinner en oscarnominasjon, føler jeg at jeg må takke litt for min egen handleliste. Jeg har ikke bare gått random amok med bankkortet mitt, jeg har faktisk fått litt hjelp til å filtrere ut hva som kan være greie produkter (med unntak av et par av sensorene og kablene, der gikk jeg kanskje amok på egenhånd).
Men uansett er det en digresjon. Nils Jacob Berland har hjulet meg med tips og råd, jeg snublet for en tid tilbake over friskby bergen ( https://www.facebook.com/friskbybergen?fref=ts ), som har et spennende prosjekt med å få frisk luft inn i ryggmargen til skoler. Prosjektet vil jeg si er en innovasjonsprosess både ved at man får elever til å jobbe med utvikligen av - og utplassere sensorer. Dette er et spennende prosjekt som fattet min interesse og jeg tok kontakt med de på facebook for en tid tilbake.
Men uansett er det en digresjon. Nils Jacob Berland har hjulet meg med tips og råd, jeg snublet for en tid tilbake over friskby bergen ( https://www.facebook.com/friskbybergen?fref=ts ), som har et spennende prosjekt med å få frisk luft inn i ryggmargen til skoler. Prosjektet vil jeg si er en innovasjonsprosess både ved at man får elever til å jobbe med utvikligen av - og utplassere sensorer. Dette er et spennende prosjekt som fattet min interesse og jeg tok kontakt med de på facebook for en tid tilbake.
Det er helt sikkert mulig for flere å slenge seg på, om man jobber med visualisering, modellering av data, kommunikasjon, maskinvare, osv. For meg er dette spennende, særlig at alt blir åpen kildekode og at man kan selv utvikle sine egne punkter.
Etiketter:
Adapter,
Arduino,
barometrisk sensor,
dht11,
fukt,
fuktsensor,
Internet of things,
IoT,
kabler,
lyssensor,
microsd,
Sensorer,
Støvsensor,
temperatur,
xbee usb adapter,
xrf xbee
Abonner på:
Innlegg (Atom)