Introduction: CC3200 Wi-Fi Board for Internet of Things

About: I am a researcher leading quantum optics labiratory. Previously I was working on development of optical atomic clocks. Electronics is my hobby since childhood when my uncle was bringing me old phones to play a…

Great news for Internet of Things people!

Texas Instruments CC3200-LAUNCHXL board is now supported by Energia v.13+

http://energia.nu/pin-maps/guide_cc3200launchpad/

http://energia.nu/cc3200guide/

Energia is Arduino environment adapted for Texas Insturments chips.

CC3200 can be programmed using TI CCStudio but it is much more complicated to Energia:

Element 14 Blog

Step 1: Energia Installation and Try

After downloading Energia unzip it and click on energia.exe.

No installation, so easy!

Select CC3200 as output board and serial port. I already had device drivers installed from CCStudio.

It is no longer necessary to toggle SOP2 jumper every time for programming. Connect a jumper wire between SOP2 and J8 as shown in picture below.

If WiFi examples do not work for you you might have an lder board version and need to use Uniflash and update bootloader. I did not need to update mine.

Blink example

runs immediately blinking the red LED.


AnalogInput

It did not run as A0 is not specified. How to write input PIN_58 or 58 or ADC1 or analogRead(6)? See next.


AnalogInOutSerial

It displays ADC value on serial and as yellow LED intensity

const int analogInPin = 6; // this is pin number on P1 header PIN_59

const int analogOutPin = 9; // yellow LED


Thermometer TMP006 example did not compile.

QuickTMP006.ino:17:20: fatal error: tmp006.h: No such file or directory.
TMP006.cpp:(.text.setup+0x10): undefined reference to `tmp006::begin(unsigned short)' TMP006.cpp.o: In function `loop': TMP006.cpp:(.text.loop+0x14): undefined reference to `tmp006::getTempStruct(TMP006_TempStruct*)'

Step 2:

WiFi server example

It did not connect to AP. This example is for encrypted network, I had open network. Works after modifying line to: "WiFi.begin(ssid);"

ConnectNoEncription for WiFi works:

Attempting to connect to Network named: OpenWrt ...
You're connected to the network
Waiting for an ip address..
IP Address obtained
SSID: OpenWrt BSSID: F0:0:20:1:79:C4
signal strength (RSSI):0
Encryption Type:0
IP Address: 192.168.1.190
MAC address: 78:A5:4:2E:C1:3E
NetMask: 255.255.255.0
Gateway: 192.168.1.1
SSID: OpenWrt
BSSID: F0:0:20:1:79:C4


SimpleWebserverWiFi
This example generates a page with pushbuttons allowing to switch on red LED on board. It is suitable for switching on/off things over internet for example internet controlled power outlet.

Attempting to connect to Network named: OpenWrt.
You're connected to the network
Waiting for an ip address ..
IP Address obtained
SSID: OpenWrt
IP Address: 192.168.1.190
signal strength (RSSI):0 dBm
To see this page in action, open a browser to http://192.168.1.190
Starting webserver on port 80
Webserver started!

Step 3: ​WiFiHivelyClient

WiFiHivelyClient

Works nicely, but if once the connection is lost it does not reconnect.
analogRead(6) measures from PIN_59.
Result on Xively:

https://xively.com/feeds/363176112

Attempting to connect to Network named: OpenWrt ..
You're connected to the network Waiting for an ip address.
IP Address obtained SSID: OpenWrt
IP Address: 192.168.1.190
signal strength (RSSI):0dBm
connecting...
HTTP/1.1 200 OK
Date: Sat, 13 Sep 2014 12:18:06 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: close
X-Request-Id: ebabd5c32aa8091805293a803012d80cd172fbdd
Cache-Control: max-age=0
Vary: Accept-Encoding
disconnecting

Step 4:

ScanNetworks

finds wifi networks around without connecting. It can do it very fast compared to Windows.

SimpleLink SDK 0.5
MAC: 78:A5:4:2E:C1:3E
Scanning available networks...
** Scan Networks **
number of available networks:3
0) Bumbieris Signal: -88 dBm Encryption: WPA
1) Chernichka Signal: -86 dBm Encryption: WPA
2) OpenWrt Signal: -38 dBm Encryption: None


SendAnEmail

Should send an email from a google mail user to any address.
Needs registration at Temboo account, Temboo API key, google allowing 3-rd party requests, ...

too complicated - did not wish to spend an hour to figure it out.


Hibernate and watchdog

There were no examples fro CC3200. Can somebody, please, help where to get hibernate and watchdog example code. It id so important for battery driven applications? Probably one needs to write binary data into specific counter registers.

Resuming: Energia is good for projects where an example can be taken and modified/combined with antoher example.

Hope this Instructable will make it easier for other people to get IoT projects running.