Dispositivo de recogida de datos de mapa de oscuridad (5 / 6 paso)

Paso 5: Agregar el Sensor de luz

Si usted ha sido capaz de guardar datos GPS en la tarjeta SD, el último paso es agregar el sensor de luz a la mezcla. Añadir el sensor de TSL2561 a la protoboard. Alambre de la siguiente manera:

--Conectar toma de tierra para el carril de tierra en el protoboard
-Conectar la clavija de la VCC en el pin 3V en el Arduino
--Conecte el pin SCL a Arduino pin A5
--Conecte el pin SDA a Arduino pin A4

Usaremos el Arduino TSL2561 librería de Adafruit. Lo puedes descargar aquí, descomprimirlo y meter en la carpeta de las bibliotecas de Arduino. Si Arduino está abierto reiniciar para que la biblioteca aparezca en las opciones del menú desplegable de ejemplos. Abra el dibujo de ejemplo y subir a Arduino. Presione el serial monitor para asegurarse de que está leyendo datos. Mueva la mano sobre el sensor para ver si eso cambia los valores de luz. Una vez que esté satisfecho que el sensor está funcionando, añadir el siguiente código para el Arduino:

Dispositivo de recogida de datos de mapa de oscuridad
Genoveva Hoffman, 2012
Biblioteca TinyGPS, Mikal Hart, descargar aquí: http://arduiniana.org/libraries/tinygps/
Biblioteca de TSL2561, por Ladyada (Limor Fried), descargar aquí: https://github.com/adafruit/TSL2561-Arduino-Library
RTClib, por Ladyada (Limor Fried), descargar aquí: https://github.com/adafruit/RTClib
RTClib originalmente desarrollado por Jeelabs: https://github.com/jcw/rtclib

#include "Wire.h"
#include "TSL2561.h"
#include "SD.h"
#include "SoftwareSerial.h"
#include "TinyGPS.h"
#include "RTClib.h"

const int chipSelect = 10;
RTC_Millis RTC;
Archivo de datos de archivo;

int sensorPin = A0;  clavija de entrada del sensor
int lux = 0; variable para almacenar el valor de sensor
LightSensor(TSL2561_ADDR_FLOAT) de TSL2561;

TinyGPS gps;
SoftwareSerial ss (3, 4);

void setup()
{
Serial.Begin(115200);
Serial.Print ("tarjeta INICIALIZACION SD...");
SS.Begin(9600);
pinMode (chipSelect, salida);
RTC.adjust (DateTime (__DATE__, __TIME__));

a ver si la tarjeta está presente y puede ser inicializada:
if (!. {SD.begin(chipSelect))}
Serial.println ("tarjeta de fallido, o no presente");
no hacer nada más:
mientras (1);
}
Serial.println ("tarjeta de inicializado.");

Abra el archivo que vamos a iniciar sesión!
archivo de datos = SD.open ("Data5.txt", FILE_WRITE);
Si (! dataFile) {}
Serial.println ("error al abrir datalog.txt");
Esperar para siempre ya que no podemos escribir datos
mientras (1);
}
lightSensor.begin();
Si (lightSensor.begin()) {}
Serial.println ("sensor encontrado");
} else {}
Serial.println ("sin sensor?");
mientras (1);
}

lightSensor.setGain(TSL2561_GAIN_0X);         no establece ningún beneficio (para situaciones brillantes)
lightSensor.setGain(TSL2561_GAIN_16X);      Set 16 x ganancia (para situaciones de dim)
lightSensor.setTiming(TSL2561_INTEGRATIONTIME_13MS);  menor tiempo de integración (luz brillante)
lightSensor.setTiming(TSL2561_INTEGRATIONTIME_101MS);  tiempo de integración media (media luz)
lightSensor.setTiming(TSL2561_INTEGRATIONTIME_402MS);  tiempo de integración más larga (luz tenue)
}

void loop() / / ejecuta una y otra vez
{
Fecha y hora = ahora RTC.now();
bool newData = false;

para (sin firmar largo comienzo = millis(); millis() - Inicio < 1000;)
{
mientras (ss.available())
{
char c = ss.read();
Serial.Write(c); descomentar esta línea si desea ver el flujo de datos GPS
¿Si (gps.encode(c)) / / llegó una nueva frase válida?
newData = true;
}
Sensor de luz de lectura
lum de uint32_t = lightSensor.getFullLuminosity();
uint16_t ir, completo;
ir = lum >> 16;
Full = lum & 0xFFFF;
Lux = lightSensor.calculateLux (completo, ir);
}

Si (newData)
{
flotador plano, flon;
edad largo sin firmar;
int año;
mes de byte, día, hora, centésimas de segundo, de minuto,
GPS.f_get_position (plano y flon & edad);
GPS.crack_datetime (& año y mes y día y hora, minutos y segundo & centésimos & edad);
sz Char [32];
sprintf (sz, «% 02d/%02d/%02d, % 02d: % 02d: % 02d, ",
mes, día, año, hora, minuto, segundo);

Serial.Print("");
Serial.Print (flon == TinyGPS::GPS_INVALID_F_ANGLE? 0.0: flon, 6);
Serial.Print (",");
Serial.Print (plano == TinyGPS::GPS_INVALID_F_ANGLE? 0.0: plana, 6);
Serial.Print (",");
Serial.Print(SZ); imprime hora GMT
Serial.Print ("unixtime:");
Serial.Print(Now.unixtime());
Serial.Print (", Lux:"); Serial.println(Lux);

dataFile.print("");
dataFile.print (flon == TinyGPS::GPS_INVALID_F_ANGLE? 0.0: flon, 6);
dataFile.print (",");
dataFile.print (plano == TinyGPS::GPS_INVALID_F_ANGLE? 0.0: plana, 6);
dataFile.print (",");
dataFile.print(lux);
dataFile.print (",");
dataFile.println(now.unixtime());
}

dataFile.flush();
Delay(500);
}

Puesto que el proyecto de mapa de oscuridad sobre la recogida de valores de luz en la noche, querrá configurar el sensor de TSL2561 para situaciones de iluminación tenue. Por lo tanto, usted querrá activar la línea de código que dice:

lightSensor.setGain(TSL2561_GAIN_16X) de ;  / / set 16 x ganancia (para situaciones de dim)

y

lightSensor.setTiming(TSL2561_INTEGRATIONTIME_402MS);  tiempo de integración más larga (luz tenue)

Comente las otras líneas que la ganancia y el tiempo. Y no dude en cambiar la configuración si usted decide utilizar el sensor de TSL2561 para otros fines.

Después de que el código es cargado, inicie al monitor de serie, haciendo que esté configurado a 115200 baudios. Si el monitor deja de imprimir cualquier información después de "Sensor de encontrados," entonces tu Arduino probablemente no es recoger cualquier señal GPS y usted querrá pegar detrás hacia fuera en la repisa de la ventana. Debe comenzar a ver los valores para la longitud, latitud y lux y timestamp en el monitor serie. ¡ Felicidades! Usted ha hecho un datalogger.

Ya que todo es breadboarded, no dude en cambiar el TSL2561 por otro sensor de su elección para hacer otro GPS habilitado datalogger. Las posibilidades son infinitas!

Artículos Relacionados

LittleBits enfriador de agua recogida de datos [cuantificado sed]

LittleBits enfriador de agua recogida de datos [cuantificado sed]

Se reúnen el Sr. Thirsty, nuestro super elegante refrigerador de agua recogida de datos. No sólo se Sr. Thirsty llena su taza de agua hasta el nivel perfecto, pero cada vez que llena una taza, registra la fecha y hora en una hoja de cálculo de Google
¿Dispositivo de almacenamiento de datos - disco (la manera fácil)

¿Dispositivo de almacenamiento de datos - disco (la manera fácil)

necesita un lugar para almacenar sus pedazos pequeños de información, como contraseñas, PINs, etc..? Un disquete puede ser el lugar perfecto para él!Paso 1: Materiales necesarios Necesitarás: un disco, un pequeño trozo de papel, una tijera y una plum
Parque de Smart

Parque de Smart

Usted puede desarrollar su propio sistema de monitoreo de ambiente recreacional uso de la Intel IoT Edison.Paso 1: Montar y programar el dispositivo de IoTCon el componente Intel Edison IoT, un tablero de arranque y un conjunto de sensores de nivel d
Convertir los datos de altura de mapa en 3D azulejos

Convertir los datos de altura de mapa en 3D azulejos

En este Instructable te guiará a través de cómo crear un mosaico 3D de datos del mapa. Su bastante sencillo pero requieren el uso de Terminal (en OSX) o el símbolo del sistema (en Windows)Aquí están los pasos básicos:Encontrar el área del mundo que d
El 802,11 Ninja - dispositivo portátil 802.11 Hacking

El 802,11 Ninja - dispositivo portátil 802.11 Hacking

IntroducciónAntes de comenzar este tutorial, tengo que mencionar que yo aún no he cepillado la superficie de posibilidades que ofrece este impresionante pedazo de hardware! No cada aplicación de 802,11 Ninja no necesita cada característica única, así
Digital a analógico: Cómo realizar datos como forma

Digital a analógico: Cómo realizar datos como forma

Datos están en todas partes! Es el número de aves que se pasa fuera de casa mientras caminas por la calle, es el tipo de helado sabores personas escoger en un caluroso día de verano, es todo el mundo en que vivimos. Datos pueden ser una cantidad de c
Registrador de datos GPS bricolaje para le próximo disco/sendero

Registrador de datos GPS bricolaje para le próximo disco/sendero

Se trata de un registrador de datos GPS que puede utilizar para múltiples fines, digamos si usteddesea iniciar su largo viaje que tomó el fin de semana para comprobar hacia fuera los colores del otoño.o tienes un sendero favorito que visites durante
Crear aplicación de iOS para acceso mapa Seattle

Crear aplicación de iOS para acceso mapa Seattle

¡ Saludos! Este Instructable es explicar los pasos de como hacer una aplicación de iOS para el proyecto de acceso mapa Seattle.¿Cuál es el mapa de acceso? Mapa de acceso es el proyecto ganador de la hackathon de hackear el viaje . Es una aplicación w
Hacer tus propios mapas para GPS y PC gratis

Hacer tus propios mapas para GPS y PC gratis

este instructable muestra cómo generar tus propios mapas para el dispositivo (garmin) GPS y tu PC!Aunque soy sobre todo en Linux, este instructable muestra cómo generar tus mapas con herramientas de windows. Es sólo un primer disparo y quería hacer u
MediaTek linkit-construir su propia página web usando linkit uno de seguimiento GPS, GPRS y JSP con mapa de Google

MediaTek linkit-construir su propia página web usando linkit uno de seguimiento GPS, GPRS y JSP con mapa de Google

Ante todo muy gracias por Mediatek para enviarme una tabla de Mediatek Linkit uno . Estoy muy contento por abrir el paquete y trabajar con el WIFI, Bluetooth, GPS, GSM, GPRS. Su muy agradable. Al ver la salida de cada código mi mente tiene salto de a
Rastreador de vuelos en tiempo Real de ADS-B y dispositivo de monitorización utilizando Intel Edison

Rastreador de vuelos en tiempo Real de ADS-B y dispositivo de monitorización utilizando Intel Edison

Vigilancia dependiente automática-Broadcast (ADS-B) es un sistema de vigilancia satelital precisa. ADS-B utiliza tecnología GPS para determinar la ubicación de la aeronave, velocidad y otros datos y difunde que estaciones de información a una red de
3D maze impresa controlada por tu dispositivo Android

3D maze impresa controlada por tu dispositivo Android

Este proyecto comenzó como una manifestación de la Junta de bluetooth HC-05 de nuestro Teen Imagineering Club . Queríamos mostrar cómo podemos usarlo para conectar un Arduino a un dispositivo Android. Buscamos en la web de ideas y este proyecto es el
Cómo medir la contaminación de partículas de aire y compartir los datos en línea

Cómo medir la contaminación de partículas de aire y compartir los datos en línea

Desde que me mudé de Portland, Oregon a Medio Oriente, he sido curioso sobre la contaminación de partículas de aire. Es una de las peores variedades de contaminación del aire en términos de impacto sobre la salud y mortalidad. Asia oriental parece a
Mindflex EEG con datos por Bluetooth

Mindflex EEG con datos por Bluetooth

El Mindflex (y Mindflex Duel--el hardware pertinente se supone que es lo mismo) juguete le permite controlar la altura de una bola con la concentración mental. Voy a explicar cómo instalar un módulo Bluetooth de $10 para hacerlo en un auricular Bluet