Re the simple Particle-RPi test program: here’s my latest try (eliminating most C++ crap).
#include #include #define SAFE_UID 1000 // i.e., the "pi" user built into RPi Linux #define MY_PATH "/home/pi" char Rstr[100]; int Ct = 0; void setup() { Particle.variable("dhpi1v", Rstr, STRING); Particle.function("dhpi1f", pifunc); } void loop() { delay(10); // kludge to keep the empty loop from being a cpu hog } int pifunc(String cmd) { int arg = cmd.toInt(); char file[100]; FILE *fp; ++Ct; sprintf(Rstr, "Call count = %d, Arg = %d\n", Ct, arg); sprintf(file, "%s/pi_out.txt", MY_PATH); fp = fopen(file, "w"); fputs(Rstr, fp); fclose(fp); chown(file, SAFE_UID, SAFE_UID); // Works. return Ct; }