Our team makes small, research-grade spectrometers with a focus on rugged design.
These instruments have no moving parts and are very popular for remote applications and extreme environments (we have a couple of projects on the International Space Station).
Many of our customers want to be able to operate their instruments remotely. They might set up a project to monitor plankton from a research buoy; measure solar irradiance from a weather balloon; set up research stations in the Amazon to measure the light transmission of rainforest canopy at different times of year; conduct snow reflectance measurements in Alaska; applications are endless.
One of our colleagues, Scott Jordan, wrote a fantastic bit of code to send JSON interface commands and receive X,Y spectral data as long as the spectrometer is connected to an internet connected computer. Using this code, we can theoretically conduct research from anywhere around the world.
We were very excited when we saw the Nova and what it could do because it opens up new (affordable) possibilities for sending and receiving data to our instruments.
My colleague, Sebastian Gondor, wired up the project and tested the code. Seba made modifications to our code to accommodate for the Nova's eccentricities.
We nearly didn't publish this because our instrument outputs 2048 data points which is too large for the nova to do real-time communication with. Originally, we could only send very small amounts of data and a user on the community showed us how to expand the data limit a little. We ended up interlacing the data and cutting out every other pixel to give a full spectrum. We thought about packeting the data but it was too complicated and would slow down the system.
Overall, from a viewpoint of "proof of concept," the project is a huge success!
The existing setup and code can be used to conduct research from a distance without having to collect time-series data and physically retrieve the instrument.
Accessing Raspberry Pi Zero W without a monitorIf you don't have a monitor and a keyboard to access your Raspberry Pi Zero W like us, don't panic! There is a cool way to access it without anything of that, you just need the following materials:
- Raspberry Pi Zero W
- Micro SD card
- Raspbian Stretch Lite (in our case)
- Etcher to mount OS image
- Putty for SSH access
And then is as simple as following this tutorial.
Which steps are basically these:
- Flash the Micro SD card with the OS using Etcher
- Enable SSH by adding an empty file called “ssh”
- Enable auto-connect to your wifi by adding the file “wpa_supplicant.conf” with your wifi configuration
Done! Now you can use Putty to access your Raspberry Pi Zero W remotely! Isn't that cool!?
Install Hologram Nova Python SDKNow that you have access to your Raspbian OS (it means that you already have internet access!) then you can install Nova tools following this tutorial.
Materials:
- Raspberry Pi Zero W
- Hologram Nova with SIM card activated
It only takes two lines to install Hologram Nova python drivers and now you are ready to send/receive data to/from the dashboard!
Due to copyrights we are not able to publish the drivers to control Stellarnet products, but basically you only need to install pyusb 1.0.0a3 and copy the drivers to Raspbian OS.
Hardware- USB Charger
- USB Hub
- USB Adapter
- Raspberry Pi Zero W
- NOVA Hologram
- StellarNet Spectrometer
We also created this function to check incoming SMS so we can now configure the Spectrometer remotely and also ask for information!
In the main loop it will send the spectrum every 30 minutes (by default) or every pull time configured, and also check incoming SMS.
As soon as we run the python script it send the first spectrum, and then will do it every "pull time"
Now let's try to talk with the spectrometer using SMS...
We have a new message!
And here is the answer:
############################################################
This is the end of the post and we want to thank you for reaching the end!
Now the sky is the limit!
Thanks!
StellarNet team
Comments
Please log in or sign up to comment.