Sol Mate (4 / 6 paso)

Paso 4: Estructura todo el código de Arduino

#include
#include "rgb_lcd.h" #include #include

rgb_lcd lcd;

const int blanco [] = {255, 255, 255}; const int rojo [] = {255, 0, 0};

const int pinRot = A0; const int pinTemp = A1; const int pinIR = A2; const int pinUV = A3;

const int pinBut = 7; const int pinBuz = 8;

const int tempref = 3975;

int statecount = 0; int tanperc = 0; int tantarg = 0; Float alltemp [8] = {0, 0, 0, 0, 0, 0, 0, 0}; flotador allIR [8] = {0, 0, 0, 0, 0, 0, 0, 0}; Float alluv [8] = {0, 0, 0, 0, 0, 0, 0, 0}; pt de int = 0; Float acctemp = 0; accIR de flotador = 0; Float accUV = 0; exposición de flotador = 0; const int displayrate = 40; const int exigencia = 170;

int maxuv = 0; maxtemp int = 0; sin firmar largo starttime = 0; endtime larga sin signo = 0;

void setup() {Serial.begin(9600), lcd.begin (16, 2); lcd.setRGB (blanco [0], blanca [1], white[2]) lcd.setCursor (0, 0); lcd.print ("Hola, soy su"); lcd.setCursor (0, 1); lcd.print ("Solmate:)" "); pinMode (pinBut, entrada); digitalWrite (pinBut, HIGH); pinMode (pinBuz, salida); statecount = 0; Delay(4000); setTan(); }

void clrRow(int row) {lcd.setCursor (fila, 0); lcd.print("");}

anular setTan() {lcd.setRGB (blanco [0], blanca [1], white[2]) lcd.setCursor (0, 0); lcd.print ("el % tan Set!"); clrRow(1); mientras (! digitalRead(pinBut)) {int rotread = analogRead(pinRot); tanperc = rotread * 100 / 1015; tantarg = rotread * exigencia / 1015; char [] perc = "100%"; int targ = tanperc; para (int me = 2; i > = 0; i--) {si (< 2 & & targ == 0) {perc [i] = ' ';} más {perc [i] = '0' + targ % 10;} targ / = 10;} lcd.setCursor (6 , 1); LCD.Print(PERC); Delay(100); } exposición = 0; mientras (digitalRead(pinBut)); LCD.Clear(); startTime = millis(); maxuv = 0; maxtemp = 0; }

readFile() Boolean {//Get el resultado de la consulta de datos de char archivo [16]; FILE * fp; FP = fopen ("/tmp/tantweet.txt", "r"); if(FP!=null) {fgets (datos, 16 fp); fclose(fp); si (datos [0] == '1') devuelve true; otra vuelta falso;} Else {devuelva false;}}

void tanned() {endtime = millis(); lcd.setRGB (rojo [0], rojo [1], red[2]); clrRow(0); clrRow(1); lcd.setCursor (0, 0); lcd.print ("perfectamente bronceada!"); digitalWrite (pinBuz, HIGH); delay(500); digitalWrite (pinBuz, bajo); delay(500); digitalWrite (pinBuz, HIGH); delay(500); digitalWrite (pinBuz, bajo); delay(500); digitalWrite (pinBuz, HIGH); delay(500); digitalWrite (pinBuz, bajo); delay(500); lcd.setRGB (blanco [0], blanca [1], white[2]); clrRow(0); lcd.setCursor (0 , 0); LCD.Print ("Tweet?"); tweet de int = 0; mientras (! digitalRead(pinBut)) {//select si o no int rotread = analogRead(pinRot); lcd.setCursor (0, 1); si (rotread < 512) {lcd.print («> Sí No "); Tweet = 1; } else {lcd.print ("sí > n"); Tweet = 0; } delay(100); } y (digitalRead(pinBut)); Si (tweet == 1) {String cmd = "python /home/root/test7.py -m"; CMD = cmd + tanperc + "-e"; CMD = cmd + ((endtime-starttime)/60000) + "-t"; CMD = cmd + maxtemp "-u"; CMD = cmd + maxuv + "> /tmp/tantweet.txt"; Excute la consulta y obtener el resultado system(cmd.buffer); LCD.Clear(); Si (readFile()) {lcd.setRGB (blanco [0], blanca [1], white[2]); lcd.clear(); lcd.setCursor (0, 0); lcd.print("Tweeted!");} else {lcd.setRGB (blanco [0], blanca [1], white[2]); lcd.clear(); lcd.setCursor (0, 0); lcd.print ("no se pudo"); lcd.setCursor (0, 1); lcd.print("tweet...");} Delay(4000); } }

void loop() {Serial.println("hello"); //check si terminado si (exposición > = tantarg) {tanned(); setTan();} else {//check si si (digitalRead(pinBut)) {mientras que (digitalRead(pinBut)); setTan();}}

actualizar los sensores entradas //temperature int tempread = analogRead(pinTemp); flotador de res = (float)(1023-tempread) * 10000/tempread; temp de flotador = 1 / (log (res/10000) /tempref+1/298.15)-273.15; Temp = temp * 1.8 + 32; acctemp += temp - alltemp [pt]; alltemp [pt] = temp; Serial.Print("Temp:"); Serial.println(Temp); Flotador de UV uv = analogRead(pinUV); UV = uv * 4980.0/1023.0 * 0.307 / 200,0; accUV += uv - alluv [pt]; alluv [pt] = ULTRAVIOLETA; Serial.Print("UV:"); Serial.println(accUV/8); PT = (pt < 7? pt + 1:0); salida datos cada 0,5 seg si (statecount % 10 == 0) {si (acctemp/8 > maxtemp) {maxtemp = (acctemp/8);} si (accUV/8 > maxuv) {maxuv = (accUV/8);} si (statecount < displayrate) {buffer de char //temperature [16], sprintf (buffer, "Temp %0.1f F", acctemp/8); clrRow(0); lcd.setCursor (2, 0); lcd.print(buffer);} más {buffer de char //UV [16], sprintf (tampón, "Índice UV %0.1f", accUV/8); clrRow(0); lcd.setCursor (2 , 0); LCD.Print(buffer); } lcd.setCursor //update tan (0, 1); para (int i = 0; i < 16 * exposición / tantarg; i ++) {lcd.print("X");}} exposición += uv/600; statecount = (statecount < 2 * displayrate? statecount + 1: 0); Delay(100); }

Artículos Relacionados

Elaborar cerveza su propia cerveza de malto irlandesa - todo grano

Elaborar cerveza su propia cerveza de malto irlandesa - todo grano

Para muchos, la llegada de la primavera está marcada por la floración de tulipanes y narcisos y el trinar de los pájaros. Mientras que todos es grande y todos, puede decir primavera viene a mi casa por el olor a cebada tostada y el embotellado de una
Único Mat

Único Mat

Hey todo el mundo!Recientemente noté que tenía unas zapatillas viejo mentira alrededor de mi casa que ya no estaban en uso y en vez de tirar hacia fuera que quería hacer algo con ellos.  Al mismo tiempo también he notado que mi felpudo esperaba basta
Gafas de sol personalizadas (inspirado por Casey Neistat)

Gafas de sol personalizadas (inspirado por Casey Neistat)

¡Hola!Así que si alguna vez han visto videos de Casey Neistat se sabe lleva gafas de sol muy distintivo.En pocas palabras, creo que son awsome... Así que decidí hacer mi propia vuelta en su Idea!Revisa el video de arriba para el proceso de construcci
Botellas de sol

Botellas de sol

AKA: versión de pasarela accionado Solar 2Este es mi segundo uso de un sistema de iluminación solar distribuida, donde el grupo puede sentarse en algún lugar en el sol y envía energía a las luces que se encuentran en un lugar sombreado.  Supongo que
Cigarrillos de iluminación y hacer fuego con la luz del sol

Cigarrillos de iluminación y hacer fuego con la luz del sol

por tonytran2015 (Melbourne, Australia).Figura 1: Iluminación un cigarrillo por la luz solar. Latente es visible después de 27seconds. Figura 2: Diagrama del experimento.El título podría haber sido "Cigarrillos de la iluminación con la cara de un rel
Santa Yerba Mate con una patada

Santa Yerba Mate con una patada

en este instructable, mostrará usted cómo hacer una mezcla de hierbas muy saneada e interesante con Yerba Mate, hojas de la equinácea y Tulsi, así como un poco limón. Esta es la mezcla perfecta mañana deliciosa, refuerza su sistema inmunológico y le
Sugru construir noche - Base Mate para

Sugru construir noche - Base Mate para

¿quién no ha derramado un mate accidentalmente por la falta de estabilidad del recipiente? Una de las propuestas surgieron durante la Noche Creativa de Platohedro fue la construcción de una base plana para apoyar el mate mientras hacemos alguna otra
Por qué el cielo es azul - o el sol naciente aparecen rojo

Por qué el cielo es azul - o el sol naciente aparecen rojo

Por qué claro aparece azul cielo o por qué la salida/puesta de sol o de luna aparece color - rojo esas dos preguntas tienen la misma respuesta. Dispersión de la luz en la atmósfera de la tierra.Este instructable simple puede demostrar precisamente es
Ganchillo afgano de jaque mate

Ganchillo afgano de jaque mate

hecho por mi madre para Navidad, he usado patrón del León marca hilo: Jaque mate de ganchillo afgano. Hecho con hilo de rojo corazón Super Saver para una manta ultra caliente y un gancho de crochet de tamaño K. Hecho en filas con el cambio de color a
Autómatas de mecanismo de leva de Pikachu con enrejado bisagra caja

Autómatas de mecanismo de leva de Pikachu con enrejado bisagra caja

Tuvimos que hacer un automata con carpintería y enrejado bisagra para un proyecto y esto fue lo que yo solía mover la cabeza de Pikachu como si perdía una lucha en la revolución francesa. Vea a continuación en el paso 9: hace referencia a los otros p
Contacta con marco de papel de Mat

Contacta con marco de papel de Mat

Viste a un mat marco con papel de contacto y atesorar sus recuerdos preciosos y arte favorito en él!Paso 1: Lo que necesitaráAquí es lo que necesitarás hacer este marco único...un marco de matuna hoja de cartóntijerasun rollo de papel con motivos de
Brillo de labios en mate ver

Brillo de labios en mate ver

esta es una manera rápida y eficaz para conseguir el aspecto mate.Paso 1: Lo que usted necesita • Polvo de bebé• Brillo de labios• Labios ;-)Paso 2: aplicación Obtener su brillo de labios y aplicar a los labios. Cuando haya terminado se deben cubrir
La manera más eficaz para deshacerse de las quemaduras de sol

La manera más eficaz para deshacerse de las quemaduras de sol

bueno este es mi primer instructivo y sólo va a ser corto porque su un método extremadamente fácil y eficaz para quitar las quemaduras de sol dolorosas. Este método me fue recomendado por mi madre, amigos, que es enfermera y por lo tanto debe saber q
Autómatas celulares y una ejecución de juego de Conway de la vida

Autómatas celulares y una ejecución de juego de Conway de la vida

Que yo sepa, sólo ha habido dos artículos de instructables en autómatas celulares que pueden encontrarse aquí y aquí. Ni artículo explica qué son los autómatas celulares, por qué son interesantes, o cómo se puede implementar en código. Por lo tanto,