{"id":3803,"date":"2014-10-11T17:25:24","date_gmt":"2014-10-12T01:25:24","guid":{"rendered":"http:\/\/www.corbinstreehouse.com\/blog\/2014\/10\/adafruit-cc3000-webduino-arduino-web-server-over-wifi\/"},"modified":"2018-11-03T13:36:23","modified_gmt":"2018-11-03T20:36:23","slug":"adafruit-cc3000-webduino-arduino-web-server-over-wifi","status":"publish","type":"post","link":"https:\/\/www.corbinstreehouse.com\/blog\/2014\/10\/adafruit-cc3000-webduino-arduino-web-server-over-wifi\/","title":{"rendered":"Adafruit CC3000 + Webduino = Arduino Web Server over Wifi"},"content":{"rendered":"<p id=\"top\" \/>\n<p>Adafruit has a <a href=\"http:\/\/www.adafruit.com\/product\/1469\">CC3000 breakpoint board<\/a> for $35 on their site. Rather expensive, considering the chip should be $10, but it adds some nice features and they wrote a library for it.<\/p>\n<p><b>Cut to the chase:<\/b> for a rather full featured Arduino web server with the CC3000 chip, check out my port of <a href=\"https:\/\/github.com\/corbinstreehouse\/Webduino\">Webduino CC3000<\/a> on my GitHub page. <b>REQUIRES<\/b> my <a href=\"https:\/\/github.com\/corbinstreehouse\/Adafruit_CC3000_Library\">forked version of Adafruit_CC3000<\/a><\/p>\n<p><b>&#8212;&#8212;&#8212;&#8211;<\/b><\/p>\n<p><b>Longer story:<\/b> I want to add Wifi support to my LED cyr wheel. My goal is to be able to wirelessly control it from an iOS device (iPhone or iPad). I also want to be able to update my LED Pattern Sequence files from my desktop Mac computer. Right now, I manually put them on an SD card, but it seems like I could skip that step and send it over wirelessly. Short range wireless connections on iOS are difficult; bluetooth would be ideal, but has stupid rules to be able to use the API\/hardware. Bluetooth LE is newish and supported by the later iOS devices and computers, but my Mac doesn&#8217;t support it. Stupidly, my friend Jason gave me the solution for that: just by a dongle. Oh yeah\u2026 but anyways, I&#8217;m going to try Wifi first.<\/p>\n<p>I now realize the CC3000 chip isn&#8217;t ideal because it can&#8217;t <b>create<\/b> an ad-hoc wifi network. It can only join one. That means I have to bring a wireless router with me for circus jobs and have the phone\/wheel on the same network. <b>Or<\/b> setup internet sharing on my phone and connect to the iPhone wireless network from the wheel (that does work, and is okay for now). Bluetooth LE may have been better\u2026but I&#8217;m not sure if I can control multiple wheels at the same time (another goal) and synchronize them, as I think bluetooth is a 1-to-1 connection (I could be wrong, I don&#8217;t know). I also heard the newer <a href=\"http:\/\/www.ti.com\/ww\/en\/simplelink_embedded_wi-fi\/cc3100.html\">CC3100 chip<\/a>(or 3200) might have more features; maybe ad-hoc. I should investigate if I ever make my own PCB board that has it on it.<\/p>\n<p>So, using the CC3000 and wifi. I quickly realized I have to make a web server in the wheel. I came up to speed on some new(hah) &#8220;protocols&#8221; like REST, which seem to be all the rage today. I like stateless, so it seems good. I found a few REST solutions, including <a href=\"http:\/\/arest.io\">aREST<\/a> (Arduino-REST) that uses CC3000, but it isn&#8217;t very flexible.<\/p>\n<p>I then ran across Webduino; it is a few years old, but looks awesome. You can plug in your own handlers for URLs, which is a very simple way to implement REST. So, I ported it over to use Adafruit&#8217;s CC3000 breakout board. Check it out: <a href=\"https:\/\/github.com\/corbinstreehouse\/Webduino\">Webduino CC3000<\/a><\/p>\n<p><b>UPDATE:<\/b> I have been constantly working on this and made Webduino and CC3000 work together better by having a simple state machine. <b>REQUIRES<\/b> my <a href=\"https:\/\/github.com\/corbinstreehouse\/Adafruit_CC3000_Library\">forked version of Adafruit_CC3000<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Adafruit has a CC3000 breakpoint board for $35 on their site. Rather expensive, considering the chip should be $10, but it adds some nice features and they wrote a library for it. Cut to the&#8230; <a class=\"read-more\" href=\"https:\/\/www.corbinstreehouse.com\/blog\/2014\/10\/adafruit-cc3000-webduino-arduino-web-server-over-wifi\/\">[read more]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3803","post","type-post","status-publish","format-standard","hentry","category-general"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/posts\/3803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/comments?post=3803"}],"version-history":[{"count":2,"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/posts\/3803\/revisions"}],"predecessor-version":[{"id":5364,"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/posts\/3803\/revisions\/5364"}],"wp:attachment":[{"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/media?parent=3803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/categories?post=3803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corbinstreehouse.com\/blog\/wp-json\/wp\/v2\/tags?post=3803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}