internet of things day 2014 (taller)


Published on

Talleres IoT Days. Biicode como respositorio para proyectos IoT.

Published in: Software
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

internet of things day 2014 (taller)

  1. 1. David @David_SanFal
  2. 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. 3. Como empezar: Arduino 1. Registro en la web 2. Descarga e instalación del cliente bii $ bii init $ bii setup:arduino $ bii new Code as usual $ bii arduino:upload
  4. 4. Regístrate
  5. 5. Descarga el cliente
  6. 6. La carpeta donde se colocan todos tus proyectos. En biicode los proyectos se denominan hives. Workspace
  7. 7. $ 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
  8. 8. Instala todo con un comando $ bii setup:arduino
  9. 9. Hive Son los proyectos en biicode. Puedes tener tantos hives como quieras.
  10. 10. $ 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
  11. 11. 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
  12. 12. 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
  13. 13. Usemos Eclipse
  14. 14. Importa tu hive en Eclipse
  15. 15. Importa tu hive en Eclipse
  16. 16. 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); }
  17. 17. $ cd iot_day ~/iot_day$ bii arduino:monitor ~/iot_day$ bii arduino:upload Monitor serie
  18. 18. Reuse code hive_name$ bii find hive_name$ bii arduino:update main.cpp
  19. 19. 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
  20. 20. 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
  21. 21. arduino_http ardunet Ethernet / WiFi
  22. 22. 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
  23. 23. bii deps --graph
  24. 24. Cliente HTTP para el envío de la temperatura usando Carriots y Ethernet.
  25. 25. DEVICE_ID
  26. 26. API_KEY
  27. 27. Posibles errores No envia el email: Error al escribir el listenera Error 401: No tenemos vien puesto el ID o la Key
  28. 28. Envía un email con temboo y adafruit cc3000 WiFi
  29. 29. Créate una cuenta en Temboo
  30. 30. Entra en tu cuenta en Temboo, y mira tus settings TEMBOO_ACCOUNT TEMBOO_APP_KEY_NAME TEMBOO_APP_KEY
  31. 31. Créate una nueva credencial en Temboo para enviar mensajes a tu cuenta de Gmail
  32. 32. Vemos que nuestra nueva credencial está correctamente guardada: TEMBOO_MYMAIL_CREDENTIAL
  33. 33. 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"
  34. 34. Abrimos el arduino monitor y cargamos el código:
  35. 35. 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(); }
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.