- 1 ProposalTemplate
- 2 Status
- 3 Proposal
- 3.1 About Me
- 3.2 Sonic Anemometer / Basic Weather Station
- 3.2.1 Description
- 3.2.2 Sonic AnemoMeter / Basic Weather station
- 3.2.3 Requirement Analysis
- 3.2.4 Remote Connectivity
- 3.2.5 Timeline:
- 3.2.6 Contingency
- 3.2.7 Benefit
- 3.2.8 Suggestions
Student: Manas Mangaonkar
Mentors: Stephanie Lockwood-Childs, Steve Arnold
This Proposal for Sonic Anemometer was accepted in Gsoc 2016,but the chosen ADC proved to be inefficient for sampling at high frequency.
In 2017 again the project was accepted and PRUDAQ was used which solved the sampling and creating trigger for ultrasonic pulse problems.
However Since the final idea is to have a working prototype of a basic weather station with every possible thing ranging from Humidity,temperature to air speed and maybe even pressure.
I discuss what all i plan to implement below.
I have completed the tast required as described on the ideas page, and created a pull request, as listed here
IRC: Pac23 || Pac23xyz
School: vesit Which is a campus of and falls under University of Mumbai
Primary language: English,Hindi
Typical work hours: 9:30 - 23:00 IST GMT/EST/PST to Ist Adjusted Time
Previous GSoC participation: First GSoc Participation, i am excited to be a part of gsoc,since contributing to open source means a lot to me and gsoc will be an special achievement. I got interested in IoT as a teenager,the fact that i could control things to do stuff for me with a single click of a button remotely over the internet or Lan was fascinating and makes life somewhat comfortable.Remotely controlled Air conditioners are a good example of the later,on a hot summer day by the time one reaches home the room is already cooled to perfection since the user activated it before leaving work/school.
Sonic Anemometer / Basic Weather Station
Project name: BeagleBone Sonic Anemometer / Basic Weather Station
Get the Anemometer/Basic weather station prototype working,by implementing the best methods to counter operational Environment Disturbances.
My approach to this problem shall be more software,usability and added sensor's and less anemometer since most of the anemometer code has been taken care of in gsoc 2017.
Sonic AnemoMeter / Basic Weather station
Anemometer's are used world wide by Meterologists,Researchers and Scientists to calculate Three Dimensional Windspeed and turbulence. Sonic Anemometers are however utilised since they aren't affected by their operational environmental Conditions.
I am not going to harp too much on the anemometer part since that was achieved last year with in depth coverage of how it functions Here rather would focus on the whole weather station package.
Sonic Anemometers and other weather station devices cost a lot since majority of them are commercially manufactured. What i plan to implement is on a beagleboard using a single python module to control all of the senors to collect the data from not just the anemometer but also the temperature,pressure,rain and humidity sensor.
From a practical perspective a meteorologist/researcher should be able to deploy the station remotely and get data via the internet,and only access it to change the battery bank/pack maybe even run it on solar(Something that can be done with efficient and large enough panels).
Following hardware could be used to start with:-
- Beaglebone Black/Green(1)
- PRUDAQ/ADC having rate higher than 400ksps per channel(1/2)
- BMP680 Temperature Humidity,pressure and Gas sensor || cheaper Dht sensors
DAQ are the Data Acquisition devices which are used to acquire data from sensors and acts as a bridge between sensors and host computer.
PRUDAQ is a fully open source 40MSPS Data Acquisition (DAQ) cape for the BeagleBone Black or Green designed by Jason Holt and his team at Google Research with a software collaboration from the BeagleLogic creator, Kumar Abhishek(one of the mentors this year).PRUDAQ was created to address a need not currently addressed by the market for a portable and low-cost DAQ system that doesn't compromise on performance.
Since linux is non-preemptive Os it can't be used for realtime measurements,instead the built in PRU would be used for realtime measurements
The BMP680 sensor will be used to measure the air pressure,temperature,humidity and gas since the final aim is to build a complete weather station.The sensor combines all of the small specific application sensors into a single package that roughly costs the same as all the senors individually.Given its small footprint it would be easy to manage manage it the only downside being loosing the modularity offered by individual sensors.Humidity and temperature Sensors can be found for cheaper but they often dont offer the reliability and precision.
Since the station should be deployed remotely,data transfer back to the main server is a very important aspect.Cellular usb modem/satellite internet can be used to beam the data back.
The raw data shall be logged to a json file,at a set interval defined by the user the data shall then be beamed over to the server module.The user shall then choose the factors to automatically generate the graphs using matplotlib. Each individual station having its own graph. The client end module shall be a user friendly gui.
The simplest and cost effective approach to this over the long run would be to send all of the data a mail address. On the client side using the api integration the data would be downloaded automatically to the local database and whatever that has to be done can be done.Even a encrypted p2p link can be setup if desired
The more advance but expensive approach will be to setup a server & database to which the data will be logged on to.There are couple of disadvantages to it though since if the self hosted server faces downtime all of the users will be affected.Hosting it in on a cloud service will have recurring costs given the amount of data that will sent over,another web based approach to this would require all of the costs of the domain,web hosting,dns etc.
A stretch goal shall be to add functionality to individually configure/calibrate all of the sensors remotely,have a web interface.
I have my Finals till may 30th,after that i can commit 55+ hours a week to this project.During finals there's a gap of 4~5 days between each subject exam so during that time i can commit around 35 hours a week.
I will be starting work on this project asap once accepted by reading as much documentation i can get on my hands about beaglebone and the sensors.
During this week i will study the PRUDAQ,pru and BeagleBone documentation thoroughly.Study all the pinout diagrams,spec sheets and test all the hardware and sensors.
Week 2 - 4
By now i should know all of technical stuff and armed with that i shall begin writing the framework for rest of the addon modules(barometer,temp, humidity).
Deliverables : All of the core modules for the added sensors shall be ready and tested individually
Build the physical 3 axis anemometer using sheet metal and copper pipes in the metal shop of my college.
Wrap/merge the gsoc 2017 anemometer code with the main module.
Test it in a instrumentation engineering lab i have access to. Start adding the data storing model and building the front end module.
Complete the data storing model and work on the backend transmission module.
Prepare the final presentation slides and video.
What will you do if you get stuck on your project and your mentor isn’t around?
If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.
Is there anything else we should have asked you?