Difference between revisions of "Urban sensor kit"

From Fab Lab Bcn WIKI
Jump to: navigation, search
(3. Additional Sensors: Air Quality / Water Measurement)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category:Projects]]
 +
 
=Version 1:=
 
=Version 1:=
 
Credits: Felipe Pecegueiro do Amaral Curado, Oriol Carrasco, Alba Armengol Gasul, Luis E. Fraguada
 
Credits: Felipe Pecegueiro do Amaral Curado, Oriol Carrasco, Alba Armengol Gasul, Luis E. Fraguada
Line 99: Line 101:
 
* TOTAL: €845 for 5 units
 
* TOTAL: €845 for 5 units
  
=== 3. Additional Sensors: Air Quality / Water Measurement===
+
=== 3. Additional Sensors===
 +
====Air Quality / Water Measurement====
 
*Libelium / Waspmote Sensors http://www.libelium.com/products/waspmote/sensors
 
*Libelium / Waspmote Sensors http://www.libelium.com/products/waspmote/sensors
 
*Solder-less sensors add-ons http://www.seeedstudio.com/depot/electronic-brick-c-48.html (available at http://www.cooking-hacks.com/index.php/shop/arduino/eb-sensor-chassis-v1-1.html )
 
*Solder-less sensors add-ons http://www.seeedstudio.com/depot/electronic-brick-c-48.html (available at http://www.cooking-hacks.com/index.php/shop/arduino/eb-sensor-chassis-v1-1.html )
Line 110: Line 113:
 
=== 6. Technical info Links ===
 
=== 6. Technical info Links ===
 
*[http://www.ladyada.net/make/xbee/modules.html XBee Know How by Ladyada]
 
*[http://www.ladyada.net/make/xbee/modules.html XBee Know How by Ladyada]
 +
 +
=Version 2:=
 +
 +
*Smart Geometry [http://www.buletintupperware.com/ tupperware april] [http://smartgeometry.org/index.php?option=com_community&view=groups&task=viewgroup&groupid=6&Itemid=0]
 +
 +
=Version 3:=
 +
*Data tree (DIY Shields for Arduino) [http://academy.cba.mit.edu/labs/barcelona/areti.mark/DataTree/DataTree.html Data Tree, by Areti Markopoulou, Fab Academy 2011]
 +
 +
=Version 4:=
 +
*Custom Arduino Shield. More info [[ASK Shield]]
 +
 +
 +
 +
=Sensor notes =
 +
 +
==Sound sensor==
 +
 +
db son una unidad que mide la ratio entre una unidad de ref y una de entrada. además son una unidad logarítmica, su incremento no es lineal, esto es útil pq el rango de representación es muy grande
 +
 +
importante no liarse entre db's de potencia y db's de presión sonora http://en.wikipedia.org/wiki/Sound_pressure
 +
 +
para calcular los dB  (dB así a secas es potencia o sea W) dB = 10 * Log (PowerInput/ PowerReference)
 +
 +
de momento yo he probado de calcular dBv... prueba el código y dime el que
 +
 +
int dBv = 20 * log(analogRead(A0) / 0.00378787879);  // esto es dBv = 10 * Log (Vrms / Vrms referencia) // 0.00378787879 sale de considerar que 0dBv son 0.775V
 +
 +
también así a saco al igual podrías probar
 +
 +
int dBv = 20 * log(analogRead(A0) / calibration);
 +
 +
calibration saldría de comparar con el iphone…
 +
 +
===para probar...===
 +
 +
<code>
 +
int cycles = 20;
 +
long reads = 0;
 +
int average = 0;
 +
double dB = 0;
 +
 +
 +
void setup() {
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop(){
 +
  for (int i=0; i >= cycles; i++){
 +
    reads = analogRead(A0) + reads;
 +
  }
 +
  average = reads / cycles;
 +
  reads = 0;
 +
  dB = 20*log10(average/250);
 +
  Serial.println(dB, DEC);
 +
}
 +
</code>
 +
 +
----
 +
 +
en principio el valor tendría que ser el valor RMS pero como no queremos medir una onda súper precisa sino ruido ambiental yo creo que podría funcionar a saco.
 +
 +
aun así medir dB directamente con el ADC por lo que he leído no es nada fácil pq en seguida te quedas o a 0 o te  quedas saturado, 1023. estos se podría solucionar con un amplificador logarítmico algo que es como un op amp normal [http://buletinnews.com/ berita news] pero que en vez de amplificar la senyaseñall linealmente (como una multiplicación) la amplifica exponencialmente por lo que cuanto más pequeño es el número más resolución te da.
 +
 +
----
 +
 +
[http://mit.ocw.universia.net/6.101/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-101Introductory-Analog-Electronics-LaboratoryFall2002/0F920C22-BEF2-47C4-A4BE-499279077036/0/decibels.pdf Articulo sobre calculo de decibelios]

Latest revision as of 01:31, 17 January 2017


Version 1:

Credits: Felipe Pecegueiro do Amaral Curado, Oriol Carrasco, Alba Armengol Gasul, Luis E. Fraguada Production Assistance: Fab Lab BCN

Parts List

  • 1 x Arduino Deumilanove
  • 1 x Light Sensor (Cadmium Sulfide Sensor, Light Dependent Resistor, Photocell)
  • 1 x Sound Sensor
  • 1 x Motion Sensor (Passive InfaredRed Sensor)
  • 1 x Temperature Sensor
  • 1 x Electromagnetism Sensor
  • Wood Case (laser cut)
  • Wire
  • Resistors
Urban Sensing Kit sm.png
Image:Felipe Pecegueiro do Amaral Curado


IMG 6540 sm.jpg

Goals for version 2

1. Find sensors who’s data can be easily read and translated to useful units (sound sensor - dB)

2. Autonomy of kit: GPS Unit, On Board Data Logger, Battery

Power Options

Option 1: Custom Shield

Protoshield with all of the components we want: GPS (positioning), XBee (communication), SD (data storage)

  • Pros: Totally customizable system
  • Cons: More startup overhead

Option 2

Option 3a

Option 3b

Option 4

Option 5

Option 6

  • TOTAL: €845 for 5 units

3. Additional Sensors

Air Quality / Water Measurement

4. Size / Packaging

Fabricated at Fab Lab BCN

5. Visual Feedback (Tenemos en el Fab Lab)

6. Technical info Links

Version 2:

Version 3:

Version 4:


Sensor notes

Sound sensor

db son una unidad que mide la ratio entre una unidad de ref y una de entrada. además son una unidad logarítmica, su incremento no es lineal, esto es útil pq el rango de representación es muy grande

importante no liarse entre db's de potencia y db's de presión sonora http://en.wikipedia.org/wiki/Sound_pressure

para calcular los dB (dB así a secas es potencia o sea W) dB = 10 * Log (PowerInput/ PowerReference)

de momento yo he probado de calcular dBv... prueba el código y dime el que

int dBv = 20 * log(analogRead(A0) / 0.00378787879); // esto es dBv = 10 * Log (Vrms / Vrms referencia) // 0.00378787879 sale de considerar que 0dBv son 0.775V

también así a saco al igual podrías probar

int dBv = 20 * log(analogRead(A0) / calibration);

calibration saldría de comparar con el iphone…

para probar...

int cycles = 20; long reads = 0; int average = 0; double dB = 0;


void setup() {

 Serial.begin(9600);

}

void loop(){

 for (int i=0; i >= cycles; i++){
   reads = analogRead(A0) + reads; 
 }
 average = reads / cycles;
 reads = 0;
 dB = 20*log10(average/250);
 Serial.println(dB, DEC);

}


en principio el valor tendría que ser el valor RMS pero como no queremos medir una onda súper precisa sino ruido ambiental yo creo que podría funcionar a saco.

aun así medir dB directamente con el ADC por lo que he leído no es nada fácil pq en seguida te quedas o a 0 o te quedas saturado, 1023. estos se podría solucionar con un amplificador logarítmico algo que es como un op amp normal berita news pero que en vez de amplificar la senyaseñall linealmente (como una multiplicación) la amplifica exponencialmente por lo que cuanto más pequeño es el número más resolución te da.


Articulo sobre calculo de decibelios