Losant is good but in my instance I cannot get what I need at a reasonable price. I have therefore used Thingsboard.io CE version (open source and free) on an Ubuntu 18.04 server on a simple low cost dedicated PC and have had great success. YMMV
Losantās free service has allowed me to do everything I have ever wanted for more than a year now. See if they still provide sandbox accounts and you should be good to go, I havenāt found anything else that is near as nice for no charge.
@worldburger Grafanaās interface is pretty if you are looking for a free alternative. I know SORACOM has a āfreeā hosted version. (you need to use their data pipeline though )
I actually self-host my instance using InfluxDB as the backend. Itās been running since early April in one capacity or another. If youāre not afraid of a little bit of Docker dev ops you can get it up and running quick. Plus it integrates nicely with Particle Webhooks.
Dear Eugene,
I red the forum and saw you got it working on a raspberry. Could you be so kind to share the code with meā¦there is limited documentation of the sps30 and python. I want to built this for our lab at the university of twente in Enschede, The Nederlands, as we are using fumed silicaā¦
I hope you are willing to share the code,
Thanks in advance,
Kind regards,
Andries van Swaaij
Hi Andries,
I used the Sensirion sample implementation code from their Github. Here is what you need to do get it working on a raspberry pi running Linux.
- Pull the code from their repo:
ā$ git clone https://github.com/Sensirion/embedded-uart-sps.gitā - Run: ā$ make releaseā
- cd into the release directory and then replace the āsensirion_uart_implementation.cā file with the one in āsample-implementations/linux/sensirion_uart_implementation.cā
ā$ cd release/sps30-uart-3.0.0ā
ā$ sudo rm sensirion_uart_implementation.cā
ā$ sudo mv sample-implementations/linux/sensirion_uart_implementation.c ./ā - Plugin the Sensirion SPS30 sensor using the USB cable from the dev kit into your raspberry pi. By default, it should appear under /dev/ttyUSB0 if you do not have anything else plugged into your USB ports of your raspberry pi.
- Compile the code
ā$ sudo gcc *.c -sps30ā
6 Run your program
ā$ sudo ./sps30ā
This is what basically worked for me. Let me know if you any issues with the steps laid out above.
Thanks,
Eugene
Hi, I am new to Particle devices and I am working with the PMS 5003 sensor on Boron and trying to output air quality values on my computer from Workbench. I have tried to run several of the codes from this thread on my computer but there were none that have successfully worked for me.
I decided to just go back to the basics and obtain raw data values and move forward from there but I am not sure what the next steps are.
//Just Reading Bits From the PMS 2.5 5003
SYSTEM_MODE(MANUAL);
//int PMSsignal = D10; //voltage signal from PMS
int val = 0;
int analogValue = 0; // variable to hold the analog value
int incomingByte = D10; // for incoming serial data
void setup() {
Cellular.off();
Serial1.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial1.available() > 0) {
// read the incoming byte:
incomingByte = Serial1.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, HEX);
}
}
This rudimentary code reads out a series of 5 raw values every second I was wondering if you have an idea on how to proceed from here or helpful pointers on some code I may have missed along the way. It seems that Photon/Electron codes from previous posts do not work with Boron if I am not utilizing the internet/LTE features. Thanks for your support!
Hard telling without seeing the code thatās causing this.
This seems to be the place to ask this question:
I have an SPS30, and got the library from: paulvha / sps30
I have everything hooked up and just trying to run the sample program with the library using a MEGA with UART. It reads out the mass concentrations with reasonable values but just reads 0ās for the number concentration values and the average. It also never reads a product name or article code in the header (but I can much less about this). Does anyone know why this is? I have not edited the code or the libraries at all, but would really like to have the number concentrations.
Thanks in advance.
RMT
Try commenting out the #define INCLUDE_I2C 1
line. I remember this worked for me when I was using a photon.
Hi
What is the final code then, please
Pedro
Great, that worked! (but I had to try a couple of times since editing the .h file with multiple versions of the library installed gave compile issues).
Thanks!
Hi all.
I will admit to be a complete novice with programming but wanted to tinker with the BME280 and the SPS30 particle sensor.
Iāve followed the work of paulvha and have tried compiling his code (SPS30.ino, printf.h, sps30.cpp and sps30.h) from Example1_sps30_BasicReadings for my particle photon but get a number of undefined reference errors
undefined reference to āSPS30::GetErrDescription(unsigned char, char*, int)ā
Unfortunately, despite more that a bit of trial and error Iām simply not up to solving this problem. Iāve got a long way to go
Iād appreciate some help so I can start playing around with this device as I learn!
Thanks
Cory
I guess you are using Web IDE, right?
Can you provid a SHARE THIS REVISION link to have a look at your project - e.g. whether it is setup correctly.
Wow this is so neat! Since Iām so new, I wonāt be surprised if Iāve got something wrong. Iāve been able to get simple things to work but this is just a tick more complicated.
This was an easy fix.
You cannot have a sps30.ino
file along side an sps30.cpp
file.
The .ino
preprocessor will convert that into an sps30.cpp
file consequently overwriting/hiding the other file.
Just rename the sps30.ino
to something like test.ino
and youāll be set.
I really appreciate your help! It looks like its working. So much for me to learn yet!
Thanks
Looking for a bit of additional help. Iāve been able to compile Example 1 (Thanks Scruff) but still having problems connecting to the device. The sps30 device has been wired to connect by I2C (with pull up resistors) and when I run an I2C scan I get:
I2C device found at address 0x69 !
So I assume that I have things wired correctly and when I execute the code I get:
Trying to connect
could not probe / connect with SPS30.
I have also tried wiring for a serial connection and updated the .ino file with the following based on earlier comments in this thread
#define TX_PIN 8
#define RX_PIN 8
When I try to run the code I get the same
Trying to connect
could not probe / connect with SPS30.
Itās clearly possible that I have missed some other required modification to the code
https://go.particle.io/shared_apps/5e652fcea3793e000c66430c
If anyone could help with some additional insights for troubleshooting Iād appreciate it!
Cory
Hi,
Continuing to work with the SPS30 and having success with serial and I2C. Wanted to now extend to the sketch to the dual device SPS30/BME280 (pauvha Example 5). Iām running into compile challenges related to the BME280.
dual_sensor.ino:255:12: āclass BME280ā has no member named āsetI2CAddressā
dual_sensor.ino:257:16: āclass BME280ā has no member named ābeginI2Cā
As Iām still learning, I think that this is related to the SparkFunBME280.h library that is included. But I donāt know how to resolve. Can anyone whoās been able to get this sketch to run, let me know what I may be missing?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Iāll answer my own question here.
Just realized that by grabbing the SparkFunBME280.h library from github and including it rather than associating to the library supported by the IDE was the trick!
Looks like Iām running
In March 2020 Sensirion has released a new version of the SPS30 datasheet. It shows that over the past year (or so) it has slip-streamed new firmware with new functions ( like sleep, wakeup, device status) as well as update / more information to existing functions. The SPS30 library (https://github.com/paulvha/sps30) has been updated to version 1.4. It does not only solve a couple of issues but mainly takes these new changes into account. Depending on the firmware level on your SPS30 you can take advantage of them.
@paulvha Thanks for keeping us updated!