Prototyping a device to send useful data over the Helium network

Hey all, I’m trying to finish off a prototype device that measures the inventory on a grocery store shelf.

I want to collect sensor data, transmit it over the Helium Network and trigger an email to myself with that data.

Those are the three main components of this project, which I’ve completed in isolation. But I’m struggling to combine them.

Ideally, other people will find this struggle relatable and any answers illuminating.

The three complete components:

  1. Grove Ultrasonic Ranger.

And here’s my code to handle three sensors into base shield, which when plugged into a Seeduino works perfectly:

#include "Ultrasonic.h"

Ultrasonic ultrasonic(6);
Ultrasonic ultrasonic1(7);
Ultrasonic ultrasonic2(8);

void setup()
{
Serial.begin(9600);
}
void loop()
{
long RangeInInches0;
long RangeInInches1;
long RangeInInches2;    Serial.println("Light Roast Coffee ");
RangeInInches0 = ultrasonic.MeasureInInches();
Serial.print((13-RangeInInches0)/2);//0~157 inches
Serial.println(" bags");
delay(2000);

Serial.println("House Coffee ");
RangeInInches1 = ultrasonic1.MeasureInInches();
Serial.print((13-RangeInInches1)/2);//0~157 inches
Serial.println(" bags");
delay(2000);

Serial.println("Dark Roast Coffee ");
RangeInInches2 = ultrasonic2.MeasureInInches();
Serial.print((13-RangeInInches2)/2);//0~157 inches
Serial.println(" bags");
delay(2000);
  1. The Arduino Quickstart guide - works great with the recommended discovery board. I can see data in the Helium console.

  2. The IFTTT Guide - was working before the pivot to LoraWAN and I presume still works.

So the next obvious step to me is to take the code above and combine it with the code from the Arduino Quickstart guide.

Here are my questions:

  • Can I simply plug the base shield into the Discovery Board?
  • If so, how do I tell the Discovery board what data to collect? i.e., Where do I put the above code in the quickstart sketch?
  • Or, can I use the Arduino Quickstart guide, but in place of the discovery board, use the Seeeduino instead? Will it transmit over LoraWAN?
  • Finally, once the data is flowing, how can I style that into a human readable form?

Thanks for any help!

-Zac

Hey, Zac!
Happy to see you developing on the platform, and hope I can help answer your questions.

  • Yes, you can just plug the Grove base shield into the Discovery board via the Arduino UNO v3 headers, however you must check the pinout in the following documents https://www.st.com/en/evaluation-tools/b-l072z-lrwan1.html#resource as I believe some of the Analog lines are not pass-through. There is also a 3v3/5v switch on the shield that you should be aware of.
  • You want all of your data-acquisition routines to be somewhere within your loop, but you want to be careful not to throw your radio timing off. This sometimes has to be massaged. Will the readings be done on an interrupt, timed interval?
  • The Seeeduino LoRaWAN and LoRaWAN w/ GPS boards should be able to work with the quickstart quide. I have a couple on my bench… I will grab one here in a second and verify this. (IIRC, they use a different set of libraries for LoRa)
  • Once you get data moving, you can pipe the payloads through to an endpoint (AWS or IFTTT for example).

-Travis

1 Like

Thanks Travis, tremendously helpful. There are so many little things I don’t know - this info will help break some of the log jam.

Ideally, the readings would be done once daily, with an option to pull readings on demand.