Escolar Documentos
Profissional Documentos
Cultura Documentos
fabboco@gmail.com
Arduino Manager
iPhone/iPad
Version: 9.0
04/02/2016
Arduino Manager Fabrizio Boco
Disclaimer
IOSController libraries, SIOSController libraries, example scketches (The Software) and the
related documentation (The Documentation) are supplied to you by the Author in
consideration of your agreement to the following terms, and your use or installation of The
Software and the use of The Documentation constitutes acceptance of these terms.
If you do not agree with these terms, please do not use or install The Software.
The Author grants you a personal, non-exclusive license, under author's copyrights in this
original software, to use The Software. Except as expressly stated in this notice, no other
rights or licenses, express or implied, are granted by the Author, including but not limited to
any patent rights that may be infringed by your derivative works or by other works in which
The Software may be incorporated.
The Software and the Documentation are provided by the Author on an "AS IS" basis. THE
AUTHOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT
LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE SOFTWARE OR ITS
USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
Credits
LGViewHUD (https://github.com/y0n3l/LGViewHUD)
DCControls (https://github.com/domesticcatsoftware/DCControls)
GCDAsyncSocket (https://github.com/robbiehanson/CocoaAsyncSocket)
CocoaHTTPServer (https://github.com/robbiehanson/CocoaHTTPServer)
F3BarGauge (https://www.cocoacontrols.com/controls/f3bargauge)
NKOColorPickerView
(https://www.cocoacontrols.com/search?utf8=&q=NKOColorPickerView)
OpenEars (http://www.politepix.com/openears)
Many thanks to the authors for the valuable work they did.
Index
Ethernet Shield;
WiFi Shield;
ESP8622.
Arduino Mega;
Arduino Zero;
Arduino Yun;
Intel Galileo;
RFduino;
Teensy 3.1.
For more details about supported boards and communication methods, see
section 2.
The app shows a grid and tapping on it you can insert specialized widgets to
send and receive information from Arduino.
For a better visualization or control, each widget can be zoomed by the means
of a double tap on it; tap on Configure for configuring the widget itself.
Web Widget: This widget shows any web page you need.
May be used for integrating external services or devices like
video cameras.
Each widget is associated with a variable (i.e. T), which is either written or read
by the sketch on the board. In this way the iOS app can receive information
from the Arduino board or control it.
IOSController library family allows integrating Arduino Manager with your own
sketches.
To better understand how to use Arduino Manager you have to check next
sections out, choosing which apply in relation to your board type and/or
connection method you are using (Ethernet, WiFi, Bluetooth, etc.).
From version 2.0 of Arduino Manager the file list and download of file from SD
Card is directly managed from the IOSController or IOSControllerWiFi library.
User doesnt have to worry about it and these following lines must be removed
from your sketch in the processingIncomingMessages:
#ifdef SD_SUPPORT
if (strcmp(variable,"SD")==0) {
iosController.sendFileList();
}
if (strcmp(variable,"SDDL")==0) {
iosController.sendFile(value);
}
#endif
This widget sets a digital value to Arduino. Tapping the switch, a message is
received into the processIncomingMessages callback and the Arduino program
can react to it.
void processIncomingMessages(char variable, char *value) {
if (strcmp(variable,"<variable>") == 0) {
.
}
As soon as the iOS application connects to the Arduino board, asks for the
current state of the switch. This message can be managed into the doSync
callback
void doSync(char variable) {
if (strcmp(variable,"<variable>") == 0) {
This widget shows values coming from your Arduino (i.e. Temperature). It can
show numbers with 0,1,2,3 decimal digits or rolling text.
void processOutgoingMessages() {
iosController.writeMessage("<variable>",123.4);
Tap on Text switch to make the Display Widget show text instead of numbers.
iosController.writeTxtMessage("<variable>","On");
Entering a Unit of Measure, it will be displayed together with the values coming
from the board. If you dont need to show a unit of measure, left it blank.
When the Widget displays numbers, you can enable or disable it from the
Arduino code sending respectively these messages:
iosController.writeTxtMessage("<variable>","On");
iosController.writeTxtMessage("<variable>","Off");
This widget shows values an analog value (i.e. Temperature) coming from
Arduino, moving a needle over a graded
scale.
The default order of the colored areas is, left to right, green, yellow and red.
Tapping on Swap, the colored areas change to red, yellow and green.
To send values to the Gauge Widget you can just use the same code used for
the Display Widget:
void processOutgoingMessages() {
iosController.writeMessage("<variable>",123.4);
This widget shows values an analog value (i.e. Temperature) coming from
Arduino, turning on LEDs on a horizontal bar.
To send values to the Bar Widget you can just use the same code used for the
Display Widget or the Gauge Widget:
void processOutgoingMessages() {
iosController.writeMessage("<variable>",123.4);
This widget shows a LED that can be turned on and off through digital values
from Arduino.
void processOutgoingMessages(void) {
iosController.writeMessage("<variable>",1 or 0);
Double tap the widget and then tap Configure to change LEDs color.
To change the LEDs color from the Arduino code you can send one of these
messages:
iosController.writeTxtMessage("<variable>","Red");
iosController.writeTxtMessage("<variable>","Blue");
iosController.writeTxtMessage("<variable>","Green");
iosController.writeTxtMessage("<variable>","Yellow");
This widget is the combination of the Switch Widget and Led Widget, to save
space when they are used together with the same variable.
Double tap the widget and then tap Configure to change LEDs color.
if (strcmp(variable,"<variable>") == 0) {
.
}
The LED can be turned on and off sending respectively the following messages:
iosController.writeMessage(<variable>,HIGH);
iosController.writeMessage(<variable>,LOW);
To change the LEDs color from the Arduino code you can send one of these
messages:
iosController.writeTxtMessage(<variable>,"Red");
iosController.writeTxtMessage(<variable>,"Blue");
iosController.writeTxtMessage(<variable>,"Green");
iosController.writeTxtMessage(<variable>,"Yellow");
1.8 Push Button and Secure Push Button How to use them
Double tap the widget and then tap Configure to change the button color.
This widget graphs values coming from your Arduino (i.e. Temperature). Double
tap on it and then tap on Configure to
change values range.
To get better performances, at least with the Ethernet Shield, you should set
WiFi Shield if data is received through the WiFi Shield.
void processOutgoingMessages(void) {
iOSController.writeMessage("<variable>", value);
iOSController.writeMessage("<variable>", value);
iOSController.writeMessage("<additional variable 1>", value);
iOSController.writeMessage("<additional variable 2>", value);
This widget graphs up to 5 values logged into Arduino SD. Double tap on it to
zoom it in and refresh values.
-;V1;V2;V3;V4;V5
All the other lines contain data followed by a new line. First value is the time
when the sample has been get.
1371546000;110.00;12;2;9;11
Time is expressed as Unix epoch: the number of seconds that have elapsed since
January 1, 1970 (midnight UTC/GMT). Missing values are replaced by -:
1371546000;110.00;22.3;-;-;-
The best way to write to the log file is using a timer and an interrupt handler. In
the following example, Timer1 is used.
Once you have decided the desired interrupt frequency, the value of the match
register may be calculated using this formula:
OCR1A = [16,000,000Hz/ (prescaler * desired_interrupt_frequency)] 1
Then add this code to the setup function to configure and start Timer1.
cli();//stop interrupts
TCCR1B |= (1 << CS12) | (1 << CS10); // Set CS10 and CS12 bits for 1024
prescaler
sei();//allow interrupts
samplingCounter = 0;
currentNumberOfSamples = MAXNUMBEROFSAMPLES;
gettingSample = false;
if (samplingCounter == SAMPLEINTERVAL*60/4) {
gettingSample = true;
samplingCounter = 0;
}
else {
samplingCounter++;
}
/***
Function to write samples to file
***/
void getSample(char *variable, unsigned long now1) {
if(currentNumberOfSamples == MAXNUMBEROFSAMPLES) {
SD.remove(variable);
iosController.sdLogLabels(variable,"Temp1","Temp2","Temp3","Temp4","Temp5");
currentNumberOfSamples = 0;
}
currentNumberOfSamples += 1;
}
if (gettingSample) {
cli();
getSample("DATA",now); // DATA is the name of the Logged Data Graph Widget
sei();
gettingSample = false;
}
Please, note that using Timer1 is incompatible with the servo library, which
uses the Timer1 for its own purposes.
The label Next Alarm gives you the exact date and time at which the alarm will
be fired.
If Repeat is not set, once the alarm has been fired, it will be deleted from the
Arduino board and then it will not be fired anymore.
1. The internal clock on the Arduino board is set via NTP Server when the
board is powered on. So the board needs to be connected to Internet at
the power on, otherwise the clock will not be set.
2. Alarms are stored into EEPROM on the board, so they are retained also
when the board is turned off and they are rescheduled at the power on.
5. Alarm widgets may be created and deleted only when the iOS device is
connected to the board.
By default the maximum number of Alarm Widget is 5, if you want to use more
Alarm Widgets you have to:
Go to Settings
if (strcmp(variable,Temperature) == 0) {
temperature = atof(variable);
}
For more details see paragraph 16.1 (IOSController Library) or 18.1 (IOSControllerWiFi
Library).
Tap on Configure to change the range of the threshold and of their step.
To get the value of the lower and higher threshold you can add the following
code to your processingIncomingMessages:
if (strcmp(variable,"<WidgetLabel>L")==0) {
= atof(value);
}
if (strcmp(variable," ,"<WidgetLabel>H")==0) {
= atof(value);
}
To send information of the actual value you can add a writeMessage to the
processOutgoingMessages:
void processOutgoingMessages() {
iosController.writeMessage(","<WidgetLabel>",);
The logic for managing when a quantity is out the range defined by the two
thresholds has to be added to the doWork function.
Double tap on the Widget and then tap on Configure to set condition and chose
the sound alarm.
void processOutgoingMessages() {
iosController.writeMessage("Distance",distance);
For more details see paragraph 16.1 (IOSController Library) or 18.1 (IOSControllerWiFi
Library).
Please, note that the Sound Alarm is played only when the Arduino Manager is
connected to the Arduino board and when the app is in foreground.
To process the command sent from Command Widget you have to add few
lines to the processIncomingMessages:
void processIncomingMessages(char *variable, char *value)
{
....
if (strcmp(variable, <variable>) == 0) {
// Do something here
}
...
Where <variable> is the label assigned to the Widget and value contains the
command string.
This widget allows driving a rover robot just rotating the device. To start driving
the robot, double tap on the widget.
Once double tapped, the widget zoom in and more controls area available, as
shown in the following picture.
The following table shows commands that are send to the Arduino board.
In case your robot stops for some reason (i.e. an obstacle), you can send a text
message to the Widget to reset the throttle. The variable is Rover Controller
and the value is Brake.
Please, note that this Widget works with Ethernet, WiFi and Bluetooth
connections but for controlling a robot the last two are more suitable.
Then, this simple code can be used to catch the messages from the widget:
if (strcmp(variable,Joy1X)==0) {
}
if (strcmp(variable,Joy1Y)==0) {
The console widget helps the user to debug its own Arduino code receiving and
displaying debugging messages.
User can change the size of the Widget double clicking on it.
log
logLn
The iBeacon Widget tracks the position of your iOS device with respect to an
iBeacon and communicates to the Arduino board when the iOS device is
getting into and when it is getting outside the iBeacon region.
Double tapping on the widget you can enter the following information to identify
the iBeacon that you want to track:
UUID
Minor
Major
The information sent to the Arduino board can be received with this simple code
inside the processIncomingMessages function:
if (strcmp(variable,"A") == 0) {
if (strcmp(value,"Entering") == 0) {
iosController.log(variable);
iosController.log(" : ");
iosController.logLn(value);
}
else {
if (strcmp(value,"Exiting") == 0) {
iosController.log(variable);
iosController.log(" : ");
iosController.logLn(value);
}
else {
iosController.log(variable);
iosController.log(" distance : ");
iosController.logLn(atoi(value));
beaconGarageRangeCallback();
}
}
}
where A is the name you assigned to the iBeacon Widget and the distance
values are:
0: Immediate
1: Near
2: Far
3: Unknown
Please note:
iBeacons are tracked if Arduino Manager is not running (only from iOS
7.1);
generally, the iOS device detects the iBeacon enough quickly (about few
seconds) when it enters inside the iBeacon region;
generally, the iOS device detects the iBeacon slowly when it exits outside
of the iBeacon region;
If you have not an iBeacon device, you can buy my BeaconTx app to transform
your iPhone or iPad in an iBeacon.
https://itunes.apple.com/us/app/beacontx/id800590886?ls=1&mt=8
This widget allows shows a video stream coming from the USTREAM site
(http://www.ustream.tv). You can publish there your own on-line streams.
iosController.writeTxtMessage(<variable>,"stream");
Where variable is the label assigned to the Widget and stream is the stream id.
This widget allows the user to choose a color and its brightness. The
corresponding RGB values are sent to the Arduino board. To operate the
widget, you have to double tap on it.
if (strcmp(variable,"<Variable>_R") == 0) {
}
if (strcmp(variable,"<Variable>_G") == 0) {
}
if (strcmp(variable,"<Variable>_B") == 0) {
This widget shows the acceleration by the means of a balls displacement along
three axes. Double tapping on the widget you can see it larger.
where <variable> is the label assigned to the Widget and <x>,<y>,<z> are the
values of the acceleration along the x, y and z axes.
This widget shows the rotation speed by the means of a pyramids rotation
along three axes. Double tapping on the widget you can see it larger.
where <variable> is the label assigned to the Widget and <x>,<y>,<z> are the
values of rotation speed along the x, y and z axes.
You need to attach an accelerometer to the Arduino board and to send data to
the Bubble Level Widget use the following function:
iosController.writeTripleMessage(<variable>,x,0,z);
where <variable> is the label assigned to the Widget and <x>,<y>,<z> are the
values of the acceleration along the x, y and z axes.
This widget allows to enter some voice commands and an associated code.
When Arduino Manager recognizes a voice command, it sends the associated
code to the Arduino board where can be processed.
Tapping on the microphone, voice commands entered into the Widget are
accepted together with the other voice commands. Tapping again the voice
commands are not accepted anymore.
Command
Code
Command is the voice command that will be accepted and code is the code
sent to the Arduino board.
This widget continuously sends to Arduino latitude and longitude of the iOS
device. You can suspend sending data to Arduino operating the switch on the
widget.
To process received data, you can define a global variable latidude and add
these few lines to the processIncomingMessages function:
if (strcmp(variable,"<variable>_LAT")==0) {
latitude = atof(value);
}
if (strcmp(variable," <variable>_LON")==0) {
User can easily manage different lists of widgets and switch among them in
order to control different boards and/or projects.
Tapping on Save you can save the current configuration of widgets in the grid
after have entered the name of the list.
Tapping on Save (with the Cloud icon) the current configuration of widget in the
grid is privately saved to the iCloud and then is automatically shared across
your own devices.
You can share your widget configuration between your devices and other users,
through an email message, tapping on Share.
When you receive a mail message with an Arduino Manager configuration, you
can load it just tapping on it.
In this paragraph you will learn how access your Arduino board from outside
your network. In other words, following the direction herein described you will
be able to use Arduino Manager through the mobile network to access your
Arduino board behind your home router/firewall.
NOTE: This section is provided for reference only and the author will not
provide any support on the subjects herein exposed. This because there are so
many routers available on the market and so many network configurations that
is actually impossible to provide any support without having all the details
available. Anyway, with this brief overview of the matter you should be able
configure your own devices.
Typically the IP address of the Arduino board on your internal network is not
visible from the external network at least you dont explicitly configure your
router.
Basically this configuration says to the router that all the traffic, which it receives
on a particular port has to be rerouted to another IP address on a specific port.
That said, your Port Forwarding configuration has to be something like this:
(82.61.147.56, 230) > (192.168.1.4, 230)
Accessing your router configuration page (usually via browser), you should be
able to get the current IP that your Internet service provider has assigned to
your router and configure the Port Forwarding.
Read your router manual for learning how to set up this configuration.
Once you have configured the Port Forwarding, you can access the Arduino
board using:
Port: 230
Typically, each time your router connects to Internet, it gets a different public IP
address. So, you need to change the IP address of Arduino Manager each time
your router is restarted. This is not practical.
Most are available for free, among them: NoIP, yDNS, FreeDNS.
Please, visit the service providers site to sign up and get installation and
configuration procedures. Moreover, check your router out for the DDNS
service availability.
Starting from version 9.0 Arduino Manager is able to encrypt data transferred to
and from the board using the AES 128 algorithm.
This makes much more hard to anyone to take control of your board.
Encryption should be always used when your board is exposed to internet.
Not al boards and communication systems are supported for encryption, see
the compatibility matrix for more details.
Arduino Manager accepts voice commands once you have bought the related
in-app purchase option.
To enable voice commands, tap on the microphone in the lower bottom left side
of the app.
As soon as you start talking, the green LED turns on and turns off when you
stop talking. From that point on, Arduino Manager tries to recognize the
command.
Some widgets (e.g. Display Widget) accept the command status. In that case,
the synthesized voice reads the status of the widget. For example, for the
Display Widget the voice reads the current value shown on the display.
To get the status of a widget, pronounce the widget variable followed by status.
If the command is accepted, the female voice reads the widget status.
The following table shows the voice command accepted for the supported
widgets and if the status command is accepted.
2 Compatibility Matrix
This section describes which communications methods can be used and which
Widgets are not supported for each board.
Board Ethernet Shield Adafruit WiFi Shield Adafruit nRF8001 Bluefruit SPI Friend RedBear BLE ESP8622
WINC1500 CC3000 Bluefruit Shield
Mega SD Widget and Logged SD Widget and SD Widget and SD Widget and SD Widget and
SD Widget and Logged
Data Widget not Logged Data Logged Data Logged Data Logged Data
Full support Full support Data Widget not
supported Widget not Widget not Widget not Widget not
supported
supported supported supported supported
Library
SIOSControllerWINC150 SIOSControllerW SIOSController
with SIOSController - - - -
0 iFiCC3000 ForBluefruit
Encryption
Library
SIOSControllerWINC150
with - - - - - - -
0
Encryption
Board Ethernet Shield Adafruit WiFi Shield Adafruit nRF8001 Bluefruit SPI Friend RedBear BLE ESP8622
WINC1500 CC3000 Bluefruit Shield
Library supported
IOSControllerForDue - - - - - - - Ask for it.
Library SIOSController
With - - - - TeensyForBlu - - -
Encryption efruit
To start with Arduino Manager you can follow the steps described in this section,
anyway section 16 contains more technical details.
This section applies if you are using an Ethernet Shield compatible with the
Arduino Ethernet library.
The board measures Temperature (TMP 36) and Light and then sends them to
the iOS device.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to move Servo.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 and / or Photo-resistor you can replace
them with a trimmer of 10 K and manually change the values.
3.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
3.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
3.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure, check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSController/IOSController.h
<Sketchbook location>/Libraries/IOSController/IOSController.cpp
<Sketchbook location>/Libraries/IOSController/keywords.txt
Due to low memory available on Arduino UNO, some features are not enabled
by default and you have to manually enable them with the following procedure:
Sketch uses 33,740 bytes (104%) of program storage space. Maximum is 32,256 bytes.
Global variables use 1,574 bytes (76%) of dynamic memory, leaving 474 bytes for local
variables. Maximum is 2,048 bytes.
processing.app.debug.RunnerException: Sketch too big; see
http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.
You need to disable one of the previous options in order to reduce the library
memory footprint.
Choose the right USB port where your Arduino board is connected to (for
more information visit the Arduino site: http://www.Arduino.cc)
Connection Name
Port Address (this has to be the same that you have entered into
the sketch)
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now you should be able to read the light measured by the Photo-resistor
Now, tapping on the switch, you should be able to turn the yellow LED on
and off
Double tapping on the LED Widget you can choose the preferred color
Moving the dial, the servo motor should change its position
Add an SD Widget
Double tapping on it you should be able to see the list of files in the root
directory of the SD Card and open the files.
Pushing the button, the red LED should turn off for few milliseconds and
then turn back on
Double tapping on the Push Button you can choose the preferred color
http://youtube.com/watch?v=Zwe7pHJJUzU
Once selected, you can change the widget position dragging it into the desired
position.
To delete a widget, long tap on it until the border becomes red, release you
finger then swipe it down.
Alarm widgets may be deleted only when the iOS device is connected to the
board.
Please, double check that the password entered here is exactly the same used
into the sketch.
With this configuration all data transferred to and from the Arduino board are
encrypted this make much more hard to anyone taking control of your board.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 16 contains more technical details.
This section applies if you are using the Adafruit ATWINC1500 WiFi breakout
(https://www.adafruit.com/products/2999).
The board measures Temperature (TMP 36) and Light and then sends them to
the iOS device.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to move Servo.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 and / or Photo-resistor you can replace
them with a trimmer of 10 K and manually change the values.
The board measures Temperature (TMP 36) and Light and then sends them to
the iOS device.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to move Servo.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 and / or Photo-resistor you can replace
them with a trimmer of 10 K and manually change the values.
4.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
4.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
4.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure, check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerWINC1500/keywords.txt
Sketch uses 33,740 bytes (104%) of program storage space. Maximum is 32,256 bytes.
Global variables use 1,574 bytes (76%) of dynamic memory, leaving 474 bytes for local
variables. Maximum is 2,048 bytes.
processing.app.debug.RunnerException: Sketch too big; see
http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.
you need to disable Alarm Widgets in order to reduce library memory footprint.
If you are using Arduino Zero, Alarm Widgets are not supported, so double
check that:
//#define ALARMS_SUPPORT
is commented out.
Choose the right USB port where your Arduino board is connected (for
more information visit the Arduino site: http://www.Arduino.cc)
Now on you can follows the steps from chapter 3.6 through chapter 3.9.
Please, double check that the password entered here is exactly the same used
into the sketch.
With this configuration all data transferred to and from the Arduino board are
encrypted this make much more hard to anyone taking control of your board.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 17 contains more technical details.
This section applies if you are using a WiFi Shield compatible with the Arduino
WiFi library.
Please, see chapter 3.1 and change the circuit since the Red LED is actually
connected to pin 6.
5.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
5.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
5.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure, check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerWiFi/IOSControllerWiFi.h
<Sketchbook location>/Libraries/IOSControllerWiFi/IOSControllerWiFi.cpp
<Sketchbook location>/Libraries/IOSControllerWiFi/keywords.txt
Due to low memory available on Arduino UNO, some features are not enabled
by default and you have to manually enable them with the following procedure:
Sketch uses 33,740 bytes (104%) of program storage space. Maximum is 32,256 bytes.
Global variables use 1,574 bytes (76%) of dynamic memory, leaving 474 bytes for local
variables. Maximum is 2,048 bytes.
processing.app.debug.RunnerException: Sketch too big; see
http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.
You need to disable one of the previous options in order to reduce the library
memory footprint.
Choose the right USB port where your Arduino board is connected (for
more information visit the Arduino site: http://www.Arduino.cc)
Now on you can follows the steps from chapter 3.6 through chapter 3.9.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 1917 contains more technical details.
This section applies if you are using an ESP8266 board with MEGA or Zero.
Please note that the ESP8622 device is powered at 3.3v and needs an external
power source since it can drain more current then how much Arduino MEGA
can provide.
The board measures Temperature (TMP 36) and then sends it to the iOS
device.
The iOS device sends commands to turn on and off LED 1 (yellow).
The LED on the board shows when the iOS device is connected to it.
Please, note that if you have not TMP36, you can replace it with a trimmer of 10
K and manually change the values.
The board measures Temperature (TMP 36) and then sends it to the iOS
device.
The iOS device sends commands to turn on and off LED 1 (yellow).
The LED on the board shows when the iOS device is connected to it.
Please, note that if you have not TMP36, you can replace it with a trimmer of 10
K and manually change the values.
6.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
6.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
6.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure, check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerForESP8622/IOSControllerESP8622.h
<Sketchbook location>/Libraries/IOSControllerForESP8622/IOSControllerESP8622.cpp
<Sketchbook location>/Libraries/IOSControllerForESP8622/keywords.txt
Unfortunately, a lot of firmware are available for this device and most of them
are backward incompatible.
So the best is starting with the firmware which has been used for developing
and testing Arduino Manager.
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Upload it to the device using the tools and the tutorial available on line. A good
starting point is here:
http://www.esp8266.com/wiki/doku.php?id=loading_firmware
Choose the right USB port where your Arduino board is connected to (for
more information visit the Arduino site: http://www.Arduino.cc)
Connection Name
Port Address (this has to be the same that you have entered into
the sketch)
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now, tapping on the switch, you should be able to turn the yellow LED on
and off
Double tapping on the LED Widget you can choose the preferred color
Moving the dial, the red LED should change its brightness
http://youtube.com/watch?v=Zwe7pHJJUzU
To start with Arduino Manager you can follow the steps described in this section,
anyway section 19 contains more technical details.
This section applies if you are using an ESP8266 board with Teensy 3.1.
Please note that the ESP8622 needs an external power source since it can
drain more current then how much Teensy 3.1 can provide.
The board measures Temperature (TMP 36) and then sends it to the iOS
device.
The iOS device sends commands to turn on and off LED 1 (yellow).
The LED on the board shows when the iOS device is connected to it.
Please, note that if you have not TMP36, you can replace it with a trimmer of 10
K and manually change the values.
7.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
7.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
7.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure, check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerForESP8622/IOSControllerESP8622.h
<Sketchbook location>/Libraries/IOSControllerForESP8622/IOSControllerESP8622.cpp
<Sketchbook location>/Libraries/IOSControllerForESP8622/keywords.txt
Unfortunately, a lot of firmware are available for this device and most of them
are backward incompatible.
So the best is starting with the firmware which has been used for developing
and testing Arduino Manager.
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Upload it to the device using the tools and the tutorial available on line. A good
starting point is here:
http://www.esp8266.com/wiki/doku.php?id=loading_firmware
Choose the right USB port where your Teensy board is connected to (for
more information visit the Arduino site: http://www.Arduino.cc)
Connection Name
Port Address (this has to be the same that you have entered into
the sketch)
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now, tapping on the switch, you should be able to turn the yellow LED on
and off
Double tapping on the LED Widget you can choose the preferred color
Moving the dial, the red LED should change its brightness
http://youtube.com/watch?v=Zwe7pHJJUzU
To start with Arduino Manager you can follow the steps described in this section,
anyway section 20 contains more technical details.
RFduino is a finger-tip sized, Arduino compatible, wireless enabled microcontroller, low cost
enough to leave in all of your projects.
http://www.rfduino.com
This guide assumes that your development environment for RFduino is already
installed and properly configured (see details here: http://www.rfduino.com/wp-
content/uploads/2014/04/RFduino.Quick_.Start_.Guide_.pdf and
http://www.rfduino.com/wp-
content/uploads/2014/03/rfduino.ble_.programming.reference.pdf).
On the MAC right click Arduino.app and click Show Package Content to access
the file
The internal temperature sensor measures temperature and then sends them to
the iOS device.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to change LED 3 light intensity.
LED 2 (Red) shows when the iOS device is connected to the board.
8.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
8.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
8.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure, check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerForRFduino/IOSControllerForRFduino.h
<Sketchbook location>/Libraries/IOSControllerForRFduino/IOSControllerForRFduino.cpp
<Sketchbook location>/Libraries/IOSControllerForRFduino/keywords.txt
Choose the right USB port where your RFduino board is connected
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now, tapping on the switch, you should be able to turn the yellow LED on
and off
Double tapping on the LED Widget you can choose the preferred color
Moving the dial, the luminosity of the red LED 3 should change
Pushing the button, the red LED 2 should turn off for few milliseconds and
then turn back on
Double tapping on the Push Button you can choose the preferred color
http://youtube.com/watch?v=Zwe7pHJJUzU
Step 5: After have scanned the device, edit the connection, switch to
Encryption and enter the required password.
Please, double check that the password entered here is exactly the same used
into the sketch.
With this configuration all data transferred to and from the RFduino board are
encrypted this make much more hard to anyone taking control of your board.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 21 contains more technical details.
This section applies if you are using an Adafruit nRF8001 Bluefruit LE Breakout
with UNO, MEGA. If you are using Teensy, please section 11.
Adafruit Bluefruit LE (Bluetooth Smart, Bluetooth Low Energy, Bluetooth 4.0) nRF8001
Breakout allows you to establish an easy to use wireless link between your Arduino and any
compatible iOS or Android (4.3+) device. It works by simulating a UART device beneath the
surface, sending ASCII data back and forth between the devices, letting you decide what
data to send and what to do with it on either end of the connection.
http://www.adafruit.com/product/1697
https://learn.adafruit.com/getting-started-with-the-nrf8001-bluefruit-le-breakout/software-uart-
service
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to change LED 3 (Red) luminosity.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 you can replace it with a trimmer of 10
K and manually change the values.
If you have already installed BLE SDK for Arduino and / or RBL_nRF8001
remove them before proceeding.
9.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
9.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
9.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerForBluefruit/IOSControllerForBluefruit.h
<Sketchbook location>/Libraries/ IOSControllerForBluefruit/IOSControllerForBluefruit.cpp
<Sketchbook location>/Libraries/ IOSControllerForBluefruit/keywords.txt
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now you should be able to read the temperature measured by TEMP 36;
Now, tapping on the switch, you should be able to turn the yellow LED on
and off
Double tapping on the LED Widget you can choose the preferred color
Moving the dial, the luminosity of the red LED 3 should change
Pushing the button, the red LED 2 should turn off for few milliseconds and
then turn back on
Double tapping on the Push Button you can choose the preferred color
http://youtube.com/watch?v=Zwe7pHJJUzU
Step 4: After have scanned the device, edit the connection, switch to
Encryption and enter the required password.
Please, double check that the password entered here is exactly the same used
into the sketch.
With this configuration all data transferred to and from the Arduino board are
encrypted this make much more hard to anyone taking control of your board.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 22 contains more technical details.
This section applies if you are using an Adafruit Bluefruit LE SPI Friend with
UNO, MEGA or Zero.
The Bluefruit LE SPI Friend makes it easy to add Bluetooth Low Energy connectivity to
anything with 4 or 5 GPIO pins. With SPI, you don't have to worry about baud rates, flow
control, or giving up a hardware UART port. Connect to your Arduino or other microcontroller
using the common four-pin SPI interface (MISO, MOSI, SCK and CS) plus a 5th GPIO pin for
interrupts (to let the Arduino know when data or a response is ready).
https://www.adafruit.com/products/2633
https://learn.adafruit.com/introducing-the-adafruit-bluefruit-spi-breakout
If you are using Arduino Mega or Uno, the test circuit is shown in the following
picture.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to change LED 3 (Red) luminosity.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 you can replace it with a trimmer of 10
K and manually change the values.
If you are using Arduino Zero, the test circuit is shown in the following picture.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to change LED 3 (Red) luminosity.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 you can replace it with a trimmer of 10
K and manually change the values.
If
This library is required and to install it you can use the Library Manager:
Manage Libraries
10.3.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
10.3.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
10.3.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure check that the directory
structure is like this:
<Sketchbook
location>/Libraries/IOSControllerForBluefruitSPIFriend/IOSControllerForBluefruitSPIFriend
.h
Tap on Scan BLE. If any Bluefruit SPI Friend breakout board is available,
it appears in the list of configurations
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now you should be able to read the temperature measured by TEMP 36;
Now, tapping on the switch, you should be able to turn the yellow LED on
and off
Double tapping on the LED Widget you can choose the preferred color
Moving the dial, the luminosity of the red LED 3 should change
Pushing the button, the red LED 2 should turn off for few milliseconds and
then turn back on
Double tapping on the Push Button you can choose the preferred color
http://youtube.com/watch?v=Zwe7pHJJUzU
To start with Arduino Manager you can follow the steps described in this section,
anyway section 23 contains more technical details.
This section applies if you are using an Adafruit nRF8001 Bluefruit LE Breakout
with Teensy. If you are using UNO or MEGA, please, see section 11.
Adafruit Bluefruit LE (Bluetooth Smart, Bluetooth Low Energy, Bluetooth 4.0) nRF8001
Breakout allows you to establish an easy to use wireless link between your Arduino and any
compatible iOS or Android (4.3+) device. It works by simulating a UART device beneath the
surface, sending ASCII data back and forth between the devices, letting you decide what
data to send and what to do with it on either end of the connection.
http://www.adafruit.com/product/1697
https://learn.adafruit.com/getting-started-with-the-nrf8001-bluefruit-le-breakout/software-uart-
service
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to change LED 3 (Red) luminosity.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 you can replace it with a trimmer of 10
K and manually change the values.
11.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
11.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
11.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerTeensyForBluefruit/IOSControllerForBluefruit.h
<Sketchbook location>/Libraries/IOSControllerTeensyForBluefruit
/IOSControllerForBluefruit.cpp
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Please, double check that the password entered here is exactly the same used
into the sketch.
With this configuration all data transferred to and from the Arduino board are
encrypted this make much more hard to anyone taking control of your board.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 24 contains more technical details.
BLE Shield stands for Bluetooth Low Energy (BLE) Shield. It is designed to work with
Arduino boards, including Arduino Uno, Mega and Leonardo. BLE shield could operate under
3.3V or 5V, therefore it should work with a lot of Arduino compatibles too.
http://redbearlab.com/bleshield/
The board measures Temperature (TMP 36) and Light and then sends them to
the iOS device.
The iOS device sends commands to turn on and off LED 1 (yellow) and
commands to move Servo.
LED 2 (Red) shows when the iOS device is connected to the board.
Please, note that if you have not TMP36 and / or Photo-resistor you can replace
them with a trimmer of 10 K and manually change the values.
Select
12.3.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
12.3.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
12.3.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerBLE/IOSControllerBLE.h
<Sketchbook location>/Libraries/IOSControllerBLE/IOSControllerBLE.cpp
<Sketchbook location>/Libraries/IOSControllerBLE/keywords.txt
Choose the right USB port where your Arduino board is connected
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
To start with Arduino Manager you can follow the steps described in this section,
anyway section 25 contains more technical details.
This section applies if you are using an Adafruit CC3000 WiFi Breakout.
Everything should work also with Adafruit CC3000 WiFi Shield even thought we
have not tested it yet.
http://www.adafruit.com/products/1469
http://www.adafruit.com/product/1697
https://learn.adafruit.com/adafruit-cc3000-wifi
The board measures Temperature (TMP 36), light intensity and voltage value at
a Potentiometer and then sends it to the iOS device.
The iOS device sends commands to turn on and off LED 1 (yellow).
Please, note that if you have not TMP36 you can replace it with a trimmer of 10
K and manually change the values.
VBEN to Digital 5
IRQ to Digital 3
CLK to Digital 13
MISO to Digital 12
MOSI to Digital 11
CS to Digital 10
VBEN to Digital 5
IRQ to Digital 3
CS to digital 10
This library is required and to install it you can use the Library Manager:
Manage Libraries
13.3.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
13.3.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
Choose the right USB port where your Arduino board is connected (for
more information visit the Arduino site: http://www.Arduino.cc)
Connection Name
Port Address
Tap Ok
Select the just created connection, few seconds later the connection
indicator on the right bottom side of the screen should change to green.
The two devices are now connected. At the same time, the red LED
should turn on
Now you should be able to read the light measured by the Photo-resistor
Now, clicking on the switch, you should be able to turn the yellow LED on
and off
Double clicking on the LED Widget you can choose the preferred color
Moving the dial, the servo motor should change its position
Pushing the button, the red LED should turn off for few milliseconds and
then turn back on
Double clicking on the Push Button you can choose the preferred color
http://www.youtube.com/watch?v=jp8s6DJdHoc&feature=player_detailpage
Now on you can follows the steps from chapter 8.6 through chapter 8.7.
Please, double check that the password entered here is exactly the same used
into the sketch.
With this configuration all data transferred to and from the Arduino board are
encrypted this make much more hard to anyone taking control of your board.
To start with Arduino Manager you can follow the steps described in this section,
anyway section 26 contains more technical details.
14.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
14.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
14.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerForYun/IOSControllerForYun.h
<Sketchbook location>/Libraries/IOSControllerForYun/IOSControllerForYun.cpp
<Sketchbook location>/Libraries/IOSControllerForYun/keywords.txt
To start with Arduino Manager you can follow the steps described in this section,
anyway section 27 contains more technical details.
15.2.1 Windows
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.exe
15.2.2 Mac
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Unzip it
Run iOSControllerLibrariesInstaller.app
15.2.3 Linux
https://sites.google.com/site/fabboco/home/arduino-manager-for-iphone-ipad
Please, at the end of library installation procedure check that the directory
structure is like this:
<Sketchbook location>/Libraries/IOSControllerForGalileo/IOSControllerForGalileo.h
For some reason the Wire library is replicated into the Servo library and they
cannot be used together. To fix this issue follow the following procedure:
/Intel/hardware/i586/1.6.7+1.0/libraries/Servo/src/Wire.h
/Intel/hardware/i586/1.6.7+1.0/libraries/Servo/src/Wire.cpp
Alarms are based on the Galileo internal clock, which then needs to be set
following these steps:
Time is UTC
Define Description
MM Month
dd Day
hh Hours, in 24h format
mm Minutes
yy year
Please, remember that this procedure has to be followed each time the board is
turned on.
Otherwise you can wire a battery so that the board clock runs also when the board is
turned off.
16 Development Manual
IOSController
The IOSController library allows to the iOS Arduino Manager app to receive
information from your own sketches and to control them.
This library works with the Ethernet Shield and the Ethernet Library
(http://arduino.cc/en/Reference/Ethernet)1.
Limitations:
Define Description
SD_SUPPORT If it is not defined, the support
for reading SD Card content is
removed and the SD Widget cannot
be used.
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
SDLOGGEDATAGRAPH_SUPPORT If it is not defined, the support
for reading accessing logged data
1
It should also work with other shields, which fully support the official Ethernet library, but it has not been tested
yet. You have been warned.
Define Description
is removed and the Logged Data
Graph Widget cannot be used.
16.3.1 IOSController
Parameter Description
EthernetServer *server Instance of EthernetServer class.
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the
iOS device needs to download the
file which name is defined by
value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
Parameter Description
the device. May be NULL.
16.3.2 IOSController
Parameter Description
EthernetServer *server Instance of EthernetServer class.
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the
iOS device needs to download the
file which name is defined by
value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*processAlarms)(char *alarm), Callback function called when an
alarm has been fired. May be
NULL.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
16.3.3 loop
Parameter Description
unsigned long delay Delay in processing incoming and
out coming messages.
Delay is in milliseconds.
Lower the delay, faster the
messages are processed.
16.3.4 writeMessage
Lets suppose that the iOS device has a Display Widget called T. Periodically
the callback function processOutgoingMessages is called and inside this
function the iOS Widget is updated calling:
writeMessage(T,123);
Parameter Description
char *variable Name of the variable
float value Value of the variable
16.3.5 writeTripleMessage
Lets suppose that the iOS device has a Accelerometer Widget called Acc.
Periodically the callback function processOutgoingMessages is called and
inside this function the iOS Widget is updated calling:
writeTripleMessage(Acc,accX,accY,accZ);
Parameter Description
char *variable Name of the variable
float value1 First value of the variable
float value2 Second value of the variable
float value3 Third value of the variable
16.3.6 writeTxtMessage
Parameter Description
char *variable Name of the variable
char *value Value of the variable
16.3.7 temporaryDigitalWrite
This function write the value to the pin for some time then set the previous
values.
temporaryDigitalWrite(pin13,HIGH,50);
If pin13 is LOW, this brings pin13 to HIGH for 50ms and then pin13 goes back
to LOW. If pin13 is LOW, it is unchanged.
Parameter Description
uint8_t pin The pin number
uint8_t value HIGH or LOW
unsigned long ms Duration of pins value change
Please, note that this function pause the sketch execution for the time indicated
by the ms parameter. So, use it with caution.
16.3.8 sendFileList
This function sends a message to the connected iOS device with the list of files
available in the root directory of the SD Card.
16.3.9 sendFile
This function sends a message to the connected iOS device with the content of
the requested file.
Parameter Description
char * fileName Name of the file to send
16.3.10 setNTPServerAddress
This function set the address of the NTP Server used to synchronize time of the
clock for firing alarms.
Parameter Description
IPAddress address IPAddress of NTP Server
16.3.11 log
This function allows writing a text message or an integer on the Console Widget.
Parameter Description
Parameter Description
int *msg Integer value to write on the
Console Widget
16.3.12 logLn
This function allows writing a text message or an integer on the Console Widget
followed by a new line (\n).
Parameter Description
char *msg character message to write on the
Console Widget
Parameter Description
int *msg integer value to write on the
Console Widget
Parameter Description
long *msg long value to write on the
Console Widget
Parameter Description
unsigned long *msg Unsigned long value to write on
the Console Widget
16.3.13 sdLogLabels
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
char *label1 First label
char *label2 Second label
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
char *label1 First label
char *label2 Second label
char *label3 Third label
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
char *label2 Second label
char *label3 Third label
char *label4 Forth label
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
char *label2 Second label
char *label3 Third label
char *label4 Forth label
char *label5 Fifth label
16.3.14 sdLog
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
unsigned long time current time as Unix epoch
float value1 First value
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
float value3 Third value
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
float value3 Third value
float value4 Forth value
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
float value3 Third value
float value4 Forth value
float value5 Fifth value
16.3.15 sdPurgeLogData
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
16.3.16 now
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
/*
*
* Ethernet Library configuration
*
*/
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address assigned to
the board
/*
*
* IP info
*
* Using DHCP these parameters are not needed
*/
IPAddress ip(192,168,1, 220);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
// Other initializations
int yellowLedPin = 8;
int yellowLed;
/*
*
* Prototypes of IOSControllers callbacks
*
*
*/
void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void deviceConnected();
void deviceDisconnected();
/*
*
* IOSController Library initialization
*
*/
IOSController
iosController(&server,&doWork,&doSync,&processIncomingMessages,&processOutgoingMes
sages,&processAlarms,&deviceConnected,&deviceDisconnected);
void setup()
{
/*
* Start the Ethernet connection and the server
* ATTENTION: Ethernet Library provided with Arduino 1.0 has the subnet and gateway
swapped respect to the documentation
*
*/
server.begin();
delay(500);
}
void loop() {
iosController.loop(450);
}
/**
*
*
* This function is called periodically and its equivalent to the standard loop()
function
*
*/
void doWork()
{
// Here the actual work is performed
temperature = analogRead();
digitalWrite(yellowLedPin,yellowLed);
/**
*
*
* This function is called when a new message is received from the iOS device
*
*/
void processIncomingMessages(char *variable, char *value) {
if (strcmp(variable,"S1")==0) {
yellowLed = atoi(value);
s1 = yellowLed;
}
if (strcmp(variable,"Knob1")==0) {
servoPos = atoi(value);
}
if (strcmp(variable,"Push1") == 0){
iosController.temporaryDigitalWrite(connectionLedPin,LOW,500);
}
}
/**
*
*
* This function is called periodically and messages can be sent to the iOS device
*
*/
void processOutgoingMessages() {
iosController.writeMessage("T",temperature);
...
iosController.writeMessage("Led13",yellowLed);
}
/**
*
*
* This function is called when the iOS device connects and needs to initialize the
position of switches and knobs
*
*/
void doSync (char *variable) {
if (strcmp(variable,"S1")==0) {
/**
*
*
* This function is called when a Alarm is fired
*
*/
void processAlarms(char *alarm) {
/**
*
*
* This function is called when the iOS device connects
*
*/
void deviceConnected () {
/**
*
* This function is called when the iOS device disconnects
*
*/
void deviceDisconnected () {
17 Development Manual
IOSControllerWINC1500
Limitations:
Define Description
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
17.3.1 IOSControllerWINC1500
Parameter Description
Adafruit_WINC1500Server *server Instance of WINC1500Server class.
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the
iOS device needs to download the
file which name is defined by
value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
Parameter Description
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
17.3.2 IOSControllerWINC1500
Parameter Description
Adafruit_WINC1500Server *server Instance of WINC1500Server class.
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the
iOS device needs to download the
file which name is defined by
value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*processAlarms)(char *alarm), Callback function called when an
alarm has been fired. May be
NULL.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
Parameter Description
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
17.3.3 loop
17.3.4 writeMessage
17.3.5 writeTripleMessage
17.3.6 writeTxtMessage
17.3.7 temporaryDigitalWrite
17.3.8 setNTPServerAddress
17.3.9 log
17.3.10 logLn
17.3.11 now
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
#include <SPI.h>
#include <Adafruit_WINC1500.h>
#include <Servo.h>
#include <IOSControllerForWINC1500.h>
#define WINC_CS 8
#define WINC_IRQ 7
#define WINC_RST 4
/*
*
* WiFI Library configuration
*
*/
IPAddress ip(192,168,1,233);
IPAddress dns(8,8,8,8);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
Adafruit_WINC1500Server server(80);
/**
*
* Other initializations
*
*/
#define YELLOWLEDPIN 9
int yellowLed = HIGH;
/*
*
* Prototypes of IOSControllerWINC1500s callbacks
*
*
*/
void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void processAlarms(char *variable);
void deviceConnected();
void deviceDisconnected();
/*
*
* IOSController Library initialization
*
*/
#ifdef ALARMS_SUPPORT
IOSControllerForWINC1500
iosController(&server,&doWork,&doSync,&processIncomingMessages,&processOutgoingMes
sages,&processAlarms,&deviceConnected,&deviceDisconnected);
#else
IOSControllerForWINC1500
iosController(&server,&doWork,&doSync,&processIncomingMessages,&processOutgoingMes
sages,&deviceConnected,&deviceDisconnected);
#endif
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// Connect to WPA/WPA2 network. Change this line if using open or WEP network
status = WiFi.begin(ssid, pass);
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
/**
*
* Other initializations
*
*/
/**
*
* Standard loop function
*
*/
void loop() {
iosController.loop(20);
}
/**
*
*
* This function is called periodically and its equivalent to the standard loop()
function
*
*/
void doWork() {
temperature = analogRead();
digitalWrite(yellowLedPin,yellowLed);
}
/**
*
*
* This function is called when the ios device connects and needs to initialize the
position of switches and knobs
*
*/
void doSync (char *variable) {
if (strcmp(variable,"Knob1")==0) {
iosController.writeMessage(variable,map(servo.read(),0,180,0,1023));
}
/**
*
*
* This function is called when a new message is received from the iOS device
*
*/
void processIncomingMessages(char *variable, char *value) {
if (strcmp(variable,"S1")==0) {
yellowLed = atoi(value);
}
/**
*
*
* This function is called periodically and messages can be sent to the iOS device
*
*/
void processOutgoingMessages() {
iosController.writeMessage("T",temperature);
/**
*
*
* This function is called when a Alarm is fired
*
*/
/**
*
*
* This function is called when the iOS device connects
*
*/
void deviceConnected () {
/**
*
*
* This function is called when the iOS device disconnects
*
*/
void deviceDisconnected () {
18 Development Manual
IOSControllerWiFi
Limitations:
Define Description
SD_SUPPORT If it is not defined, the support
for reading SD Card content is
removed and the SD Widget cannot
be used.
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
SDLOGGEDATAGRAPH_SUPPORT If it is not defined, the support
2
It should also work with other shields, which fully support the official WiFi library, but it has not been tested yet.
You have been warned.
Define Description
for reading accessing logged data
is removed and the Logged Data
Graph Widget cannot be used.
18.3.1 IOSControllerWiFi
Parameter Description
WiFiServer *server Instance of Ethernet Server class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
Parameter Description
device. May be NULL.
18.3.2 IOSControllerWiFi
Parameter Description
WiFiServer *server Instance of Ethernet Server class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS device.
void (*processAlarms)(char *alarm), Callback function called when an
alarm has been fired. May be NULL.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
device. May be NULL.
18.3.3 loop
18.3.4 writeMessage
18.3.5 writeMessage
18.3.6 writeTxtMessage
18.3.7 temporaryDigitalWrite
18.3.8 sendFileList
18.3.9 sendFile
18.3.10 setNTPServerAddress
18.3.11 log
18.3.12 logLn
18.3.13 sdLogLabels
18.3.14 sdLog
18.3.15 sdPurgeLogData
18.3.16 now
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
/*
*
* WiFI Library configuration
*
*/
char ssid[] = "YOUR_SSID"; // your network SSID (name)
char pass[] = "YOUR_PASSWORD"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)
WiFiServer server(80);
// Other initializations
int yellowLedPin = 8;
int yellowLed;
/*
*
* Prototypes of IOSControllers callbacks
*
*
*/
void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void deviceConnected();
void deviceDisconnected();
/*
*
* IOSController Library initialization
*
*/
IOSControllerWiFi
iosControllerWiFi(&server,&doWork,&doSync,&processIncomingMessages,&processOutgoin
gMessages,&processAlarms,&deviceConnected,&deviceDisconnected);
void setup()
{
//attempt to connect to Wifi network:
while ( status != WL_CONNECTED)
{
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);
// wait 10 seconds for connection:
delay(10000);
}
server.begin();
delay(500);
}
void loop()
{
// Only this function is called
iosControllerWiFi.loop(450);
/**
*
*
* This function is called periodically and its equivalent to the standard loop()
function
*
*/
void doWork()
{
// Here the actual work is performed
temperature = analogRead();
digitalWrite(yellowLedPin,yellowLed);
}
/**
*
*
* This function is called when a new message is received from the iOS device
*
*/
void processIncomingMessages(char *variable, char *value) {
if (strcmp(variable,"S1")==0) {
yellowLed = atoi(value);
s1 = yellowLed;
}
if (strcmp(variable,"Knob1")==0) {
servoPos = atoi(value);
}
if (strcmp(variable,"Push1") == 0){
iosControllerWiFi.temporaryDigitalWrite(connectionLedPin,LOW,500);
}
}
/**
*
*
* This function is called periodically and messages can be sent to the iOS device
*
*/
void processOutgoingMessages() {
iosControllerWiFi.writeMessage("T",temperature);
...
iosControllerWiFi.writeMessage("Led13",yellowLed);
}
/**
*
*
* This function is called when the iOS device connects and needs to initialize the
position of switches and knobs
*
*/
void doSync (char *variable) {
if (strcmp(variable,"S1")==0) {
iosControllerWiFi.writeMessage(variable, yellowLed));
}
/**
*
*
* This function is called when a Alarm is fired
*
*/
void processAlarms(char *alarm) {
/**
*
*
* This function is called when the iOS device connects
*
*/
void deviceConnected () {
/**
*
*
* This function is called when the iOS device disconnects
*
*/
void deviceDisconnected () {
if (strcmp(variable,"RC_T") == 0) {
currentSpeed = map(atoi(value),0,100,0,255);
if (strcmp(variable,"RC_F") == 0) {
if (strcmp(variable,"RC_B") == 0) {
if (strcmp(variable,"RC_R") == 0) {
if (strcmp(variable,"RC_L") == 0) {
19 Development Manual
IOSControllerForESP8622
Limitations:
SD Widget
19.3.1 IOSControllerForESP8622
Parameter Description
HardwareSerial &s Serial used for communicating
with ESP8622
void (*doWork)(void) Callback function which replace
19.3.2 IOSControllerForESP8622
Parameter Description
HardwareSerial &s Serial used for communicating
with ESP8622
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
19.3.3 begin
This function sets network parameters and initialize the ESP8622 device.
Parameter Description
String ssid SSID of the network to connect to
String password Password of the network to
connect to
String address IP address to assign to the
ESP8622
String port IP port to assign to the ESP8622
19.3.4 loop
19.3.5 writeMessage
19.3.6 writeMessage
19.3.7 writeTripleMessage
19.3.8 writeTxtMessage
19.3.9 temporaryDigitalWrite
19.3.10 setNTPServerAddress
19.3.11 Log
19.3.12 logLn
19.3.13 now
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
//
// Other initializations
/*
*
* Prototypes of IOSControllerForESP8622s callbacks
*
*
*/
void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void deviceConnected();
void deviceDisconnected();
/*
*
* IOSController Library initialization
*
*/
char ssid[] = "Your SSID";
char pass[] = "Your Password";
IOSControllerForESP8266 iosController(Serial1,
&doWork,
&doSync,
&processIncomingMessages,
&processOutgoingMessages,
&processAlarms,
&deviceConnected,
&deviceDisconnected);
void setup()
{
Serial.begin(9600);
Serial1.begin(115200); // your esp's baud rate might be different
if (!iosController.begin(ssid,pass, "192.168.1.235",80)) {
Serial.println("Setup failed");
while(true)
;
}
delay(500);
}
void loop()
{
// Only this function is called
iosController.loop(50);
}
/**
*
*
* This function is called periodically and its equivalent to the standard loop()
function
*
*/
void doWork()
{
// Here the actual work is performed
/**
*
*
* This function is called when a new message is received from the iOS device
*
*/
void processIncomingMessages(char *variable, char *value) {
if (strcmp(variable,"S1") == 0)
digitalWrite(YELLOWLED,atoi(value));
}
/**
*
*
* This function is called periodically and messages can be sent to the iOS device
*
*/
void processOutgoingMessages() {
iosController.writeMessage("T",temperature);
...
iosController.writeMessage("Led13", digitalRead(YELLOWLED));
}
/**
*
*
* This function is called when the iOS device connects and needs to initialize the
position of switches and knobs
*
*/
void doSync (char *variable) {
if (strcmp(variable,"S1")==0) {
/**
*
*
* This function is called when a Alarm is fired
*
*/
void processAlarms(char *alarm) {
/**
*
*
* This function is called when the iOS device connects
*
*/
void deviceConnected () {
/**
*
* This function is called when the iOS device disconnects
*
*/
void deviceDisconnected () {
20 Development Manual
IOSControllerForRFduino
Limitations:
Alarm
SD Widget
20.3.1 IOSControllerForRFduino
Parameter Description
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
20.3.2 Loop
20.3.3 writeMessage
20.3.4 writeTripleMessage
20.3.5 writeTxtMessage
20.3.6 temporaryDigitalWrite
20.3.7 log
20.3.8 logLn
20.3.9 now
See chapter 0.
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
#define YELLOWLEDPIN 4
#define CONNECTIONPIN 6
#define VARIABLELED 2
#define POTENTIOMETERPIN 3
int yellowLed;
int connectionLed;
int pot;
float temp;
/*
*
* Prototypes of IOSControllerRFduinos callbacks
*
*
*/
void doWork();
void doSync(char *variable);
void processIncomingMessages(char *variable, char *value);
void processOutgoingMessages();
void deviceConnected();
void deviceDisconnected();
/*
*
* IOSControllerForRFduino Library initialization
*
*/
IOSControllerForRFduino
iosController(&doWork,&doSync,&processIncomingMessages,&processOutgoingMessages,&d
eviceConnected,&deviceDisconnected);
void setup()
{
Serial.begin(9600);
// Yellow LED on
pinMode(YELLOWLEDPIN,OUTPUT);
digitalWrite(YELLOWLEDPIN,yellowLed);
Serial.println("Setup completed");
}
void loop() {
iosController.loop();
}
void doWork() {
temp = RFduino_temperature(CELSIUS);
}
if (strcmp(variable,"S1")==0) {
iosController.writeMessage(variable,digitalRead(YELLOWLEDPIN));
}
if (strcmp(variable,"S1")==0) {
yellowLed = atoi(value);
}
void processOutgoingMessages() {
//Serial.println("Outgoing");
iosController.writeMessage("T",temp);
}
void deviceConnected() {
digitalWrite(CONNECTIONPIN,HIGH);
}
void deviceDisconnected() {
digitalWrite(CONNECTIONPIN,LOW);
}
21 Development Manual
IOSControllerForBluefruit
Limitations:
Alarm Widget
SD Widget
21.3.1 IOSControllerForBluefruit
Parameter Description
void (*doWork)(void) Callback function which replace
21.3.2 loop
21.3.3 writeMessage
21.3.4 writeTripleMessage
21.3.5 writeTxtMessage
21.3.6 temporaryDigitalWrite
21.3.7 log
21.3.8 logLn
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
#include "Adafruit_BLE_UART.h"
#include "IOSControllerForBluefruit.h"
#define YELLOWLEDPIN 4
#define CONNECTIONPIN 6
#define TEMPERATUREPIN 0
#define VARIABLELED 5
#define POTENTIOMETERPIN 3
int yellowLed;
int connectionLed;
int pot;
float temperature;
/*
*
* IOSControllerForForBluefruit Library initialization
*
*/
IOSControllerForBluefruit
iosController(&doWork,&doSync,&processIncomingMessages,&processOutgoingMessages,&d
eviceConnected,&deviceDisconnected);
void setup()
{
Serial.begin(9600);
Serial.println(F("Setup completed"));
}
void loop() {
iosController.loop();
}
void doWork() {
if (strcmp(variable,"S1")==0) {
iosController.writeMessage(variable,digitalRead(YELLOWLEDPIN));
}
if (strcmp(variable,"S1")==0) {
Led13 = atoi(value);
digitalWrite(6,Led13);
}
void processOutgoingMessages() {
iosController.writeMessage("T",temperature);
iosController.writeMessage("Led13",yellowLed);
iosController.writeMessage("Pot",pot);
}
void deviceConnected () {
digitalWrite(CONNECTIONPIN,HIGH);
}
void deviceDisconnected () {
digitalWrite(CONNECTIONPIN,LOW);
}
22 Development Manual
IOSControllerForBluefruitSPIF
riend
Limitations:
Alarm Widget
SD Widget
22.3.1 IOSControllerForBluefruitSPIFriend
Parameter Description
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
22.3.2 loop
22.3.3 writeMessage
22.3.4 writeTripleMessage
22.3.5 writeTxtMessage
22.3.6 temporaryDigitalWrite
22.3.7 log
22.3.8 logLn
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
#define YELLOWLEDPIN 4
#define CONNECTIONPIN 6
#define TEMPERATUREPIN 0
#define VARIABLELED 5
#define POTENTIOMETERPIN 3
int yellowLed;
int connectionLed;
int pot;
float temperature;
/*
*
* IOSControllerForBluefruitSPIFriend Library initialization
*
*/
IOSControllerForBluefruitSPIFriend
iosController(&doWork,&doSync,&processIncomingMessages,&processOutgoingMessages,&d
eviceConnected,&deviceDisconnected);
void setup()
{
Serial.begin(9600);
Serial.println(F("Setup completed"));
}
void loop() {
iosController.loop();
}
void doWork() {
if (strcmp(variable,"S1")==0) {
iosController.writeMessage(variable,digitalRead(YELLOWLEDPIN));
}
if (strcmp(variable,"S1")==0) {
Led13 = atoi(value);
digitalWrite(6,Led13);
}
void processOutgoingMessages() {
iosController.writeMessage("T",temperature);
iosController.writeMessage("Led13",yellowLed);
iosController.writeMessage("Pot",pot);
}
void deviceConnected () {
digitalWrite(CONNECTIONPIN,HIGH);
}
void deviceDisconnected () {
digitalWrite(CONNECTIONPIN,LOW);
}
23 Development Manual
IOSControllerTeensyForBlue
fruit
Limitations:
Alarm Widget
SD Widget
23.3.1 IOSControllerTeensyForBluefruit
Parameter Description
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
24 Development Manual
IOSControllerBLE
The IOSControllerBLE library allows to the iOS Arduino Manager app to receive
information from your own sketches and to control them.
Limitations:
The IOSControllerBLE library doesnt support the following Widget which then
cannot be used with the BLE Shield.
SD Widget
Define Description
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
24.4.1 IOSControllerBLE
Parameter Description
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
24.4.2 IOSControllerBLE
Parameter Description
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
24.4.3 loop
24.4.4 writeMessage
24.4.5 writeTripleMessage
24.4.6 writeTxtMessage
24.4.7 temporaryDigitalWrite
24.4.8 log
24.4.9 logLn
24.4.10 now
See chapter 0.
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
#include <Arduino.h>
#include <SPI.h>
#include <Servo.h>
#include "ble.h"
#include <IOSControllerBLE.h>
#define YELLOWLEDPIN 6
#define CONNECTIONPIN 7
#define TEMPERATUREPIN 0
#define LIGHTPIN 1
#define POTENTIOMETERPIN 2
#define SERVOPIN 5
boolean Led13;
int light;
int pot;
float temperature;
Servo servo;
int servoPos;
#ifdef ALARMS_SUPPORT
IOSControllerBLE
iosController(&doWork,&doSync,&processIncomingMessages,&processOutgoingMessages,&p
rocessAlarms,&deviceConnected,&deviceDisconnected);
#else
IOSControllerBLE
iosController(&doWork,&doSync,&processIncomingMessages,&processOutgoingMessages,&d
eviceConnected,&deviceDisconnected);
#endif
void setup()
{
SPI.setDataMode(SPI_MODE0);
SPI.setBitOrder(LSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV16);
SPI.begin();
ble_begin();
Serial.begin(115200);
..
Serial.println("Setup Completed");
}
void loop() {
iosController.loop();
}
void doWork() {
if (strcmp(variable,"S1")==0) {
iosController.writeMessage(variable,digitalRead(YELLOWLEDPIN));
}
if (strcmp(variable,"S1")==0) {
Led13 = atoi(value);
digitalWrite(6,Led13);
}
void processOutgoingMessages() {
iosController.writeMessage("Led13",Led13);
iosController.writeMessage("T",temperature);
iosController.writeMessage("L",light);
iosController.writeMessage("Pot",pot);
}
void deviceConnected () {
digitalWrite(CONNECTIONPIN,HIGH);
}
void deviceDisconnected () {
digitalWrite(CONNECTIONPIN,LOW);
}
#ifdef ALARMS_SUPPORT
/**
*
*
* This function is called when a Alarm is fired
*
*/
void processAlarms(char *alarm) {
iosController.logLn(alarm);
}
#endif
25 Development Manual
IOSControllerWiFiCC3000
Limitations:
Define Description
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
25.3.1 IOSControllerWiFiCC3000
Parameter Description
Adafruit_CC3000_Server *server Instance of Adafruit_CC3000_Server
class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS Device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
device. May be NULL.
25.3.2 IOSControllerWiFiCC3000
Parameter Description
Adafruit_CC3000 *cc3000 Pointer to instance of
Adafruit_CC3000
Adafruit_CC3000_Server *server Pointer to instance of
Adafruit_CC3000_Server class.
void (*doWork)(void) Callback function which replace
the standard loop() in the
sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the
iOS device needs to download the
file which name is defined by
value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages
to the iOS device.
void (*processAlarms)(char *alarm), Callback function called when an
alarm has been fired. May be
NULL.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from
the device. May be NULL.
25.3.3 loop
25.3.4 writeMessage
25.3.5 writeTripleMessage
25.3.6 writeTxtMessage
25.3.7 temporaryDigitalWrite
25.3.8 Log
25.3.9 logLn
25.3.10 now
doSync: when this callback function is called, the iOS device is just
connected and it needs to initialize the position of switches and knobs.
#include <Servo.h>
#include <IOSControllerWiFiCC3000.h>
#define ADAFRUIT_CC3000_IRQ 3
#define ADAFRUIT_CC3000_VBAT 5
#define ADAFRUIT_CC3000_CS 10
/*
*
* WiFI Library configuration
*
*/
char ssid[] = "YOUR_SSID"; // your network SSID (name)
char pass[] = "YOUR_PASSWORD"; // your network password
/**
*
* Other initializations
*
*/
#define YELLOWLEDPIN 8
int yellowLed = HIGH;
/*
*
* Prototypes of IOSControllers callbacks
*
*
*/
void doWork();
/*
*
* IOSController Library initialization
*
*/
IOSControllerWiFiCC3000
iosController(&cc3000,&server,&doWork,&doSync,&processIncomingMessages,&processOut
goingMessages,&processAlarms,&deviceConnected,&deviceDisconnected);
void setup() {
Serial.begin(9600);
Serial.println(F("Check wiring"));
while(1);
}
Serial.println(F("Connected!"));
while (!cc3000.checkDHCP()) {
delay(100);
}
/**
*
* Other initializations
*
*/
// Yellow LED on
pinMode(YELLOWLEDPIN,OUTPUT);
digitalWrite(YELLOWLEDPIN,yellowLed);
Serial.println(F("Setup Completed"));
}
/**
*
* Standard loop function
*
*/
void loop()
{
iosController.loop(0);
}
/**
*
*
* This function is called periodically and its equivalent to the standard loop()
function
*
*/
void doWork() {
temperature = analogRead();
digitalWrite(YELLOWLEDPIN,yellowLed);
/**
*
*
* This function is called when the iOS device connects and needs to initialize the
position of switches and knobs
*
*/
void doSync (char *variable) {
if (strcmp(variable,"S1")==0) {
iosController.writeMessage(variable,digitalRead(YELLOWLEDPIN));
}
/**
*
*
* This function is called when a new message is received from the iOS device
*
*/
void processIncomingMessages(char *variable, char *value) {
if (strcmp(variable,"S1")==0) {
yellowLed = atoi(value);
}
/**
*
*
* This function is called periodically and messages can be sent to the iOS device
*
*/
void processOutgoingMessages() {
iosController.writeMessage("T",temperature);
/**
*
*
* This function is called when a Alarm is fired
*
*/
void processAlarms(char *alarm) {
/**
*
*
* This function is called when the iOS device connects
*
*/
void deviceConnected () {
/**
*
*
* This function is called when the iOS device disconnects
*
*/
void deviceDisconnected () {
26 Development Manual
IOSControllerForYun
The IOSController library allows to the iOS Arduino Manager app to receive
information from your own sketches and to control them.
Limitations:
Define Description
SD_SUPPORT If it is not defined, the support
for reading SD Card content is
removed and the SD Widget cannot
be used.
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
26.3.1 IOSControllerForYun
Parameter Description
YunServer *server Instance of YunServer class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
device. May be NULL.
26.3.2 IOSControllerForYun
Parameter Description
YunServer *server Instance of YunServer class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS device.
void (*processAlarms)(char *alarm), Callback function called when an
alarm has been fired. May be NULL.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
device. May be NULL.
26.3.3 loop
Parameter Description
unsigned long delay Delay in processing incoming and
out coming messages.
Delay is in milliseconds.
Lower the delay, faster the
26.3.4 writeMessage
Lets suppose that the iOS device has a Display Widget called T. Periodically
the callback function processOutgoingMessages is called and inside this
function the iOS Widget is updated calling:
writeMessage(T,123);
Parameter Description
char *variable Name of the variable
float value Value of the variable
26.3.5 writeTripleMessage
Lets suppose that the iOS device has a Accelerometer Widget called Acc.
Periodically the callback function processOutgoingMessages is called and
inside this function the iOS Widget is updated calling:
writeTripleMessage(Acc,accX,accY,accZ);
Parameter Description
char *variable Name of the variable
float value1 First value of the variable
float value2 Second value of the variable
float value3 Third value of the variable
26.3.6 writeTxtMessage
Parameter Description
char *variable Name of the variable
char *value Value of the variable
26.3.7 temporaryDigitalWrite
This function write the value to the pin for some time then set the previous
values.
temporaryDigitalWrite(pin13,HIGH,50);
If pin13 is LOW, this brings pin13 to HIGH for 50ms and then pin13 goes back
to LOW. If pin13 is LOW, it is unchanged.
Parameter Description
uint8_t pin The pin number
uint8_t value HIGH or LOW
26.3.8 log
This function allows writing a text message or an integer on the Console Widget.
Parameter Description
char *msg character message to write on the
Console Widget
Parameter Description
int *msg Integer value to write on the
Console Widget
26.3.9 logLn
This function allows writing a text message or an integer on the Console Widget
followed by a new line (\n).
Parameter Description
char *msg character message to write on the
Console Widget
Parameter Description
int *msg integer value to write on the
Console Widget
Parameter Description
long *msg long value to write on the Console
Widget
Parameter Description
unsigned long *msg Unsigned long value to write on
the Console Widget
26.3.10 now
27 Development Manual
IOSControllerForGalileo
The IOSController library allows to the iOS Arduino Manager app to receive
information from your own sketches and to control them.
Limitations:
Please, see paragraph 15.5, for properly set board clock and use the Alarm
Widget.
Define Description
SD_SUPPORT If it is not defined, the support
for reading SD Card content is
removed and the SD Widget cannot
be used.
ALARMS_SUPPORT If it is not defined, the support
for Alarms is removed and the
Alarm Widget cannot be used.
SDLOGGEDATAGRAPH_SUPPORT If it is not defined, the support
for reading accessing logged data
is removed and the Logged Data
Graph Widget cannot be used.
27.3.1 IOSControllerForGalileo
Parameter Description
EthernetServer *server Instance of EthernetServer class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS device.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
device. May be NULL.
27.3.2 IOSControllerForGalileo
Parameter Description
EthernetServer *server Instance of EthernetServer class.
void (*doWork)(void) Callback function which replace
the standard loop() in the sketch.
void (*doSync)(char *variable) Callback function called when the
iOS device needs to synchronize
switches and knobs positions with
the board.
void (*processIncomingMessages)(char Callback function called when the
*variable, char *value) board receives a message. This
means that variable has a value.
Variable has value SD if the iOS
device needs the list of files in
the SD Card.
Variable has value SDDL if the iOS
device needs to download the file
which name is defined by value.
void (*processOutgoingMessages)(void) Callback function called when the
board is ready to send messages to
the iOS device.
void (*processAlarms)(char *alarm), Callback function called when an
alarm has been fired. May be NULL.
void (*deviceConnected)(void) Callback function called when the
iOS device connects to the board.
May be NULL.
void (*deviceDisconnected)(void) Callback function called when the
iOS device is disconnects from the
device. May be NULL.
27.3.3 loop
Parameter Description
unsigned long delay Delay in processing incoming and
27.3.4 writeMessage
Lets suppose that the iOS device has a Display Widget called T. Periodically
the callback function processOutgoingMessages is called and inside this
function the iOS Widget is updated calling:
writeMessage(T,123);
Parameter Description
char *variable Name of the variable
float value Value of the variable
27.3.5 writeTripleMessage
Lets suppose that the iOS device has a Accelerometer Widget called Acc.
Periodically the callback function processOutgoingMessages is called and
inside this function the iOS Widget is updated calling:
writeTripleMessage(Acc,accX,accY,accZ);
Parameter Description
char *variable Name of the variable
float value1 First value of the variable
float value2 Second value of the variable
27.3.6 writeTxtMessage
Parameter Description
char *variable Name of the variable
char *value Value of the variable
27.3.7 temporaryDigitalWrite
This function write the value to the pin for some time then set the previous
values.
temporaryDigitalWrite(pin13,HIGH,50);
If pin13 is LOW, this brings pin13 to HIGH for 50ms and then pin13 goes back
to LOW. If pin13 is LOW, it is unchanged.
Parameter Description
uint8_t pin The pin number
uint8_t value HIGH or LOW
unsigned long ms Duration of pins value change
27.3.8 log
This function allows writing a text message or an integer on the Console Widget.
Parameter Description
Parameter Description
int *msg Integer value to write on the
Console Widget
27.3.9 logLn
This function allows writing a text message or an integer on the Console Widget
followed by a new line (\n).
Parameter Description
char *msg character message to write on the
Console Widget
Parameter Description
int *msg integer value to write on the
Console Widget
Parameter Description
long *msg long value to write on the Console
Widget
Parameter Description
unsigned long *msg Unsigned long value to write on
the Console Widget
27.3.10 sdLogLabels
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
char *label2 Second label
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
char *label2 Second label
char *label3 Third label
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
char *label2 Second label
char *label3 Third label
char *label4 Forth label
Parameter Description
char *variable Name of the Logged Data Widget for
which file is written
char *label1 First label
char *label2 Second label
char *label3 Third label
char *label4 Forth label
char *label5 Fifth label
27.3.11 sdLog
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
unsigned long time current time as Unix epoch
float value1 First value
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
float value3 Third value
Parameter Description
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
float value3 Third value
float value4 Forth value
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
unsigned long time current time as Unix epoch
float value1 First value
float value2 Second value
float value3 Third value
float value4 Forth value
float value5 Fifth value
27.3.12 sdPurgeLogData
Parameter Description
char *variable Name of the Logged Data Widget
for which file is written
27.3.13 now
28 Code Generators
To start the Code Generator, tap on . If you have not purchased the Code
Generator yet, you will be asked to buy it.
To access the documentation, tap on , if you have not purchased the Code
Generator yet, you will be asked to buy it. Otherwise you will be instructed how
to access the documentation.
The PIN Code Generator allows the user to associate a pin to each Widget and
generate the code to manage that pin. In most cases this avoid writing any
code and requires to the user connecting only the proper hardware to the pin.
Access to the PIN Code Generator is directly from the Code Generator.
To restore your Code Generator and PIN Code Generator purchases on a new
device, tap on .
29 Frequent Asked
Questions
In this section you can find the solution to the most frequent problems. Anyway,
you can always write to fabboco@gmail.com for further support.
Question Answer
I get compilation errors uploading the Test Likely, you have not properly installed the one of these
sketch. libraries: IOSController, IOSControllerWiFi,
IOSControllerBLE, IOSControllerForYun,
IOSControllerForGalileo.
Please, see paragraph 3.2 or 5.2 or Error! Reference
source not found.
I get the following compilation error: Likely, you have not properly installed the one of these
libraries: IOSController, IOSControllerWiFi,
iosController was not declared in IOSControllerBLE, IOSControllerForYun,
this scope
IOSControllerForGalileos.
or
Please, see paragraph 3.2 or 5.2 or Error! Reference
iosControllerWiFi was not source not found.
declared in this scope
or
I get the following error uploading the Test Different boards have different program memory available.
sketch: See one of these paragraphs 16.2, 18.2, 24.3 to understand
how to reduce the memory required from the iOSController
processing.app.debug.RunnerException:
library you are using.
Sketch too big;
I get the following error uploading the Test Likely, you have selected a wrong board.
Question Answer
sketch: In the Arduino IDE go to Tools->Board and select the right
board
avrdude: stk500_recv():
programmer is not responding
I cant connect to the Arduino Board 1) Check that you have properly configured IP address and
IP port of the Arduino board
2) If you are using the WiFi Shield, you may need to update
the Shield firmware. (See here for more details:
http://arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading)
I cant delete Widgets Please, follow this procedure:
1) Turn on the Edit switch
2) Select the Widget to delete long tapping on it
3) Release your finger
4) Swipe down the selected Widget
Please, note that Alarm Widgets can be deleted only when
Arduino Manager is connected to the board.
You cant access your device at: Configure the device Wi-Fi connection to use static IP
http://x.y.z.t:1235 instead of DHCP.
to download the generated code.
TestArduinoManagerRFduino doesnt work. I Using IDE 1.5.7 requires a change in compiler flags.
cannot read temperature on iOS device Please, see Arduino Manager and RFduino for the
impatient
30 Revision History