Intel® Edison styrelse: Klappa aktiverat klockan (5 / 6 steg)

Steg 5: kod

Följande är C++ kod för Eclipse * IDE för Intel® Edison, installera det och hur du kommer igång: https://software.intel.com/en-us/installing-the-e...

/*

* Författare: Dirk Roziers

* Copyright (c) 2015 Intel Corporation.

*

* Tillstånd beviljas härmed, gratis, till någon person

* en kopia av denna programvara och tillhörande dokumentationsfiler (den

* "Programvara"), i programvaran utan begränsning, inklusive

* utan begränsning rättigheter att använda, kopiera, ändra, sammanfoga, publicera,

* fördela, underlicensiera eller sälja kopior av programvaran, och att

* tillåta personer som programvaran är inredda för att göra det, med förbehåll för

* följande villkor:

*

* Ovanstående copyrightmeddelande och detta tillstånd tillkännagivande skall

* ingår i alla kopior eller betydande delar av programvaran.

*

* PROGRAMVARAN TILLHANDAHÅLLS "I BEFINTLIGT SKICK", UTAN GARANTIER AV NÅGOT SLAG,

* UTTRYCKTA ELLER UNDERFÖRSTÅDDA, INKLUSIVE MEN INTE BEGRÄNSAT TILL GARANTIER AVSEENDE

* SÄLJBARHET, LÄMPLIGHET FÖR ETT SÄRSKILT ÄNDAMÅL OCH

* ICKE-INTRÅNG. UNDER INGA OMSTÄNDIGHETER SKALL FÖRFATTARNA ELLER UPPHOVSRÄTTSINNEHAVARE VARA

* ANSVARIG FÖR EVENTUELLA ANSPRÅK, SKADOR ELLER ANNAT ANSVAR, VARE SIG I EN

* AV KONTRAKTET, KRÄNKNING ELLER ANNAT, SOM UPPSTÅR FRÅN, AV ELLER I ANSLUTNING

* MED PROGRAMVARAN ELLER ANVÄNDNING ELLER ANDRA MELLANHAVANDEN I PROGRAMVARAN.

*/

#include "mraa.h"

#include

#include

#include

int main (int argc, char ** argv)

{

tid current_time;

struct tm * time_info;

char timeString [9]. utrymme för "HH:MM:SS\0"

int timmar, minuter, sekunder.

unsigned int temp_value, light_value, sound_value;

int counter = 1;

int display_on = 0;

unsigned int sound_threshold = 400.

flyta max_light_value = 800,0;

int number_of_sec_to_display_time = 10;

int number_of_sec_to_display_temp = 3;

float resistens.

float temp_celcius;

int temp_celcius_int;

int temp_celcius_decimal_1;

int ljusstyrka;

mraa_aio_context temp_pin;

mraa_aio_context light_pin;

mraa_aio_context sound_pin;

/ * värdet av varje segment enligt binär representation i datablad

64

------

| |

2 | | 32

| 1 |

------

| |

4 | | 16

| |

------

8

index i matrisen = värde av siffra,

dvs digit_value [5] = 5 visas på LED,

digit_value [7] = 7 visas på LED,

digit_value [10] = blank LED

*/

int digit_value [] = {

126, / * 2 + 4 + 8 + 16 + 32 + 64 * /

48, / * 16 + 32 * /

109, / * 1 + 4 + 8 + 32 + 64 * /

121, / * 1 + 8 + 16 + 32 + 64 * /

51, / * 1 + 2 + 16 + 32 * /

91, / * 1 + 2 + 8 + 16 + 64 * /

95 / * 1 + 2 + 4 + 8 + 16 + 64 * /

112, / * 16 + 32 + 64 * /

127, / * 1 + 2 + 4 + 8 + 16 + 32 + 64 * /

115, / * 1 + 2 + 16 + 32 + 64 * /

0

};

/*

* binärt värde som ska skickas över SPI att displayen till visningsvärde vvvv vvvv på LED nummer nnnn är: 0000 nnnn vvvv vvvv

* t. ex. ställa 5: e LED från vänster (= 4: e LED från höger) till värde 5 (= 91, se ovan = 10011011)--> pass 0000 0100 1001 1011

* decimal = 1024 (0000 0100 0000 0000) + 91 (0000 0000 1001 1011) = 1115

*/

int digit_position [] = {

256, / * digit_position [0] = 8: e siffran = längst till höger siffra, 256 = 0100 hex = 0000 0001 0000 0000 binärt * /

512, / * digit_position [1] = 7: e siffran = 2: a från höger, 512 = 0200 hex = 0000 0010 0000 0000 binärt * /

768, / * digit_position [2] = 6 siffriga * /

1024, / * digit_position [3] = 5: e siffran * /

1280, / * digit_position [4] = 4: e siffran * /

1536, / * digit_position [5] = 3: e siffran * /

1792, / * digit_position [6] = 2: a siffran * /

2048 / * digit_position [7] = 1: a siffran = vänstra siffran * /

/ * index i matrisen = 8 - ställning av siffra på displayen. lämnade de flesta siffra = position 1 * /

};

tempsensor på analoga Pin0 (Aio0), ljussensor på analoga Pin1 (Aio1) och ljud sensor på analoga Pin2 (Aio2)

temp_pin = mraa_aio_init(0);

light_pin = mraa_aio_init(1);

sound_pin = mraa_aio_init(2);

mraa_spi_context spi;

SPI = mraa_spi_init(1);

om (spi == NULL)

{

printf ("initieringen av spi misslyckades, kontrollera syslog för detaljer, exit... \n");

Exit(1);

}

Välj klicka frekvens till 400 kHz)

mraa_spi_frequency (spi, 400000);

mraa_spi_lsbmode (spi, 0);

MAX7219/21 Chip behöver data i word storlek

om (mraa_spi_bit_per_word (spi, 16)! = MRAA_SUCCESS)

{

printf kunde ("inte ange SPI enheten till 16-bitars läge, utgång... \n");

Exit(1);

};

mraa_spi_write_word (spi, 0x0900); Inte avkoda bitar

mraa_spi_write_word (spi, 0x0a0f); Ljusstyrkan på lysdioderna--0xa00 lägsta, högsta 0xa0f--inställd på högsta till att börja med

mraa_spi_write_word (spi, 0x0b07); Visa alla skanna linjer

mraa_spi_write_word (spi, 0x0c00); Visa - börja med display.

mraa_spi_write_word (spi, 0x0f00); Testmode off

While(true) {

medan (display_on == 0) {

upptäcka ljud för att byta display

sound_value = mraa_aio_read(sound_pin);

om (sound_value > sound_threshold) {

display_on = 1;

mraa_spi_write_word (spi, 0x0c01); Visa på

}

usleep(1000);

}

medan (display_on == 1)

{

temp_value = mraa_aio_read(temp_pin);

light_value = mraa_aio_read(light_pin);

Konvertera temp_value läses in Celcius med datashaeet - Bvalue av sensor = 3975

motstånd = (1023 - temp_value) * 10000 / temp_value; Få motståndet av sensorn

temp_celcius = (1 / (log(resistance / 10000) / 3975 + 1 / 298.15) - 273.15); Konvertera till temperatur via datablad

separat heltal och decimaltal för enklare visning ändamål

temp_celcius_int = temp_celcius;

temp_celcius_decimal_1 = temp_celcius * 10 - temp_celcius_int * 10;

Time(¤t_time);

time_info = localtime(¤t_time);

strftime (timeString, sizeof(timeString), "% H: % m %S", time_info);

timmar = time_info -> tm_hour;

minuter = time_info -> tm_min;

sekunder = time_info -> tm_sec;

/ * TEMP uppvisning LAYOUT xxTT.txxx * /

uint16_t TEMPdata [] = {

/ * 8 siffrigt * / digit_position [0] + digit_value [10],

/ * 7 siffriga * / digit_position [1] +78 / / 78 = värdet för tecknet C (Clecius)

/ * 6 siffriga * / digit_position [2] + digit_value [10],

/ * 5: e siffran * / digit_position [3] + digit_value [temp_celcius_decimal_1],

/ * 4: e siffran * / digit_position [4] + digit_value [temp_celcius_int % 10] +128,

/ * 3: e siffran * / digit_position [5] + digit_value [(temp_celcius_int-temp_celcius_int%10)/10],

/ * 2: a siffran * / digit_position [6] + digit_value [10],

/ * 1: a siffran * / digit_position [7] + digit_value [10]};

/ * TID DISPKAY LAYOUT 1 xxHH.MMxx * /

uint16_t TIMEdata [] = {

/ * 8 siffrigt * / digit_position [0] + digit_value [10],

/ * 7 siffriga * / digit_position [1] + digit_value [10],

/ * 6 siffriga * / digit_position [2] + digit_value [minuter % 10] + (sekunder för %2) * 128,

/ * 5: e siffran * / digit_position [3] + digit_value [(minuter - minutes%10)/10],

/ * 4rd digit * / digit_position [4] + digit_value [timmar % 10] +128,

/ * 3nd digit * / digit_position [5] + digit_value [(hours-hours%10)/10],

/ * 2: a siffran * / digit_position [6] + digit_value [10],

/ * 1: a siffran * / digit_position [7] + digit_value [10]};

/ * TID DISPKAY LAYOUT 2 HH. MM. SS *

/ uint16_t TIMEdata [] = {

/ * 8 siffrigt * / digit_position [0] + digit_value [10],

/ * 7 siffriga * / digit_position [1] + digit_value [sekunder % 10],

/ * 6 siffriga * / digit_position [2] + digit_value [(sekunder - seconds%10)/10],

/ * 5: e siffran * / digit_position [3] + digit_value [minuter % 10] +128,

/ * 4: e siffran * / digit_position [4] + digit_value [(minuter - minutes%10)/10],

/ * 3: e siffran * / digit_position [5] + [timmar % 10] digit_value +128,

/ * 2: a siffran * / digit_position [6] + digit_value [(hours-hours%10)/10],

/ * 1: a siffran * / digit_position [7] + digit_value [10]};

/ * TID DISPKAY LAYOUT 3 HH MM SS *

/ uint16_t TIMEdata [] = {

/ * 8 siffrigt * / digit_position [0] + digit_value [sekunder % 10],

/ * 7 siffriga * / digit_position [1] + digit_value [(sekunder - seconds%10)/10],

/ * 6 siffriga * / digit_position [2] + digit_value [10],

/ * 5: e siffran * / digit_position [3] + digit_value [minuter % 10],

/ * 4: e siffran * / digit_position [4] + digit_value [(minuter - minutes%10)/10],

/ * 3: e siffran * / digit_position [5] + digit_value [10],

/ * 2: a siffran * / digit_position [6] + digit_value [timmar % 10],

/ * 1: a siffran * / digit_position [7] + digit_value [(hours-hours%10)/10]};

ljusstyrka = 2560 + (light_value/max_light_value) * 15; ljusstyrka nivå 0 till 15, kommandot 0x0a00 -> 0x0a0f / / 2560 -> 2575

mraa_spi_write_word (spi, ljusstyrka); Ljusstyrka lysdioder

om (counter == number_of_sec_to_display_time + 1)

{

mraa_spi_write_buf_word (spi, TEMPdata, 2);

mraa_spi_write_buf_word (spi, TEMPdata, 4);

mraa_spi_write_buf_word (spi, TEMPdata, 6);

mraa_spi_write_buf_word (spi, TEMPdata, 8);

mraa_spi_write_buf_word (spi, TEMPdata, 10);

mraa_spi_write_buf_word (spi, TEMPdata, 12);

mraa_spi_write_buf_word (spi, TEMPdata, 14);

mraa_spi_write_buf_word (spi, TEMPdata, 16);

usleep(number_of_sec_to_display_temp*1000000); / * Visa temp för number_of_sec_to_display_temp sekunder * /

räknare = 1;

display_on = 0;

mraa_spi_write_word (spi, 0x0c00); Visa off

}

annat

{

mraa_spi_write_buf_word (spi, TIMEdata, 2);

mraa_spi_write_buf_word (spi, TIMEdata, 4);

mraa_spi_write_buf_word (spi, TIMEdata, 6);

mraa_spi_write_buf_word (spi, TIMEdata, 8);

mraa_spi_write_buf_word (spi, TIMEdata, 10);

mraa_spi_write_buf_word (spi, TIMEdata, 12);

mraa_spi_write_buf_word (spi, TIMEdata, 14);

mraa_spi_write_buf_word (spi, TIMEdata, 16);

usleep(1000000);

räknaren ++;

}

}

}

}

Se Steg
Relaterade Ämnen

Hur du ansluter din Intel Edison styrelse till WiFi

detta - kompatibel innehåller stegen för att konfigurera WiFi nätverksåtkomst till din Intel Edison styrelse och en IP-adress.Steg 1: Montera din styrelse Installera Mini Breakout styrelsen storbildsformat Expansion, bifoga benet och koppla in kablar...

Intel® Edison styrelse: IoT temperaturövervakning

Sakernas Internet är inte längre begränsad till bara maker hobbyister och entusiaster. Det har uppmärksammats av företag som vill starta en ny industriell revolution med hjälp av Sakernas Internet. Från smart arbetsplatser för att öka produktionen, h...

The first usage of Intel Edison

Idag, ska jag visa dig hur du använder Intel Edison för första gången! Raspberry Pi och Arduino styrelser är fortfarande så populärt i dagens värld, Intel Edison och dess utveckling styrelse är också mycket intressant.Jag fick en chans att undersöka...

#MyoCraft: Myo Armband med node.js ombord Intel Edison

I denna insctructable kommer jag visa dig hur du styr din Intel Edison styrelse med förflyttningar av handen och armen, tack vare din Myo Armband.De olika stegen som beskrivs nedan använder bluetooth protokoll som förbinder Myo och Edison styrelsen g...

Goodbam - insamling av bra/dåliga sova uppgifter av Intel Edison

"Goodbam" (på koreanska, "att ha en god sömn") görs för att samla in och analysera bra/dåligt sovande data med hjälp av Intel Edison styrelse.Edison styrelsen samlar PIR sensor och mikrofon värdet. Så, det kan upptäcka rörelse och bull...

QR koden betalning enhet använder Intel Edison

Hoppa över de nästa 2 styckena om du inte är intresserad av vår motivation.Det var en punkt när kontanter är en tillräcklig betalningsmetod. Som vår vardag blir livligare och teknik rör sig framåt, vi har en hel del alternativ för att betala: kontant...

Automatiserad studiemiljö med Intel Edison

I detta projekt ska jag visa dig hur man gör en automatiserad studiemiljö med Intel Edison!Intel-Edison använder flera sensor för att övervaka miljön i ditt studierum. Edison optimerar miljön på ditt rum som passar dina angivna parametrar för att stu...

Färg spårning med hjälp av Intel Edison Development Kit

I anges för att skapa ett OpenCV-projekt på Intel Edison med Node.js för att spåra objekt. OpenCV har bara C++, C, Python och Java gränssnitt så hur kan du arbeta med bara JavaScript? OpenCV har aldrig portats till JavaScript i sin helhet, men enskil...

AgroIoT med Intel Edison (Intel IoT)

Jordbruket Business är en viktig verksamhet i Indien. Varje jordbrukare sätta hans ansträngningar för att bevara grödor och det börjar från plantagen säljer i marknaden.I denna hela cykel måste han iaktta olika parametrar som hjälper dem att förbättr...

Dagis övervakning och spårning System med Intel Edison Development Kit

Vi har byggt ett dagis övervakning och spårning system med Intel Edison styrelsen tillsammans med Bluetooth låg energi (BLE) enheter och en USB-kamera. Det är en demonstration av hur lätt Intel Edison DevKit kan användas för att bygga en lösning till...

Automatiserad vattning av krukväxter med Intel Edison

Automatiserade vattna krukväxter med Intel Edison... En fukt Sensor känner av den låga fukthalten i jord och aktiverar vattenpumpen eller magnetventilen som styr flödet av vatten. När det krävs vattnet pumpas till växterna, sensorn automatiskt stanna...

Cloud luftföroreningar analytics med Intel Edison och IBM Bluemix

luft påverkar vår livskvalitet. Luftföroreningar leder till sjukdomar, Allergener orsaka människor att känna sig sjuk, täppt inomhusluft kan leda till förlorad produktivitet. Människor i störst behov omfatta personer med astma, kol, pollenallergi och...

Ad hoc-nätverket och Intel Edison dela en fil via

Hej, hur du konfigurerar ett trådlöst internet-mindre Edison nätverk med hjälp av ett ad hoc-nätverk.Element, som krävs:2-Intel edison styrelser.Steg 1: Konfigurera ditt Edison styrelse att ansluta till ad hoc-nätverket.I det här steget kommer vi ska...

Interaktiva Ambient Sensor med Intel Edison & Grove Starter Kit Plus

Hej jag har sett en hel del Instructables här men jag vill göra ett projekt där du kan se användningen av olika sensorer, knappar, buzzers, lysdioder och lcd tillsammans! Vad vi kommer att inse är en interaktiv SENSOR för omgivande där du kan välja v...

IoT RC bil med Intel Edison (IntelIoT)

FörordLåt oss först förstå vad vi försöker uppnå här. Vi har alla typer av RC leksaker för våra barn och sedan finns det video och mobila spel. En detta är säkert att alla bara älskar bilar, oavsett om det är verkligt eller i 3D-spel eller en leksaks...

SMART AGRI med Intel Edison (Intel IoT Roadshow)

I detta projekt kommer att förklara om hur att övervaka fuktighet, temperatur och jord fuktnivå av jordbruksmark använder Intel Edison styrelse. Här har jag använt DHT11 luftfuktighet/temperatur sensor och markens fukt sensor.Arkiverade data går till...

Ljussabel använder Intel Edison

På detta Instructable, ska jag dela hur jag byggde min egen ljussabel använder en Intel Edison styrelse, en billig Jedi Lightsaber leksak och en uppsättning adresserbara RGB lysdioder.Detta var en del av en utmaning att Pacman Pereira lanserat till a...

Sensorer med Intel IoT Analytics Dashboard (Intel Edison / C + +/ Eclipse)

Lära sig få sensorer arbetar live i Intel IoT Analytics instrumentpanelen.Steg 1: Steg 1: Intel Edison ställa inMåste installera Intel® XDK IoT Edition och ansluta den till din Intel® Edison styrelse.Se komma igång med Intel® XDK IoT Edition.Brädan m...

Telefon styrs garageporten, drivs med Intel Edison Blynk & Arduino

Automatiserad produkter har blivit vanligare och lösningar som är billiga finns i vissa områden, ett exempel kan vara inomhus blixt eller automatiska timers. Men om du vill att en garageport som kan öppnas med en telefon och inte vill betala för nya...