GBoard DeviceControl LED Matrix Code

#include "CumulocityPlatform.h"
#include "SIM900.h"
#include <SoftwareSerial.h>
#include <I2C.h>

/*
 *
 * !!! Device control feature is not working with avr-gcc 4.3.2
 * !!! Confirmed to be working with avr-gcc 4.7.2
 *
 */

CumulocityPlatform cPlatform("developer.cumulocity.com", "tenant", "user", "password", "application key");
GSMModule* mod;

char operation[50];
char operationName[15];
int result;
byte x;

void setup() {
  Serial.begin(19200);
  I2c.begin();
  Serial.println(F("Start"));
  pinMode(A3, INPUT); // Sensor plugged to A3 header
  mod = new GSMModule();
  Serial.println(F("Attaching GPRS..."));
  if(mod->attachGPRS("m2m.business", "", "")) {
    Serial.println(F("GPRS attached."));
    cPlatform.setGSM(mod);

    char id[8];
    Serial.println(F("Registering a device..."));
    int result = cPlatform.registerDevice("LEDMatrix", id, 8);

    if(result<0) {
      Serial.println(F("Registration error."));
      while(true);
    } else {
      Serial.print(F("Arduino registered with id: "));
      Serial.println(id);
    }
   //char id[8]="136500";
  } else {
    Serial.println(F("Could not attach GPRS."));
    while(true);
  }
}

void loop() {

  Serial.println(F("\nRetrieving operation from server..."));
  if((result = cPlatform.getPendingOperationFromServer(operationName, 15, operation, 50)) > 0) {
    executeOperation();

    if((result = cPlatform.markOperationCompleted()) > 0) {
      Serial.println(F("Operation marked as completed"));
    } else {
      Serial.println(F("Operation update failed."));
    }
  } else if(result < 0) {
    Serial.println(F("Operation retrieval failed."));
  } else {
    Serial.println(F("No operation awaiting."));
  }

  delay(30000); 
}

void executeOperation() {
  Serial.println(F("Executing operation:"));

//Code for Wire libraray and one LED matrix
//  Serial.println(operationName);
//  Serial.println(operation);
//  Wire.beginTransmission(9); // transmit to device #9
//for(int i=0;i<strlen(operation); i++){
//x=byte(operation[i]);
//Wire.write(x); // sends x
//delay(100);
//Wire.write(x); // sends x
//}
//Wire.endTransmission();    // stop transmitting

//Code for I2C library
for(int j=13;j>8; j--){ 
   I2c.write(j,operation);  
   delay(450);
}
}

Leave a Reply

Your email address will not be published. Required fields are marked *