I’m creating a weather sonification project for my Masters Dissertation. I’m using a weather data input stream to control a sound generation system in Max MSP.
I’ve got an Arduino Uno and Sparkfun Weather Shield. I have it hooked up with the additional weather meters (to get wind direction/wind speed and rain). When I load the Arduino software and load in a Weathershield Sketch (weather_station_example) it gathers all the data like humidity, temp, wind speed and direction, light etc. so I know I’ve soldered the pins correctly and its working.
I want to get this data into Max MSP so Ive been using the arduino2max patch and the StandardFirmata sketch in Arduino 1.0.5. It reads the analog and digital pins ok. The problem that I have is that the wind speed and rain are on the digital pins so i’m just getting just a 0 or a 1, obviously a binary number.
I really need the wind speed, rain displaying a large number so I can use that to control a sound parameter etc. Can you think of a way to do this? I have tried almost everything I can think of and I can’t find any help searching on these forums. can I route these sensors to the spare analog inputs on the uno? I’m struggling to understand how the weather shield sketch can grab all the data and represent it using the weather_station_example but in Max, I’m only seeing those binary values as mentioned above.
When I use the Maxuino patch, I get the analog pin data and the digital pin data.
also, I can’t see the humidity and temp data in the arduino2max or the maxuino patch.
Any help in this matter would be very much appreciated and I thank you for your time in advance.
I recommend not using the Maxuino or other Max libraries for this applicatoin. You can just send data to max via serial. You have to parse the serial data in Max and there are many ways to do this, below is one. Please let us know if you have a website for your project/research.
Arduino:
void loop () {
// for the DHT temperature sensor
float h = dht.readHumidity();
Serial.print("/Humidity/");
Serial.println(h);
delay(2000);
}