Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MMA8451Q NVIC_set_all_priorities TSI cc3000_hostdriver_mbedsocket mbed
Fork of AxedaGo-Freescale by
Revision 4:3c2e21757a9c, committed 2014-01-13
- Comitter:
- asmithmd1
- Date:
- Mon Jan 13 18:50:07 2014 +0000
- Parent:
- 3:ec0169cbc94d
- Child:
- 5:c99347399fb7
- Commit message:
- First commit Freescale board with Adafruit CC300 sheild sending data with AMMP
Changed in this revision
--- a/HTTPClient.lib Tue Oct 08 14:54:06 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/users/donatien/code/HTTPClient/#1f743885e7de
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA8451Q.lib Mon Jan 13 18:50:07 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/JoKer/code/MMA8451Q/#2d14600116fc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TSI.lib Mon Jan 13 18:50:07 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/vsluiter/code/TSI/#4dc2f5a3a731
--- a/init.cpp Tue Oct 08 14:54:06 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2006-2013 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "main.h"
-#include "mbed.h"
-
-#if (MY_BOARD == WIGO)
-
-#include "NVIC_set_all_priorities.h"
-
-/**
- * \brief Wi-Go initialization
- * \param none
- * \return none
- */
-void init() {
- DigitalOut PWR_EN1(PTB2);
- DigitalOut PWR_EN2(PTB3);
-
- // Wi-Go set current to 500mA since we're turning on the Wi-Fi
- PWR_EN1 = 0;
- PWR_EN2 = 1;
-
- NVIC_set_all_irq_priorities(3);
- NVIC_SetPriority(SPI0_IRQn, 0x0); // Wi-Fi SPI interrupt must be higher priority than SysTick
- NVIC_SetPriority(PORTA_IRQn, 0x1);
- NVIC_SetPriority(SysTick_IRQn, 0x2); // SysTick set to lower priority than Wi-Fi SPI bus interrupt
- PORTA->PCR[16] |=PORT_PCR_ISF_MASK;
- PORTA->ISFR |= (1 << 16);
-}
-
-#elif (MY_BOARD == WIFI_DIPCORTEX)
-
-/**
- * \brief Wifi DipCortex initialization
- * \param none
- * \return none
- */
-void init() {
- NVIC_SetPriority(SSP1_IRQn, 0x0);
- NVIC_SetPriority(PIN_INT0_IRQn, 0x1);
-
- // SysTick set to lower priority than Wi-Fi SPI bus interrupt
- NVIC_SetPriority(SysTick_IRQn, 0x2);
-}
-
-#else
-
-/**
- * \brief Place here init routine for your board
- * \param none
- * \return none
- */
-void init() {
-
-}
-
-#endif
--- a/main.cpp Tue Oct 08 14:54:06 2013 +0000
+++ b/main.cpp Mon Jan 13 18:50:07 2014 +0000
@@ -16,31 +16,32 @@
#include "mbed.h"
#include "cc3000.h"
#include "main.h"
+#include "TSISensor.h"
+#include "MMA8451Q.h" //accelerometer
+#include "TCPSocketConnection.h"
-#include "HTTPClient.h"
using namespace mbed_cc3000;
-/* cc3000 module declaration specific for user's board. Check also init() */
-#if (MY_BOARD == WIGO)
-cc3000 wifi(PTA16, PTA13, PTD0, SPI(PTD2, PTD3, PTC5), PORTA_IRQn);
-Serial pc(USBTX, USBRX);
-#elif (MY_BOARD == WIFI_DIPCORTEX)
-cc3000 wifi(p28, p27, p30, SPI(p21, p14, p37), PIN_INT0_IRQn);
-Serial pc(UART_TX, UART_RX);
+/* cc3000 module declaration specific for user's board */
+#if (MY_BOARD == WIFI_SHEILD_ADAFRUIT)
+cc3000 wifi(PTA12, PTA5, PTD0, SPI(PTD2, PTD3, PTD1), PORTA_IRQn);
+Serial pc(USBTX, USBRX); // tx, rx
#else
#endif
tUserFS user_info;
-HTTPClient http;
+
char str[512];
-#ifndef CC3000_UNENCRYPTED_SMART_CONFIG
- const uint8_t smartconfigkey[] = {0x73,0x6d,0x61,0x72,0x74,0x63,0x6f,0x6e,0x66,0x69,0x67,0x41,0x45,0x53,0x31,0x36};
-#else
- const uint8_t smartconfigkey = 0;
-#endif
+MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
+
+DigitalOut rled(LED_RED);
+DigitalOut gled(LED_GREEN);
+// DO NOT Use LED_BLUE - pin PTD1 already in use by WiFi chip
+
+
/**
* \brief Print cc3000 information
@@ -79,32 +80,6 @@
}
}
-/**
- * \brief Connect to SSID without security
- * \param ssid Name of SSID
- * \return none
- */
-void connect_to_ssid(char *ssid) {
- wifi.connect_open((uint8_t *)ssid);
-}
-
-/**
- * \brief First time configuration
- * \param none
- * \return none
- */
-void do_FTC(void) {
- printf("Running First Time Configuration \r\n");
- wifi.start_smart_config(smartconfigkey);
- while (wifi.is_dhcp_configured() == false) {
- wait_ms(500);
- printf("Waiting for dhcp to be set. \r\n");
- }
- user_info.FTC = 1;
- wifi.set_user_file_info((uint8_t *)&user_info, sizeof(user_info));
- wifi._wlan.stop();
- printf("FTC finished.\n");
-}
/**
* \brief HTTP client demo
@@ -112,105 +87,98 @@
* \return int
*/
int main() {
- init(); /* board dependent init */
- pc.baud(115200);
+ rled = 1;
+ gled = 1;
+ TSISensor touchSensor;
+ const char* SERVER_ADDRESS = "dev6-connect.axeda.com";
+ const int SERVER_PORT = 52689;
+ char *MODEL = "mbed";
+ char *SERIAL_NUM = "xkcd321";
+ char http_cmd[800];
+ char buffer[800];
+ int returnCode = 0;
+ int BGL=0;
+ TCPSocketConnection socket;
+
+ float accels[3];
+ float resting,reading;
+ float THRESHOLD = 0.15;
+ float position;
+
+
+ pc.printf("Starting up...\n");
+
+
+ pc.printf("Before wifi.start...\n");
wifi.start(0);
printf("cc3000 HTTP client demo. \r\n");
print_cc3000_info();
printf("Attempting SSID Connection. \r\n");
-#if (USE_SMART_CONFIG == 1)
- if (user_info.FTC == 1) {
- wifi._wlan.ioctl_set_connection_policy(0, 1, 1);
- } else {
- printf("Smart config is not set, starting configuration. \r\n");
- do_FTC();
- printf("Smart config is set. Please restart your board. \r\n");
- while(1);
- }
-#else
+
wifi._wlan.ioctl_set_connection_policy(0, 0, 0);
-#ifndef CC3000_TINY_DRIVER
-#ifdef AP_KEY
+
connect_to_ssid(SSID, AP_KEY, AP_SECURITY);
-#else
- connect_to_ssid(SSID);
-#endif
-#else
- connect_to_ssid(SSID);
-#endif
-#endif
- printf("DHCP request \r\n");
+
+ printf("send DHCP request \r\n");
+ gled =0;
+
+
while (wifi.is_dhcp_configured() == false) {
+
wait_ms(500);
printf(" Waiting for dhcp to be set. \r\n");
+
}
+
+ gled = 1; rled = 0;
tNetappIpconfigRetArgs ipinfo2;
wifi.get_ip_config(&ipinfo2); // data is returned in the ipinfo2 structure
printf("DHCP assigned IP Address = %d.%d.%d.%d \r\n", ipinfo2.aucIP[3], ipinfo2.aucIP[2], ipinfo2.aucIP[1], ipinfo2.aucIP[0]);
- //GET data
- printf("\r\nTrying to fetch page... \r\n");
- int ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128);
- if (!ret)
- {
- printf("Page fetched successfully - read %d characters \r\n", strlen(str));
- printf("Result: %s \r\n", str);
- }
- else
- {
- printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode());
- }
+ wait(0.7);
+ acc.getAccAllAxis( accels );
+ resting = abs(accels[0]) + abs(accels[1]) + abs(accels[2]);
+ printf("Set up resting accelerometer - %.2f\r\n", resting);
+ wait(0.1);
- //POST data
- HTTPMap map;
- HTTPText inText(str, 512);
- map.put("Hello", "World");
- map.put("test", "1234");
- printf(" \r\nTrying to post data... \r\n");
- ret = http.post("http://httpbin.org/post", map, &inText);
- if (!ret)
+ while(1)
{
- printf("Executed POST successfully - read %d characters \r\n", strlen(str));
- printf("Result: %s \r\n", str);
- }
- else
- {
- printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode());
- }
- //PUT data
- strcpy(str, "This is a PUT test!");
- HTTPText outText(str);
- //HTTPText inText(str, 512);
- printf(" \r\nTrying to put resource... \r\n");
- ret = http.put("http://httpbin.org/put", outText, &inText);
- if (!ret)
- {
- printf("Executed PUT successfully - read %d characters \r\n", strlen(str));
- printf("Result: %s \r\n", str);
- }
- else
- {
- printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode());
+ acc.getAccAllAxis( accels );
+ reading = abs(accels[0]) + abs(accels[1]) + abs(accels[2]);
+ if ( abs( resting - reading ) > THRESHOLD ){
+ wait(0.1);
+ position = touchSensor.readPercentage();
+ printf( "BUMPED resting %.2f read %.2f position %.2f \r\n", resting, reading, position );
+ rled = 1;
+ gled = 1;
+
+ printf("Before connect\r\n");
+ while ( socket.connect(SERVER_ADDRESS, SERVER_PORT) < 0) {
+ printf("Unable to connect to (%s) on port (%d) \r\n", SERVER_ADDRESS, SERVER_PORT);
+ wait(1);
+ printf(" - retring to connect");
+ }
+ printf( "connected");
+ BGL = position * 300;
+ sprintf(http_cmd, "POST /ammp/data/1/%s!%s HTTP/1.1\r\nContent-type: application/json\r\nContent-Length: 52\r\n\r\n{\"data\":[{\"dataItems\":{\"bar\":\"camp\",\"BGL\":%d}}]}\r\n\r\n", MODEL, SERIAL_NUM, BGL);
+ socket.send_all(http_cmd, sizeof(http_cmd)-1);
+
+ returnCode = socket.receive(buffer, sizeof(buffer)-1);
+
+ buffer[returnCode] = '\0';
+ printf("Sent->%s<-\r\n",http_cmd);
+ printf("Received %d chars from server:\n\r%s\n", returnCode, buffer);
+
+ socket.close();
+ printf("Socket closed\r\n");
+ rled = 0;
+ gled = 0;
+ }
+
}
-
- //DELETE data
- //HTTPText inText(str, 512);
- printf(" \r\nTrying to delete resource... \r\n");
- ret = http.del("http://httpbin.org/delete", &inText);
- if (!ret)
- {
- printf("Executed DELETE successfully - read %d characters \r\n", strlen(str));
- printf("Result: %s \r\n", str);
- }
- else
- {
- printf("Error - ret = %d - HTTP return code = %d \r\n", ret, http.getHTTPResponseCode());
- }
-
- printf("Demo completed. \r\n");
- wifi.disconnect();
+
}
--- a/main.h Tue Oct 08 14:54:06 2013 +0000 +++ b/main.h Mon Jan 13 18:50:07 2014 +0000 @@ -18,9 +18,12 @@ #define WIGO 1 #define WIFI_DIPCORTEX 2 -#define UNDEFINED 3 +//#define UNDEFINED 3 +#define WIFI_SHEILD_ADAFRUIT 3 -#define MY_BOARD WIGO + + +#define MY_BOARD WIFI_SHEILD_ADAFRUIT // use this defines in AP_SECURITY #define NONE 0 @@ -28,14 +31,15 @@ #define WPA 2 #define WPA2 3 -// use smart config -#define USE_SMART_CONFIG 0 + // Default SSID Settings -#define AP_KEY "test" -#define AP_SECURITY WPA2 // WPA2 must be enabled for use with iPhone or Android phone hotspot! -#define SSID "test" +#define AP_KEY "masterchief" +#define AP_SECURITY WPA // WPA2 must be enabled for use with iPhone or Android phone hotspot! +#define SSID "Synapse" -void init(); + +#define MMA8451_I2C_ADDRESS (0x1d<<1) // accelerometer I2C address + #endif
