SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
David
@David_SanFal
www.biicode.com
Biicode:
1. Empezar con Arduino.
2. Crear un proyecto.
3. Biicode & Eclipse.
4. Reutilizacion de codigo.
5. Publica de manera rápida.
Internet of Things:
1. Ethernet / WiFi.
2. Temboo.
3. Carriot.
4. C/C++ & IoT: Desktop apps.
5. GTest: prueba tu código.
Índice
Como empezar: Arduino
1. Registro en la web
2. Descarga e instalación del cliente bii
https://www.biicode.com/downloads
$ bii init
$ bii setup:arduino
$ bii new
Code as usual
$ bii arduino:upload
Regístrate
https://www.biicode.com/downloads
Descarga el cliente
La carpeta donde se colocan todos tus
proyectos.
En biicode los proyectos se denominan
hives.
Workspace
$ mkdir biicode_workspace
$ cd biicode_workspace
~/biicode_workspace$ bii initUsername:
your_user_namePassword for your_user_name:
your_password
Initialization correct, now you can create your first
hive
$ bii setup:arduino
Crea tu Workspace
Instala todo con un comando
$ bii setup:arduino
Hive
Son los proyectos en
biicode.
Puedes tener tantos
hives como quieras.
$ bii new iot_day
Select language: (java/node/fortran/python/cpp/arduino/None)
Introduce lang: arduino
How would you like to name your first block?
Introduce block name: my_blink
INFO: Selected block name: my_blink
Generate default firmware? (YES/no): [ENTER]
Introduce board: uno
Arduino detected on port COM17
Select IDE: (eclipse/none)
Introduce ide (default:None) (/o list options): [ENTER]
Crea tu Hive
Blink & biicode
#include "Arduino.h"
int led = 13;
void setup(){
pinMode(led, OUTPUT);
}
void loop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Única
diferencia
$ cd iot_day
~/iot_day$ bii arduino:build
...
~/iot_day$ bii
arduino:upload
Tus settings
$ cd iot_day
~/iot_day$ bii arduino:settings
Introduce board: uno
Arduino detected on port COM17
Select IDE: (eclipse/none)Introduce ide
(default:None) (/o list options): eclipse
~/iot_day$ bii arduino:configure
https://www.eclipse.org/downloads
Usemos Eclipse
Importa tu hive en Eclipse
Importa tu hive en Eclipse
Vamos a programar
#include "Arduino.h"
int led = 13;
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop(){
Serial.println(F("Led ON"));
digitalWrite(led, HIGH);
delay(1000);
Serial.println(F("Led OFF"));
digitalWrite(led, LOW);
delay(1000);
}
$ cd iot_day
~/iot_day$ bii
arduino:monitor
~/iot_day$ bii arduino:upload
Monitor serie
Reuse code
hive_name$ bii find
hive_name$ bii arduino:update
www.biicode.com/fenix
main.cpp
Reuse code
#include "fenix/blink/blink.h"
Blink my_blink;
void setup(){
my_blink.setup (13, 1000);
}
void loop(){
my_blink.loop();
}
blink.cpp
hive_name$ bii find
hive_name$ bii arduino:update
iot_day$ bii publish
block: my_blinkIntroduce tag: STABLE
Introduce msg: My first block
INFO: Successfully published user_name/hello(user_name/master):
0
publica tu código
https://www.biicode.com/lasote
arduino_http
https://www.biicode.com/diego
ardunet
Ethernet / WiFi
https://www.biicode.com/lasote
weather
• Arduino.h
• LiquidCrystal.h
• stdlib.h
• lasote/arduino_http/http_client.h
• lasote/stream_processor/stream_json_processor.h
• lasote/weather/weather_client.h
• ntruchsess/arduino_uip/uipethernet.h
HTTP Client: Weather
bii deps --graph
https://www.biicode.com/lasote
Cliente HTTP para el envío de la
temperatura usando Carriots y
Ethernet.
DEVICE_ID
API_KEY
Posibles errores
No envia el email:
Error al escribir el listenera
Error 401: No tenemos vien puesto el ID o la
Key
https://www.biicode.com/diego
Envía un email con temboo y
adafruit cc3000 WiFi
Créate una cuenta en Temboo https://www.temboo.com/
Entra en tu cuenta en Temboo, y mira tus settings
TEMBOO_ACCOUNT
TEMBOO_APP_KEY_NAME
TEMBOO_APP_KEY
Créate una nueva credencial en Temboo para enviar
mensajes a tu cuenta de Gmail
Vemos que nuestra nueva credencial está correctamente
guardada:
TEMBOO_MYMAIL_CREDENTIAL
Definimos las variables que son necesarias acerca del WiFi y
de nuestra cuenta en Temboo
main.cpp
//This file, located in your hive root folder define your wifi settings. Do not publish it!
//mywifidetails.h
//#define WLAN_SSID "YOUR_SSID" // cannot be longer than 32 characters!
//#define WLAN_PASS "your_password"
//#define WLAN_SECURITY YOUR_WIFI_SECURITY //WLAN_SEC_UNSEC, WLAN_SEC_WEP,
WLAN_SEC_WPA or WLAN_SEC_WPA2
//This file will contain your TEMBOO_MYMAIL_CREDENTIAL, TEMBOO_ACCOUNT, TEMBOO_APP_KEY_NAME,
TEMBOO_APP_KEY, do not publish it with your block
//tembooaccount.h
//#define TEMBOO_ACCOUNT "name_account"
//#define TEMBOO_APP_KEY_NAME "application_account_name"
//#define TEMBOO_APP_KEY "application_account_name_key"
//#define TEMBOO_MYMAIL_CREDENTIAL "credential_name"
Abrimos el arduino monitor y cargamos el código:
GTest: Prueba tu código
#include "google/gtest/gtest.h"
int sum(int a, int b){
return a + b;
}
TEST(sum, Normal){
EXPECT_EQ(5, sum(2, 3));
}
void main(int argc, char **argv){
testing::InitGoogleTest(&argc,
argv);
return RUN_ALL_TESTS();
}

Mais conteúdo relacionado

Semelhante a internet of things day 2014 (taller)

Charla Hello Real World para PHPmad
Charla Hello Real World para PHPmadCharla Hello Real World para PHPmad
Charla Hello Real World para PHPmadsenechaux
 
SVQXDG - Introducción a Embeddinator-4000
SVQXDG - Introducción a Embeddinator-4000SVQXDG - Introducción a Embeddinator-4000
SVQXDG - Introducción a Embeddinator-4000Javier Suárez Ruiz
 
CROL - Proyecto CoDiCe TIC Robótica Arduino.pdf
CROL - Proyecto CoDiCe TIC Robótica Arduino.pdfCROL - Proyecto CoDiCe TIC Robótica Arduino.pdf
CROL - Proyecto CoDiCe TIC Robótica Arduino.pdfEdwin4321
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Ignacio Muñoz Vicente
 
Instalacion de biicode
Instalacion de biicodeInstalacion de biicode
Instalacion de biicodeJulia S. Simon
 
Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]
Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]
Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]RootedCON
 
Hardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADHardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADestialvarez
 
Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2Dcreagamers
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdfJosé Moreno
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosIrontec
 

Semelhante a internet of things day 2014 (taller) (20)

Charla Hello Real World para PHPmad
Charla Hello Real World para PHPmadCharla Hello Real World para PHPmad
Charla Hello Real World para PHPmad
 
SVQXDG - Introducción a Embeddinator-4000
SVQXDG - Introducción a Embeddinator-4000SVQXDG - Introducción a Embeddinator-4000
SVQXDG - Introducción a Embeddinator-4000
 
CROL - Proyecto CoDiCe TIC Robótica Arduino.pdf
CROL - Proyecto CoDiCe TIC Robótica Arduino.pdfCROL - Proyecto CoDiCe TIC Robótica Arduino.pdf
CROL - Proyecto CoDiCe TIC Robótica Arduino.pdf
 
CREATE_AP CANAIMA
CREATE_AP CANAIMACREATE_AP CANAIMA
CREATE_AP CANAIMA
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
Instalacion de biicode
Instalacion de biicodeInstalacion de biicode
Instalacion de biicode
 
Extending titanium
Extending titaniumExtending titanium
Extending titanium
 
S8-DS2.pptx
S8-DS2.pptxS8-DS2.pptx
S8-DS2.pptx
 
Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]
Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]
Arán Lora - Análisis dinámico de aplicaciones en iOS sin Jailbreak [rooted2019]
 
Tutorial
TutorialTutorial
Tutorial
 
raspeberry para domotica.pdf
raspeberry para domotica.pdfraspeberry para domotica.pdf
raspeberry para domotica.pdf
 
Hardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADHardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RAD
 
Pinguino aetel
Pinguino aetelPinguino aetel
Pinguino aetel
 
Composer
ComposerComposer
Composer
 
Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2D
 
Hardware Hacking Rad
Hardware Hacking RadHardware Hacking Rad
Hardware Hacking Rad
 
Symfony Parte 2
Symfony Parte 2Symfony Parte 2
Symfony Parte 2
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzados
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 

internet of things day 2014 (taller)

  • 2. Biicode: 1. Empezar con Arduino. 2. Crear un proyecto. 3. Biicode & Eclipse. 4. Reutilizacion de codigo. 5. Publica de manera rápida. Internet of Things: 1. Ethernet / WiFi. 2. Temboo. 3. Carriot. 4. C/C++ & IoT: Desktop apps. 5. GTest: prueba tu código. Índice
  • 3.
  • 4. Como empezar: Arduino 1. Registro en la web 2. Descarga e instalación del cliente bii https://www.biicode.com/downloads $ bii init $ bii setup:arduino $ bii new Code as usual $ bii arduino:upload
  • 7. La carpeta donde se colocan todos tus proyectos. En biicode los proyectos se denominan hives. Workspace
  • 8. $ mkdir biicode_workspace $ cd biicode_workspace ~/biicode_workspace$ bii initUsername: your_user_namePassword for your_user_name: your_password Initialization correct, now you can create your first hive $ bii setup:arduino Crea tu Workspace
  • 9. Instala todo con un comando $ bii setup:arduino
  • 10. Hive Son los proyectos en biicode. Puedes tener tantos hives como quieras.
  • 11. $ bii new iot_day Select language: (java/node/fortran/python/cpp/arduino/None) Introduce lang: arduino How would you like to name your first block? Introduce block name: my_blink INFO: Selected block name: my_blink Generate default firmware? (YES/no): [ENTER] Introduce board: uno Arduino detected on port COM17 Select IDE: (eclipse/none) Introduce ide (default:None) (/o list options): [ENTER] Crea tu Hive
  • 12. Blink & biicode #include "Arduino.h" int led = 13; void setup(){ pinMode(led, OUTPUT); } void loop(){ digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } Única diferencia $ cd iot_day ~/iot_day$ bii arduino:build ... ~/iot_day$ bii arduino:upload
  • 13. Tus settings $ cd iot_day ~/iot_day$ bii arduino:settings Introduce board: uno Arduino detected on port COM17 Select IDE: (eclipse/none)Introduce ide (default:None) (/o list options): eclipse ~/iot_day$ bii arduino:configure
  • 15. Importa tu hive en Eclipse
  • 16. Importa tu hive en Eclipse
  • 17. Vamos a programar #include "Arduino.h" int led = 13; void setup(){ Serial.begin(9600); pinMode(led, OUTPUT); } void loop(){ Serial.println(F("Led ON")); digitalWrite(led, HIGH); delay(1000); Serial.println(F("Led OFF")); digitalWrite(led, LOW); delay(1000); }
  • 18. $ cd iot_day ~/iot_day$ bii arduino:monitor ~/iot_day$ bii arduino:upload Monitor serie
  • 19. Reuse code hive_name$ bii find hive_name$ bii arduino:update www.biicode.com/fenix main.cpp
  • 20. Reuse code #include "fenix/blink/blink.h" Blink my_blink; void setup(){ my_blink.setup (13, 1000); } void loop(){ my_blink.loop(); } blink.cpp hive_name$ bii find hive_name$ bii arduino:update
  • 21. iot_day$ bii publish block: my_blinkIntroduce tag: STABLE Introduce msg: My first block INFO: Successfully published user_name/hello(user_name/master): 0 publica tu código
  • 22.
  • 24. https://www.biicode.com/lasote weather • Arduino.h • LiquidCrystal.h • stdlib.h • lasote/arduino_http/http_client.h • lasote/stream_processor/stream_json_processor.h • lasote/weather/weather_client.h • ntruchsess/arduino_uip/uipethernet.h HTTP Client: Weather
  • 26. https://www.biicode.com/lasote Cliente HTTP para el envío de la temperatura usando Carriots y Ethernet.
  • 29. Posibles errores No envia el email: Error al escribir el listenera Error 401: No tenemos vien puesto el ID o la Key
  • 30. https://www.biicode.com/diego Envía un email con temboo y adafruit cc3000 WiFi
  • 31. Créate una cuenta en Temboo https://www.temboo.com/
  • 32. Entra en tu cuenta en Temboo, y mira tus settings TEMBOO_ACCOUNT TEMBOO_APP_KEY_NAME TEMBOO_APP_KEY
  • 33. Créate una nueva credencial en Temboo para enviar mensajes a tu cuenta de Gmail
  • 34. Vemos que nuestra nueva credencial está correctamente guardada: TEMBOO_MYMAIL_CREDENTIAL
  • 35. Definimos las variables que son necesarias acerca del WiFi y de nuestra cuenta en Temboo main.cpp //This file, located in your hive root folder define your wifi settings. Do not publish it! //mywifidetails.h //#define WLAN_SSID "YOUR_SSID" // cannot be longer than 32 characters! //#define WLAN_PASS "your_password" //#define WLAN_SECURITY YOUR_WIFI_SECURITY //WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2 //This file will contain your TEMBOO_MYMAIL_CREDENTIAL, TEMBOO_ACCOUNT, TEMBOO_APP_KEY_NAME, TEMBOO_APP_KEY, do not publish it with your block //tembooaccount.h //#define TEMBOO_ACCOUNT "name_account" //#define TEMBOO_APP_KEY_NAME "application_account_name" //#define TEMBOO_APP_KEY "application_account_name_key" //#define TEMBOO_MYMAIL_CREDENTIAL "credential_name"
  • 36. Abrimos el arduino monitor y cargamos el código:
  • 37. GTest: Prueba tu código #include "google/gtest/gtest.h" int sum(int a, int b){ return a + b; } TEST(sum, Normal){ EXPECT_EQ(5, sum(2, 3)); } void main(int argc, char **argv){ testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }