In 2014, I saw the information on the release of the Spark Cores. I bought two.
Now I am finally getting around to using them. I just bought a piece of farmland that I plan to use for some light crops and to keep some beehives. I have seen several solutions for monitoring beehives and crops, but I would like to develop my own.
The complication is my only internet is going to be through a cellular phone hotspot so I don’t want to send all my data through the cloud. I think a reasonable approach is to have the spark cores collect the data from sensors and send UDP packets that I can collect over wifi and store on a server.
I have done the deep update and the C3300 update on my Cores, but I am having some trouble with UDP. I know there have been troubles in the past with the Cores and UDP.
So my questions:
In general is this a good plan? Will the old Spark Cores support this type of data collection?
Would I be better off investing in some Photons?
Any advice on getting UDP to work?
(I have an EE degree from the 1980s and haven’t really done any hardware work since that time).
Sounds like an interesting project. Any reason for UDP versus TCP? If you server is local (not on the internet-side of that hotspot) TCP should be just fine.
If you are settled on UDP it would be nice to know what specific issues you are having with UDP. Example code, wiring diagrams, descriptions of issues, etc are super helpful.
What kind of data are you collecting, how much of it, at what frequency, and does it all have to go to the cloud? Can some logic be handled on the device, with the results being transmitted?
Ideally, I would transmit audio data. Many experienced beekeepers can tell when a hive goes queenless by the sound of the bees in the hive. I would like to do a fourier transform of the audible data to try to correlate the frequency spectrum and volume with the state of the bees.
Also, temperature, humidity, weight, IR image, visible image. I suspect the image data will be sent separately from the other sensor data.
Why UDP? Because I understand it is the fastest data transmission method. I suppose I could just send occasional snippets of data by TCP.
Ideally I would set up a website giving beekeepers mathematical tools to help diagnose hive issues based on collected data.
I’ll have to get together a message this weekend with my specific UDP issues. The real question is does UDP really work on the old Spark Core or do I need to buy a Particle Photon to continue the project.
There are several hive monitoring threads and beekeepers here, including one that already did FFT monitoring, as well as temperature etc. Search a bit in the forum and you will find them.
UDP works fine on the Core with some caveats. If you control both sides of the conversation and are inventing your own packet format carried over UDP, you should be fine. If you are trying to use an existing service over UDP, it depends on whether the service relies on packet boundaries for meaningful data formatting or not and what the computer side expects.
UDP is not really faster than TCP per se, it just has less overhead. But TCP brings retry and ack and things that generally make for assured data transfer.
I find the Core much less pleasurable to code for these days. The TI CC3000 networking part loses its mind at random periods and needs a deep update to get back on track. I have few older cores still online, but Photon is just a lot more reliable for me.
I’m working with another beekeeper who’s using scales to tell if the bees have gone.
And he is using Electrons as base with some clients (e.g. Bluz) to monitore other hives nearby.
I just want to report back that I got the Spark Core working somewhat. I could get it to send a few packets then it would stop (basically disconnect from wifi).
So I ordered a particle photon and it arrived today. With the same code, It has been sending data packets consistently for about an hour now. So far so good. Thanks for everyone’s help on this.