{"id":2971,"date":"2013-11-26T07:08:03","date_gmt":"2013-11-26T12:08:03","guid":{"rendered":"http:\/\/www.plastibots.com\/?p=2971"},"modified":"2019-05-19T11:17:12","modified_gmt":"2019-05-19T15:17:12","slug":"wifi-bot-control-android-app-wifibot","status":"publish","type":"post","link":"https:\/\/www.plastibots.com\/index.php\/2013\/11\/26\/wifi-bot-control-android-app-wifibot\/","title":{"rendered":"Dicontinued &#8211; WiFi Bot Control &#038; Arduino Bot (Eddie) &#8211; Android App to Control Robots"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=appinventor.ai_picoware.WiFiBotControlLite\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-2994 size-full\" style=\"font-family: arial, helvetica, sans-serif;\" src=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WiFiBotControlLogo_72x72.png\" alt=\"Get WiFi Bot Control on Google Play\" width=\"72\" height=\"72\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WiFiBotControlLogo_72x72.png 72w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WiFiBotControlLogo_72x72-64x64.png 64w\" sizes=\"auto, (max-width: 72px) 100vw, 72px\" \/><\/a><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Wifi Bot Control<img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-2993\" style=\"margin-left: 10px; margin-right: 10px;\" title=\"WiFi Bot Control - Read More\" src=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/MasterFeatureGraphic1024x500New.png\" alt=\"MasterFeatureGraphic1024x500New\" width=\"614\" height=\"300\"><span style=\"font-family: arial, helvetica, sans-serif;\">&nbsp;is an Android app that allows you to remotely control a robot (or other device) via WiFi. &nbsp;You can also (optional) view&nbsp;a video stream from an IP camera mounted to the robot. &nbsp;WiFi Bot Control also provides up to 8 additional customizable command buttons that allow&nbsp;you to perform additional tasks on your robot \/ device. &nbsp;You could use these commands to initiate other activities such as enabling\/disabling sensors, moving other servos \/ arms \/ picking something up, turning a LED on\/off etc. &nbsp;With the provided sample sketch, you can customize the robot to do what you want.&nbsp; <strong><span style=\"color: #ff0000;\">Note: WiFiBot Control is no longer available or supported.&nbsp; There are other options that can serve a similar purpose.&nbsp; Have a look at Blynk.&nbsp; Thanks for those that supported in the past.<\/span><\/strong><\/span><\/span><\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<table style=\"width: 100%; border: 0px solid #ffffff;\" border=\"0\" align=\"left\">\n<tbody>\n<tr>\n<td><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\"><strong>Features<\/strong><\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Uses WiFi only to control the robot and view the IP Camera stream<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Configurable camera URLs (up to 3)<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">3 Joystick Modes: Default, Simple Mode and Orientation Sensor<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Supports up to 8 additional commands via Command Buttons.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Configurable WiFi packet interval.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Supports a number of micro controllers &#8211; requires WiFi module\/capabilities.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Sample Arduino sketch provided (below link).<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">Screen automatically re-sizes for smaller phones.<\/span><\/li>\n<li>Works with most any microcontroller that is WiFi capable (shields,&nbsp;<a title=\"Spark Core\" href=\"https:\/\/www.spark.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Spark Core&nbsp;<\/a>(in testing), etc)<\/li>\n<\/ul>\n<\/td>\n<td><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/UT5LmEVQbYY\" width=\"425\" height=\"350\" frameborder=\"0\"><\/iframe><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Update&nbsp;<\/strong><strong>March 2017: &nbsp;I&#8217;ve posted how to get WiFi Bot Control working with a NodeMCU (ESP8266). This removes the need for a separate webserver and JSON data. <a href=\"http:\/\/www.plastibots.com\/index.php\/2017\/03\/30\/wifi-bot-control-using-nodemcu-esp8266\/\" target=\"_blank\" rel=\"noopener noreferrer\">Check it out<\/a>.&nbsp;&nbsp;<\/strong><\/p>\n<p><strong style=\"font-family: arial, helvetica, sans-serif; font-size: large;\">What You Need<\/strong><\/p>\n<p><center><a href=\"http:\/\/www.banggood.com\/collection-3161.html?utmid=1540&amp;utm_campaign=b69407&amp;utm_content=Klaus&amp;p=R90804949020201412E4&amp;bid=33840&amp;utm_design=32\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/img.banggood.com\/deals\/affiliate_member_banner\/6ffad86b9a8dd4a3e98df1b0830d1c8c44.jpg\"><\/a><\/center><span style=\"font-family: arial, helvetica, sans-serif; font-size: 13px;\">WiFi Bot Control is an Android app that allows you to control a device, presumably a robot. &nbsp;For the sake of this write-up, it&#8217;s an Arduino robot using an Adafruit CC3000 WiFi module and a <a href=\"http:\/\/www.banggood.com\/Digispark-Kickstarter-USB-Development-Board-For-ATTINY85-Arduino-p-953375.html?p=R90804949020201412E4\" target=\"_blank\" rel=\"noopener noreferrer\">Digistump <\/a>+&nbsp;Motor Shield. &nbsp;However, you should be able to use most other WiFi shields and motor drivers. &nbsp; &nbsp;WiFi Bot Control is pretty much useless on it&#8217;s own, but if you&#8217;ve read this far, you probably understand that this is a purpose-specific app. &nbsp;Essentially, the system consists of the controlling device (your Android phone + WiFi Bot Control), an intermediate data interpreter\/server (a webserver &#8211; or your local computer) and a robot of course. &nbsp;Details on the different pieces are documented below. &nbsp;This should provide you with sufficient info should you want to build one yourself. &nbsp;Details on where to source the components are also below.<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">** If you are looking to use Bluetooth to control your robot, also check out <a href=\"http:\/\/www.plastibots.com\/index.php\/2013\/03\/07\/btbotcontrol\/\" target=\"_blank\" rel=\"noopener noreferrer\">BT Bot Control<\/a>. &nbsp;Also note that because the Android app links directly to your robot via Bluetooth,this is a faster method of control. &nbsp;However, it is limited to approx 10 meters&nbsp;(Bluetooth limitation).<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong style=\"font-size: large;\"><br class=\"none\">How to Use It<\/strong><\/span><\/p>\n<p>WiFi Bot Control consists of 3 main components:<\/p>\n<ol>\n<li>The WiFi Bot Control Android application for your tablet\/phone.<\/li>\n<li>A robot &#8211; this could be anything as long as it has WiFi capability. For the purpose of this tutorial \/ build, I used an Arduino Nano with an Adafruit CC3000. &nbsp;All samples are based on these components.<\/li>\n<li>A webserver. &nbsp;The purpose of the webserver is to act as a go between the robot and WiFi Bot Control. &nbsp;It interpretss the commands sent by WiFi Bot Control, and provide a file by which the robot can read to determine commands being sent to it. &nbsp; &nbsp;This webserver can be part of your robot, or can be a separate server. However update speed becomes an issue if this server is remote, so keep this in mind. &nbsp;By now, it may be possible that the Adafruit CC3000 libraries have enabled the local webserver and you can modify the code to allow for the updating of the files within the robot. &nbsp;Drop me a line if you managed to get this working and I can add details for others to follow. &nbsp;Note: &nbsp;You have to have access to a webserver. &nbsp;References to &#8220;www.yourserver.com&#8221; should be replaced with the URL of your server.<\/li>\n<\/ol>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong>WiFi Bot Control &#8211;&nbsp;Joystick Modes:<\/strong><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Default Joystick Mode:<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: arial, helvetica, sans-serif;\">When you move the joystick, x and y coordinates are packaged into a configurable URL string and transmitted. The following is a sample URL where the x value is 22 and y value is 44. Note the URLmode value is 1. This information is parsed into a json file and then read from the Arduino robot \/ device.<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: 'courier new', courier;\">http:\/\/www.yourserver.com\/cc3000sample\/updatestatenew.php?<span style=\"color: #ff0000;\">URLmode=1<\/span>&amp;<span style=\"color: #ff0000;\">URLxval=22&amp;URLyval=44<\/span>&amp;URLudlr=&amp;URLcmdVal=<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Simple Joystick Mode:<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: arial, helvetica, sans-serif;\">In Simple mode, the joystick has 4 arrows representing Forward (U), Reverse (D), Left (L) and Right (R). When you tap the arrows, the respective character is packaged into the URLudlr value and the URL string is transmitted. Tapping the center or releasing a button sends an S value (stop). Tapping the Up arrow would look like this:<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: 'courier new', courier;\">http:\/\/www.yourserver.com\/cc3000sample\/updatestatenew.php?<span style=\"color: #ff0000;\">URLmode=2<\/span>&amp;URLxval=&amp;URLyval=<span style=\"color: #ff0000;\"><span style=\"color: #000000;\">&amp;<\/span>URLudlr=U<\/span>&amp;URLcmdVal=<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Command Mode:<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: arial, helvetica, sans-serif;\">You can add custom features to your robot \/ device with additional commands and customize the sample sketch provided. When a Command button is clicked, a value (1-8) is passed to the URLcmdVal variable. (i.e. Command Button #4 sends URLcmd=4) Also note the URLMode value passed is 3. Below is a sample URL string:<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: 'courier new', courier;\">http:\/\/www.yourserver.com\/cc3000sample\/updatestatenew.php?<span style=\"color: #ff0000;\">URLmode=3<\/span>&amp;URLxval=&amp;URLyval=&amp;URLudlr=&amp;<span style=\"color: #ff0000;\">URLcmdVal=4<\/span><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong>WiFi Bot Control &#8211; Settings Screen:<\/strong><\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">You can set the WiFi send delay in the settings. &nbsp;The default of 200 ms is sufficient.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Enter the URL that points to the server and location of the php file that updates the state of the json file (updatestatenew.json) &nbsp;Here&#8217;s a sample of the URL with the part you enter in orange:<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><span style=\"font-family: 'courier new', courier;\"><span style=\"font-size: small;\"><span style=\"color: #ff6600;\"><strong>http:\/\/www.yourserver.com\/cc3000sample\/updatestatenew.php?<\/strong><\/span><strong><span style=\"color: #008000;\">URLmode=3&amp;URLxval=&amp;URLyval=&amp;URLudlr=&amp;URLcmdVal=4<\/span><\/strong><\/span> &nbsp;(enter the <strong><span style=\"color: #ff6600;\">orange<\/span> <\/strong>part in WiFi Bot Control and the <strong><span style=\"color: #008000;\">rest<\/span><\/strong> of it is created by WiFi Bot Control)<\/span><\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><em>Debug: Show URL Data String Being Sent<\/em> allows you to see the content being parsed into the URL on the main screen (at the top).<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">The other features are pretty self-explanatory.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong>WiFi Bot Control &#8211; IP Cam Config Screen:<\/strong><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">This app uses the same approach for viewing an IP Camera stream as BT Bot Control. &nbsp;Detail can be found in the&nbsp;<a href=\"http:\/\/www.plastibots.com\/index.php\/2013\/03\/07\/btbotcontrol\/\" target=\"_blank\" rel=\"noopener noreferrer\">instructions<\/a>. Also see the FAQ section below.<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><span style=\"font-size: large;\"><strong><br class=\"none\"><br class=\"none\">Server Components &amp;&nbsp;<\/strong><\/span><\/span><span style=\"font-family: arial, helvetica, sans-serif; font-size: large;\"><span style=\"line-height: 27px;\"><b>Set-up<\/b><\/span><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">At the time of this writing, there wasn&#8217;t a library to allow the Adafruit CC3000 to act as a server and process data requests directly. &nbsp;Instead, I implemented a fork of this <a title=\"Go to Adafruit Learning System - WiFi Mobile Robot\" href=\"http:\/\/learn.adafruit.com\/wifi-controlled-mobile-robot\/arduino-sketch\" target=\"_blank\" rel=\"noopener noreferrer\">sample<\/a>&nbsp;(thanks and credit&nbsp;<a href=\"https:\/\/learn.adafruit.com\/search?q=Marc-Olivier%20Schwartz&amp;\">Marc-Olivier Schwartz<\/a>). &nbsp;The basic idea is that when using WiFi Bot Control, the app constantly sends a URL request to a PHP file on a server (or a computer with a webserver on it). &nbsp;The request contains updates to the x\/y\/command values (samples below). &nbsp;The PHP file is called and populates the data file. &nbsp;This is whole process is done rapidly from WiFi Bot Control. &nbsp;At the same time the robot (sketch sample below) is constantly polling the server and calling a PHP file that parses the JSON file for the data contents. &nbsp;It extracts the variables and uses them to drive the motors or act on commands.<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">You can host the server locally or remotely. &nbsp;It must also have PHP on it, and write permissions to the JSON file(s). &nbsp;On the Arduino side, the sketch points to the server IP address. &nbsp;On the Android side, it can be the URL or the IP address of the server. &nbsp;Note, if you are doing this within your own personal environment, you will have to ensure that the necessary port (usually 80) is open. &nbsp;Also, the PHP file needs write permission on the json file(s).<\/span><\/p>\n<p><strong><span style=\"font-family: arial, helvetica, sans-serif;\">Remote Control Only Files (can be downloaded below):<\/span><\/strong><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><em>updatestate.php<\/em> &#8211; this file is called from WiFi Bot Control to update robotstate.json with updated values from the joystick \/ command buttons<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><em>robotstate.json<\/em>&nbsp;&#8211; this file contains the actions for the robot. &nbsp;This file must be writeable by the IUSR web account of your webserver. &nbsp;Example contents: &nbsp;{&#8220;mode&#8221;:&#8221;1&#8243;,&#8221;xval&#8221;:&#8221;0&#8243;,&#8221;yval&#8221;:&#8221;0&#8243;,&#8221;udlr&#8221;:&#8221;&#8221;,&#8221;cmdVal&#8221;:&#8221;&#8221;}<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><em>server.php<\/em> &#8211; this file is called from the Arduino robot and parses the json file (<em>robotState.json<\/em> for this example)<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Be sure to check out <a href=\"http:\/\/learn.adafruit.com\/wifi-controlled-mobile-robot\/introduction\" target=\"_blank\" rel=\"noopener noreferrer\">the<\/a>&nbsp;demo from the Adafruit Learning System.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Server files for this sample can be downloaded at the bottom of this post.<\/span><\/li>\n<\/ul>\n<p><strong><span style=\"font-family: arial, helvetica, sans-serif;\">Remote Control &amp; Read Arduino Data Files (download at bottom):<\/span><\/strong><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif; font-size: 13px;\">WiFi Bot Control has a feature (in Settings) to enable reading of data pushed from your Arduino device. &nbsp;In addition to the above files, use the below files for reading sensor data. &nbsp;The latest sketch (below) has a sample to show how to do this. &nbsp;The below files are needed on the server to receive the request from the Arduino, process the results and also allow WiFi Bot Control to request them. &nbsp;Details:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">arduinoPush.php &#8211; This file is called from the sketch and populates the results in the json file (below). &nbsp;You can add as many fields as you like here. &nbsp;You must also update the URL request in the sketch to match. &nbsp;The current sample is setup to write numeric values (i.e &nbsp;{&#8220;result1&#8243;:null,&#8221;result2&#8221;:3333}). &nbsp;To write text values, arduinoPush.php has to be modified to write value as text (i.e.&nbsp;{&#8220;result1&#8243;:&#8221;testA&#8221;,&#8221;result2&#8243;:&#8221;testB&#8221;})<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">arduinoPushResults.json &#8211; This file contains the sensor and other readings from the Arduino device. &nbsp;Note &#8211; this file must be writable by the IUSR web account of your webserver. &nbsp;The file also read from WiFi Bot Control.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">androidPull.php &#8211; WiFi Bot Control uses this file to parse and read the json file (above) and use it to display sensor and other reading results.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">To use this feature, go to Settings and select <em>Enable Sensor \/ Data Polling<\/em>. &nbsp;Then, configure if you want to use manual or timer-based polling. &nbsp;The value for<em> Polling URL<\/em> tells WiFi Bot Control where the <em>androidPull.php<\/em> file is. &nbsp;You can also configure custom titles for each data element passed. &nbsp;To do this, enter the titles you want to use in the <em>Result Titles<\/em> box with a comma &#8220;,&#8221; separating each. &nbsp;For example, if you have 2 values that you want to display, you could enter: &nbsp; &#8220;<em>Temperature C =, Humidity =&#8221; <\/em>(without the quotes). &nbsp;If you choose not to enter any values, it will simply display as &#8220;<em>Result1= Result2= etc<\/em>&#8220;.<\/span><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-12-14-07-11-10.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3691 size-medium\" src=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-12-14-07-11-10-300x188.jpg\" alt=\"\" width=\"300\" height=\"188\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-12-14-07-11-10-300x188.jpg 300w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-12-14-07-11-10-1024x640.jpg 1024w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-12-14-07-11-10-624x390.jpg 624w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-12-14-07-11-10.jpg 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><span style=\"font-size: large; font-family: arial, helvetica, sans-serif;\"><strong><br class=\"none\"><br class=\"none\"><br class=\"none\">Arduino Robot &#8211; Say Hi to Eddie<\/strong><\/span><\/p>\n<p>Eddie is comprised of a mix of Arduino Nano, LEGO components as well as an IP Camera. &nbsp;The Nano uses the Adafruit CC3000 WiFi unit to talk to the server. Buried below is a power supply drive by 2x 18650 LiIon batteries (series @ 7.2v) as well as a power supply that drops the power to 3.5v for the IPCam and 5V for the Nano and CC3000.<\/p>\n<div id='gallery-1' class='gallery galleryid-2971 gallery-columns-3 gallery-size-thumbnail'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.plastibots.com\/index.php\/2013\/11\/26\/wifi-bot-control-android-app-wifibot\/2013-11-26-wificambot-002\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-002-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-3047\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-002-150x150.jpg 150w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-002-64x64.jpg 64w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-002-128x128.jpg 128w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-002-320x320.jpg 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-3047'>\n\t\t\t\tShowing various components\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.plastibots.com\/index.php\/2013\/11\/26\/wifi-bot-control-android-app-wifibot\/2013-11-26-wificambot-004\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-004-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-3048\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-004-150x150.jpg 150w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-004-64x64.jpg 64w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-004-128x128.jpg 128w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-004-320x320.jpg 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-3048'>\n\t\t\t\tShowing Nano and CC3000 Module\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.plastibots.com\/index.php\/2013\/11\/26\/wifi-bot-control-android-app-wifibot\/2013-11-26-wificambot-003\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-003-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-003-150x150.jpg 150w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-003-64x64.jpg 64w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-003-128x128.jpg 128w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/2013-11-26-WiFiCamBot-003-320x320.jpg 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/div><\/figure>\n\t\t<\/div>\n\n<p><span style=\"text-decoration: underline; font-family: arial, helvetica, sans-serif;\"><strong>What equipment is needed?<\/strong><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">WiFi Bot Control talk to a robot that you can build. &nbsp;Here&#8217;s a breakdown of the main parts required:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><a href=\"http:\/\/www.banggood.com\/ATmega328P-Nano-V3-Controller-Board-Compatible-Arduino-p-940937.html?p=R90804949020201412E4\" target=\"_blank\" rel=\"noopener noreferrer\">Arduino Nano<\/a> (or other Arduino controller with sufficient Analog and Digital ports \u2013 i.e. the Uno)<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><a href=\"http:\/\/dx.com\/p\/m1201-dc-3-40v-to-1-25-35v-adjustable-step-down-converter-voltage-regulator-blue-177634\" target=\"_blank\" rel=\"noopener noreferrer\">Voltage Regulator Module<\/a><\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><a title=\"Adafruit CC3000\" href=\"http:\/\/www.adafruit.com\/index.php?main_page=adasearch&amp;q=cc3000\" target=\"_blank\" rel=\"noopener noreferrer\">Adafuit CC3000<\/a> WiFi module, <a title=\"Spark Core Website\" href=\"https:\/\/www.spark.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Spark Core<\/a>**, or Arduino WiFi shield. &nbsp;(** &#8211; will need to validate this once my Spark arrives).<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><a href=\"http:\/\/digistump.com\/products\/5\" target=\"_blank\" rel=\"noopener noreferrer\">Digistump Motor Shield<\/a> (most any motor controller will work).<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Robot<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\"><a title=\"Ai Ball IP Camera\" href=\"https:\/\/www.banggood.com\/DANIU-Mini-Wireless-Hidden-Camera-WIFI-IP-Pinhole-DIY-P2P-Video-Camera-Support-TF-Card-Audio-p-1146803.html?p=R90804949020201412E4\" target=\"_blank\" rel=\"noopener noreferrer\">IP camera<\/a> (optional).<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Motors &#8211; I used a set of these <a href=\"http:\/\/www.banggood.com\/Tower-Pro-MG90S-Metal-Gear-RC-Micro-Servo-For-RC-Model-p-74870.html?p=R90804949020201412E4\" target=\"_blank\" rel=\"noopener noreferrer\">cheap servo&#8217;s<\/a>. &nbsp;You will have to mod them by removing the position sensor tabs on one of the gears inside. An easy mod for most. There are also continuous rotation servo&#8217;s out there if you are not into modding. &nbsp;<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Batteries &#8211; for the robot, I used 2x 18650 batteries wired in series to provide 7.2V to the voltage regulator. From there, I push 5V to the various Arduino components, motor shield and the CC3000. &nbsp;The motor shield provides the power to the servos. The Digistump unit supports up to 15V 3.x Amps combined, so you can use more powerful motors.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">I also added a small blue LED to serve as a status light. &nbsp;It blinks with data communications between the robot and the server. &nbsp;I also suggest another LED that comes on once the CC3000 has established a connection. Maybe muti-coloured to show different connection states as the unit takes some time to get connected initially.<\/span><\/li>\n<li>You will need a webserver as well.<\/li>\n<\/ul>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">The CC3000 and motor shield are connected to the Arduino Nano (pinouts below). The sample Arduino sketch provides a fully functioning application based on the base build. You can also add customize the sketch to your liking as well as enable features that can be used by the 8 custom command buttons.<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong style=\"font-family: arial, helvetica, sans-serif; font-size: large;\"><br class=\"none\"><br class=\"none\">Arduino Controller Pin-outs<\/strong><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Connections between the various modules and the Arduino Nano are as follows. &nbsp; Not shown are the DC step down linear regulator.<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2991\" src=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WiFiBotPinouts.png\" alt=\"WiFiBotPinouts\" width=\"800\" height=\"600\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WiFiBotPinouts.png 800w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WiFiBotPinouts-300x225.png 300w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><span style=\"font-size: large;\"><strong><br class=\"none\"><br class=\"none\">Downloads<\/strong><\/span><a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/10\/GlowControl.zip\"><br \/>\n<\/a><\/span><\/p>\n<p><span style=\"text-decoration: underline;\"><strong><span style=\"font-family: arial, helvetica, sans-serif;\">Arduino Sketch:<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">The below Arduino sketch is based on the original robot used with WiFi Bot Control.&nbsp; It can be used as-is if you build the same controller and want the same functionality as described here. &nbsp;However, the expectation is you have experience with Arduino coding and plan on customizing it to suit your needs. &nbsp;<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">** be sure to subscribe for update as the below sample code may change. See top right.<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong>Latest Jan 2 2014:<\/strong><\/span><span style=\"font-family: arial, helvetica, sans-serif;\">&nbsp;&nbsp;<a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WifiBotControlCC3000_7.zip\">WiFi Bot Control Sketch<\/a><\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">If you downloaded the above sketch before Dec 10\/13 and are having issues, download this one and try it. It has an Idle Time-out parameter that provides stability of your server closes it&#8217;s connection too fast.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif;\">Simplified motor driving function &#8211; (can do with further tweaking)<\/span><\/li>\n<li>Added sample to demonstrate sending sensor and other data to WiFi Bot Control (must have the latest version of WiFi Bot Control)<\/li>\n<\/ul>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><strong>Earlier Version:&nbsp;<\/strong><\/span><span style=\"font-family: arial, helvetica, sans-serif;\"><a title=\"Download WiFi Bot Control Arduino Sketch\" href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/WifiBotControlCC3000.zip\" target=\"_blank\" rel=\"noopener noreferrer\">WiFi Bot Control Demo Sketch<\/a><\/span><\/p>\n<p><span style=\"text-decoration: underline;\"><strong><span style=\"font-family: arial, helvetica, sans-serif;\">Server Files:<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Download these files if you are only using WiFi Bot Control as a remote: &nbsp;<a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/ServerFiles.zip\">ServerFiles<\/a><\/span><\/p>\n<p><span style=\"font-size: 12px;\"><span style=\"font-family: arial, helvetica, sans-serif;\">Download these files if you are using WiFi Bot Control as both a remote and also reading data from your robot: &nbsp;<\/span><a style=\"font-family: arial, helvetica, sans-serif; font-size: 13px;\" href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/12\/ServerFilesSensorRead.zip\">ServerFilesSensorRead<\/a><\/span><\/p>\n<div class=\"qa-faqs qa-category cf animation-fade accordion collapsible\">\n\t\t<div class=\"qa-category\">\n\t\t\t<h2 class=\"faq-catname\">WiFi Bot Control - FAQ<\/h2>\n\t\t\t<div id=\"qa-faq0\" class=\"qa-faq\">\n\t\t\t<h3 class=\"qa-faq-title\"><a class=\"qa-faq-anchor\" href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/bt-bot-control-vs-wifi-bot-control-which-is-faster\/\">BT Bot Control vs WiFi Bot Control &#8211; Which is faster?<\/a><\/h3>\n\t\t\t<div class=\"qa-faq-answer\"><p>Although the function of both these apps is the same, there are some underlying differences that are important to making your decision on which route to go. \u00a0In general, BT Bot Control is faster in getting joystick commands to the robot. This is inherent in the design as it uses a direct link over Bluetooth between the Android device and your robot. \u00a0WiFi Bot Control is slower as the commands have to a) share traffic with your WiFi network (this includes your IP camera stream), and b) are first sent to a server, and then to the robot. \u00a0This is mitigated somewhat with the introduction of WiFi-enabled Arduino devices such as the Spark Core and Adafruit CC3000). \u00a0 However, if you do not have one of these devices, you would need to use a server with a webserver. \u00a0 BT Bot Control is also easier to set-up and configure. \u00a0Once you have a Bluetooth connection, the sketch can interpret the commands. \u00a0With WiFi Bot Control, there is the intermediary JSON configuration on the server side.<\/p>\n<\/div><!--.qa-faq-answer-->\n\t\t\t\t<\/div><!--.qa-faq-->\n\t\t\t<div id=\"qa-faq1\" class=\"qa-faq\">\n\t\t\t<h3 class=\"qa-faq-title\"><a class=\"qa-faq-anchor\" href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/issues-with-viewing-your-ip-camera\/\">Configure IP Camera for Viewing<\/a><\/h3>\n\t\t\t<div class=\"qa-faq-answer\"><p>If you are having issues viewing a direct video stream from your IP camera \u00a0(i.e. http:\/\/mycamera.com\/videostream.cgi is not working), have a look at <a href=\"http:\/\/www.ispyconnect.com\/man.aspx?n=foscam\" target=\"_blank\">this<\/a> site to see what varying modes your IP Camera has (be sure to search for your camera). \u00a0 If none of these work, you can setup a webpage to auto-refresh your camera in snapshot mode and then use the URL to the website in BT Bot Control \/ WiFi Bot Control. \u00a0First, you must find the URL that your camera uses to view a snapshot.<\/p>\n<p><span style=\"font-size: 13px;\">Steps:<\/span><\/p>\n<ol>\n<li>You need a website &#8211; either a personal or access to a remote webserver \/ website where you can put some files. \u00a0In this case, we will assume you have a personal webserver and use the following URL www.yoursite.com.<\/li>\n<li>Note: \u00a0If you are setting this up on an internal server, you can refer to internal IP addresses (i.e. 192.168.x.x). However, if you are hosting the page externally, you will have to a) enable port forwarding from an external IP to your camera and b) refer to the camera (within the file below) by your network&#8217;s external IP and port #. \u00a0For this example, all references will assume you have a personal webserver and the IPs are internal.<\/li>\n<li>Download <strong><a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/03\/IPCamSnapshotJavascript.zip\">these<\/a><\/strong>\u00a0files and place at the root of the website you want to use.<\/li>\n<li>Open default.htm.<\/li>\n<li>You will need to change only the highlighted parts to the full URL that will be used to take a single snapshot image from your IP Camera. \u00a0Before moving on, be sure that you are able to see a snapshot within your PC&#8217;s browser window.<\/li>\n<li>Once complete, call the www.yoursite.com\/default.htm file in your web browser (not BT Bot Control \/ WiFi Bot Control). \u00a0Make sure you see the snapshot image and it should be refreshing. \u00a0The refresh rate is configurable at the bottom (currently set to 100 ms). If it works here, then you can plug this URL into BT Bot Control \/ WiFi Bot Control and you should be able to see the video stream.<\/li>\n<li>Note &#8211; don&#8217;t expect fluid video here folks. This is a crude approach to getting video streaming working in these apps. \u00a0Also note that this is not a limitation of BT Bot Control \/ WiFi Bot Control but rather the web control implementation from Android.<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/03\/VideoStreamSample.html.txt\">Video Stream Sample HTML<\/a><\/p>\n<\/div><!--.qa-faq-answer-->\n\t\t\t\t<\/div><!--.qa-faq-->\n\t\t\t<div id=\"qa-faq2\" class=\"qa-faq\">\n\t\t\t<h3 class=\"qa-faq-title\"><a class=\"qa-faq-anchor\" href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/ip-camera-setup\/\">Adding IP Camera URLs<\/a><\/h3>\n\t\t\t<div class=\"qa-faq-answer\"><p>Camera Options:<\/p>\n<p>For this project, I used the Ai-Ball tiny IPCam. \u00a0However, take my word for it, it\u2019s a waste of money and a battery pig. It\u2019s only advantage is that it\u2019s small. \u00a0 \u00a0If you are using the Ai-Ball or other similar webcam, the configuration is as noted below. \u00a0If you have a spare phone laying around that has a camera, \u00a0I suggest you get\u00a0<a title=\"IP Webcam - Check it out\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.pas.webcam\" target=\"_blank\">IP Webcam<\/a>\u00a0from Google Play. \u00a0This \u00a0great little app allows you to turn your mobile phone into a webcam and access its video stream. \u00a0The full screen streaming Javascript seems to work best. \u00a0Give it a try \u2013 use your local IP address: \u00a0http:\/\/192.168.x.x:8080\/jsfs.html (check IP Webcam settings).<\/p>\n<p>Assumptions:<\/p>\n<ul>\n<li>You have an IPCamera that is configured and can be viewed in your web browser.<\/li>\n<li>You have the URL, username and password (if necessary) to access the IP camera.<\/li>\n<li>If you are viewing your IP camera outside your network, you will have to setup a dynamic DNS service and\/or port forwarding to remotely access it.\u00a0<\/li>\n<li>Click the Camera settings icon in the menu and setup your camera URL (see below)<\/li>\n<li>Enter the camera URL, click add, and check the button beside the camera you want to view.<\/li>\n<li>You can enter and store up to 3 cameras.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-11-27-18-11-01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-3060\" alt=\"IP Cam Setup\" src=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-11-27-18-11-01.png\" width=\"320\" height=\"200\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-11-27-18-11-01.png 1280w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-11-27-18-11-01-300x187.png 300w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/Screenshot_2013-11-27-18-11-01-1024x640.png 1024w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<\/div><!--.qa-faq-answer-->\n\t\t\t\t<\/div><!--.qa-faq-->\n\t\t\t<div id=\"qa-faq3\" class=\"qa-faq\">\n\t\t\t<h3 class=\"qa-faq-title\"><a class=\"qa-faq-anchor\" href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/alternative-ways-to-configure-ip-cameras\/\">Configure IP Camera &#8211; Alternate Approaches<\/a><\/h3>\n\t\t\t<div class=\"qa-faq-answer\"><p>If you are having troubles setting up your IP Camera,the following are some approaches that may (or may not) work for your camera. \u00a0Some of these are specific to certain camera manufacturers:<\/p>\n<p>1) <a href=\"http:\/\/foscam.us\/forum\/free-generic-browser-interface-for-foscam-ip-mjpeg-cameras-t2522.html#p10970\" target=\"_blank\">Generic interface to Foscam IP Cameras<\/a>. \u00a0You could build a webpage that displays the camera and then refer to the webpage URL in WiFi Bot Control \/ BT Bot Control. \u00a0Once done, then use the URL you use to access the webpage in the apps.<\/p>\n<p>2) <a href=\"http:\/\/foscam.us\/forum\/post20338.html#p20338\" target=\"_blank\">Interface<\/a> to Foscam H.264 Cameras. \u00a0.. Right click this <a href=\"http:\/\/www.saveontelephonebills.com\/camera\/Generic21V20.htm\" target=\"_blank\">link<\/a>, save to your website folder and edit the IP\/PORT, user and password. Test in your browser befor adding the URL to the apps.<\/p>\n<p>3) Check <a href=\"http:\/\/www.ispyconnect.com\/man.aspx?n=foscam\" target=\"_blank\">this<\/a>\u00a0site and search for your camera. \u00a0It will show you various ways to get access to direct stream and snapshot modes for IP Cameras<\/p>\n<\/div><!--.qa-faq-answer-->\n\t\t\t\t<\/div><!--.qa-faq-->\n\t\t\t<div id=\"qa-faq4\" class=\"qa-faq\">\n\t\t\t<h3 class=\"qa-faq-title\"><a class=\"qa-faq-anchor\" href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/how-to-tell-if-wifi-bot-control-is-sending-data-correctly\/\">How to tell if WiFi Bot Control is sending data correctly?<\/a><\/h3>\n\t\t\t<div class=\"qa-faq-answer\"><p>WiFi Bot Control sends joystick and command data through a configurable URL. \u00a0You configure the main part of the URL (ie. http:\/\/www.yourserver.com\/folderWhereFilesReside\/updateState.php?). \u00a0Don&#8217;t forget the &#8220;?&#8221;, as it won&#8217;t work without it. \u00a0To test this out, there is a really easy solution. \u00a0<\/p>\n<ul>\n<li>Open robotstatenew.json (or whatever you called the file that is written to by updatestatenew.php) in a text editor such as Notepad++. \u00a0Ensure that your Android device is connected to the network and proceed to use the joystick.<\/li>\n<li>WiFi Bot Control should return a status of 200 (bottom) constantly.\u00a0This means its reaching the PHP file (updatestatenew.php) based on the server URL you defined. \u00a0<\/li>\n<li>Next step is to look at the json file in Notepad++. \u00a0If you click another window, then click back to Notepad++, it should alert you that the file contents have changed and ask you to reload it. Do it, and you should see the values have changed. \u00a0<\/li>\n<\/ul>\n<p><strong><span style=\"text-decoration: underline;\">Also note, that you should see the values for x and y go back to 0 if you remove your finger from the joystick. \u00a0This is by design. \u00a0To see actual values, keep moving the joystick while performing the above activities.<\/span><\/strong><\/p>\n<\/div><!--.qa-faq-answer-->\n\t\t\t\t<\/div><!--.qa-faq-->\n\t\t\t<div id=\"qa-faq5\" class=\"qa-faq\">\n\t\t\t<h3 class=\"qa-faq-title\"><a class=\"qa-faq-anchor\" href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/understanding-the-refresh-and-connection-status-buttons\/\">Understanding the Refresh and Connection Status Buttons<\/a><\/h3>\n\t\t\t<div class=\"qa-faq-answer\"><p>WiFi Bot Control has 2 may web components:<\/p>\n<p>** This page is outdated. \u00a0Update coming.<\/p>\n<p>&nbsp;<\/p>\n<p>There&#8217;s \u00a0the <strong>IP Camera Viewer<\/strong> that you see on the main screen to the left, and then there&#8217;s a <strong>Web Component<\/strong> that is a background service that processes the joystick and command buttons. \u00a0The Web Component is not visible and has nothing to do with the IP Camera Ciewer, so don&#8217;t get them confused &#8211; they are completely separate.<\/p>\n<p><strong>IP Cam Viewer<\/strong> &#8211; Use the Settings to setup a pointer to your IP Camera. \u00a0Once this is done, you should see the video stream in the viewer. \u00a0The\u00a0<strong>Cam URL<\/strong>\u00a0button (shown bottom left in picture below) simply refreshes the Camera URL. \u00a0<\/p>\n<p>The <strong>Web Component<\/strong>\u00a0sends commands to the robot. \u00a0 This value is set in the Settings, and the rest of it is constructed to make a complete URL (see above for samples). \u00a0When moving the joystick or sending commands, the values are parsed into the URL string and a background call is made to the Web Component. \u00a0You can view real-time update of this by going into <strong>Settings<\/strong> and checking the option (&#8220;Debug&#8230;.&#8221;) to view the URL as its being created and sent. \u00a0It will appear at the top. \u00a0If there is a problem with the URL, the <strong>Response Code<\/strong> value (shown at the bottom &#8211; pic below) will update with an error code (usually 1101). \u00a0Clicking the <strong>[view]<\/strong> link will pop up a message showing you the last URL that was sent. Note &#8211; you should expect to see 0&#8217;s in X and Y values as the joystick always moves back to zero. \u00a0If you are experiencing errors and you have verified that your devices is connected, check your URL carefully. \u00a0You may even want to re-create the same URL on your PC browser to test it to ensure it is correct. It&#8217;s most likely that something is wrong with the core URL part you set in <strong>Settings<\/strong>.<\/p>\n<p>The <strong>Connection Status<\/strong> button at the top (pic below) is simply to test your Internet connection. \u00a0It tries to connect to www.google.com. \u00a0If it fails, there will be an error in the Response Code section at the bottom that you can view. If this is failing, its most likely your WiFi connection is down. \u00a0Also note that clicking this button will not load www.google.com into the IP Cam viewer as this is configured to point to the URL you defined for your IP Camera. It a completely separate component. \u00a0Note, if it fails the first time, give it a few more tries as sometimes it has a brain fart.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3062\" alt=\"URL and Cam Responses\" src=\"http:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/UnderstandingCamAndURLResp.png\" width=\"600\" height=\"360\" srcset=\"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/UnderstandingCamAndURLResp.png 600w, https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/UnderstandingCamAndURLResp-300x180.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<\/div><!--.qa-faq-answer-->\n\t\t\t\t<\/div><!--.qa-faq-->\n\t\t\t<\/div><!--.qa-category-->\n\t\t<\/div><!--.qa-faqs -->\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Wifi Bot Control&nbsp;is an Android app that allows you to remotely control a robot (or other device) via WiFi. &nbsp;You can also (optional) view&nbsp;a video stream from an IP camera mounted to the robot. &nbsp;WiFi Bot Control also provides up to 8 additional customizable command buttons that allow&nbsp;you to perform additional tasks on your robot \/ device. &nbsp;You could use these commands to initiate other activities such as enabling\/disabling sensors, moving other servos \/ &hellip; <a href=\"https:\/\/www.plastibots.com\/index.php\/faqs\/understanding-the-refresh-and-connection-status-buttons\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":3005,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"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":[76,65,78,57,19,59],"tags":[132,64,66,92,91,86],"class_list":["post-2971","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-arduino-electronics","category-bluetooth","category-electronics","category-remote-controlled","category-timers","tag-android","tag-arduino","tag-led","tag-remote-control","tag-wi-fi","tag-wifi","has_no_thumb"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/www.plastibots.com\/wordpress\/wp-content\/uploads\/2013\/11\/MasterFeatureGraphic1024x500New.png","jetpack_shortlink":"https:\/\/wp.me\/pK41j-LV","jetpack_sharing_enabled":true,"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts\/2971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/comments?post=2971"}],"version-history":[{"count":3,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts\/2971\/revisions"}],"predecessor-version":[{"id":6074,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/posts\/2971\/revisions\/6074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/media\/3005"}],"wp:attachment":[{"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/media?parent=2971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/categories?post=2971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.plastibots.com\/index.php\/wp-json\/wp\/v2\/tags?post=2971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}