Close

Updates on Exosite and source code

A project log for Internet-of-things with CC3200 Dev Board

Internet-of-things with CC3200 development board or my new wireless Thingamajiggy.

romanRoman 03/28/2016 at 20:410 Comments

I made a couple of changes to the Exosite and the source code. All updates can be downloaded from CC3200 Site and Source code link. My goal is to get numerical data from the accelerometer and display it on the website. So, I have added couple lines of code to the HTTP server callback function. Now the function sends numeric values x-axis to the Exosite.

void SimpleLinkHttpServerCallback(SlHttpServerEvent_t *pSlHttpServerEvent, 
                                SlHttpServerResponse_t *pSlHttpServerResponse){
unsigned char *ptraccX;
…
    ReadAccSensor(); //float *pfCurrTemp
    ptraccX = pSlHttpServerResponse->ResponseData.token_value.data;
    //ptraccY = pSlHttpServerResponse->ResponseData.token_value.data;
    //signed char cAccXT2;
    //signed char cAccYT2;
    //signed char cAccZT2;
    //BMA222ReadNew(&cAccXT2, &cAccYT2, &cAccZT2);
    //volatile static float g_accXIntervalSum = 0;
    //volatile static float g_accYIntervalSum = 0;
    //volatile static float g_accZIntervalSum = 0;
    //char AccX = (char)cAccXT2;		
    //char AccY = (char)cAccYT2;		
    short sTempLenAccX = itoa(g_accXIntervalSum,(char*)ptraccX);// Convert integer to ASCII in decimal base. Convert x-axis value to a decimal string.
    ptraccX[sTempLenAccX++] 	= ' ';
    ptraccX[sTempLenAccX] 	= ' ';


    //short sTempLenAccY = itoa(g_accYIntervalSum,(char*)ptraccY);// Convert integer to ASCII in decimal base. Convert x-axis value to a decimal string.
    //ptracc[sTempLenAccY++] 	= ' ';
    //ptracc[sTempLenAccY] 	= ' ';

    if(g_ucDryerRunning)	    // g_ucDryerRunning is set in void ReadAccSensor()
     {
       //strcpy((char*)pSlHttpServerResponse->ResponseData.token_value.data,"Running");
       //pSlHttpServerResponse->ResponseData.token_value.len += strlen("Running");
       pSlHttpServerResponse->ResponseData.token_value.data = ptraccX;              
       pSlHttpServerResponse->ResponseData.token_value.len += sTempLenAccX;
       //pSlHttpServerResponse->ResponseData.token_value.data = ptraccY;
       //pSlHttpServerResponse->ResponseData.token_value.len += sTempLenAccY;
      }
}

Now I can read x-axis value of the accelerometer. Next step is to get data from Y and Z axis.

After a few hours of hard work and I have managed to send and display data from the other two axis (Y and Z).

BMA222ReadNew function returns the accelerometer readings. The return values are signed char types. I cast them as unsigned char type, I think that is the reason why I get weird readings sometimes.

BMA222ReadNew(&cAccXT1, &cAccYT1, &cAccZT1);

After that I convert HEX data to character string using the itoa () function.

Using brute force I send data and labels from SimpleLinkHttpServerCallback function:

ReadAccSensor(); //float *pfCurrTemp
            	ptraccX = pSlHttpServerResponse->ResponseData.token_value.data;
signed char cAccXT1, cAccYT1, cAccZT1;
            	//unsigned char cAccXTu, cAccYTu, cAccZTu;
            	unsigned char cAccYTu, cAccZTu;
            	//_u8   *cAccXT2;	//_u8     *data;
            	_u8     *cAccYT2;
            	_u8     *cAccZT2;	//_u8     *data;

            	BMA222ReadNew(&cAccXT1, &cAccYT1, &cAccZT1);

            	//cAccXTu = (unsigned char) cAccXT1;
            	cAccYTu = (unsigned char) cAccYT1;
            	cAccZTu = (unsigned char) cAccZT1;

            	//cAccXT2 = &cAccXTu;
            	cAccYT2 = &cAccYTu;
            	cAccZT2 = &cAccZTu;

            	//ptraccX = cAccXT2;
            	ptraccY = cAccYT2;
            	ptraccZ = cAccZT2;

short sLenAccX = itoa(g_accXIntervalSum,(char*)ptraccX);// Convert integer to ASCII in decimal base. Convert x-axis value to a decimal string.
short sLenAccY = itoa(g_accYIntervalSum,(char*)ptraccY);// String that contains Y-axis data
                ptraccY[sLenAccY++] = ' ';
short sLenAccZ = itoa(g_accZIntervalSum,(char*)ptraccZ);// String that contains Z-axis data
                ptraccY[sLenAccZ++] = ' ';

                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = 'X';
                ptraccX[sLenAccX++] = '-';
                ptraccX[sLenAccX++] = 'a';
                ptraccX[sLenAccX++] = 'x';
                ptraccX[sLenAccX++] = 'e';
                ptraccX[sLenAccX++] = 's';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';


                ptraccX[sLenAccX++] = ptraccY[0];
                ptraccX[sLenAccX++] = ptraccY[1];
                ptraccX[sLenAccX++] = ptraccY[2];

                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = 'Y';
                ptraccX[sLenAccX++] = '-';
                ptraccX[sLenAccX++] = 'a';
                ptraccX[sLenAccX++] = 'x';
                ptraccX[sLenAccX++] = 'e';
                ptraccX[sLenAccX++] = 's';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';

                ptraccX[sLenAccX++] = ptraccZ[0];
                ptraccX[sLenAccX++] = ptraccZ[1];
                ptraccX[sLenAccX++] = ptraccX[2]; // typo has to be ptraccY

                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = 'Z';
                ptraccX[sLenAccX++] = '-';
                ptraccX[sLenAccX++] = 'a';
                ptraccX[sLenAccX++] = 'x';
                ptraccX[sLenAccX++] = 'e';
                ptraccX[sLenAccX++] = 's';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
                ptraccX[sLenAccX++] = ' ';
I have updated files in my source code link: CC3200 Site and Source code.

Discussions