Programar Arduino con Eclipse


Arduino es una plataforma de prototipado electrónica de código abierto basada en software y hardware flexible y fáciles de usar. Está destinado a artistas, diseñadores, aficionados y cualquiera interesado en la creación de objetos interactivos o entornos.
En realidad el Arduino es un montón de cosas. Dado un determinado contexto, puede significar cualquiera de las siguientes…

  • Arduino , la plataforma de hardware (el «Consejo»)
  • Arduino – la biblioteca de abstracción sobre el WinAVR. WinAVR es la cadena de herramientas GNU (compilador + C Runtime library etc.) para el Microcontrolador AVR utilizado en las placas de Arduino (el “software”)
  • Arduino – “El IDE” (estamos utilizando Arduino 19)

Para empezar con Arduino antes de nada se  necesita familiarizarse con la plataforma Arduino y jugar con el IDE de Arduino que es libremente descargable desde la Web de Arduino.

Si es un  programador experto , pronto se dará cuenta   que necesita  un más potente conjunto de herramientas como puede ser  la combinación de WinAVR , biblioteca Arduino + Eclipse y esto es lo que vamos a ver en este post.

 

leds arduino

Instalación  IDE

Sucintamente  los pasos para  programar Arduino con el Eclipse son los siguientes:.

  1. Descargar Eclipse (sobre 90 MBs). Descomprimir en C:\Misc\Eclipse
  2. Descargar el IDE de Arduino. Descomprimir en C:\Misc\arduino-0019
  3. Descargar la última versión de WinAVR. Descomprimir en C:\Misc\WinAVR
  4. Descargar el Plug-in de Eclipse de AVR e instalarlo (siga las instrucciones en su página web)

Primeros pasos con Eclipse

  1. Iniciar Eclipse
  2. Cerrar la página de bienvenida haga clic en la Cruz en la ficha para revelar el ambiente de trabajo real…
  3. Comenzar un nuevo proyecto haciendo clic en “archivo -> Nuevo -> proyecto de C++“. Elegir el tipo de proyecto “AVR Cross Target biblioteca estática” y establezca el nombre del proyecto Arduino. Ahora vamos a compilar los archivos fuente de Arduino en una biblioteca estática para su uso posterior. Finalmente haga clic en finalizar.
  4. Utilice el explorador de Windows para ir a C:\Misc\arduino-0019\hardware\arduino\cores\arduino, seleccionar todos los archivos de código y arrastrar sobre el proyecto de Arduino ya abierto en Eclipse( Nota :sólo incluyen archivos con extensiones .c, .cpp y .h …)
  5. A continuación, haga clic en aceptar en el siguiente cuadro de diálogo (aceptar la opción de copia por defecto)…
  6. Ahora construya el proyecto haciendo clic derecho sobre él y eligiendo “Crear” en el menú contextual. !puede  que tengamos mas de 10 errores! Pero no se preocupe, a arreglarlos en el momento. Haga clic derecho sobre el proyecto y elija “Propiedades” e ir a la opcion “c/c ++ Build -> Configuración -> AVR compilador” . Haga clic en el icono “+” (después de seleccionar la opción “Directorios”).
  7. Haga clic en el botón “Área de trabajo...” y añadir el directorio del proyecto ${workspace_loc :/ ${Nombre_proyecto}} como un directorio de inclusión una vez para el “compilador AVR” y el “AVR C++ Compiler”
  8. Haga clic derecho sobre el proyecto y elija “Propiedades“, luego ir a “AVR -> Target Hardware” y luego establecer la opción de tipo de MCU en el microprocesador en la placa Arduino junto con la frecuencia del cristal suministrado con él. Por  ejemplo para un arduino antiguo  que lleve el ATmega328P  el valor es de  16000000 respectivamente. A continuación, haga clic en ok.
  9. Ahora construya su proyecto de nuevo  de modo qeu  la construcción debería tener éxito esta vez.(Aunque es posible que vea un montón de advertencias que, simplemente puede ignorarlos por ahora).

Ejemplo

  1. Es hora de que el equivalente a “Hola mundo” el mundo de sistemas embebidos. Ir a “archivo -> Nuevo -> proyecto de C++” como antes pero ahora seleccione “AVR Cross Target solicitud” como el tipo de proyecto y establezca el nombre del proyecto a “social
  2. Haga clic derecho sobre el proyecto social y elegir “New -> File”, el nombre del archivo a Main.cpp y haga clic en finalizar.
  3. Ahora, agregue el código siguiente de C++ a Main.cpp:
    #include "WProgram.h" //Include arduino headers
    
    ///CONSTANTS///
    //The onboard test LED is connected to pin number 13
    const int ledPin = 13;
    const int interval = 1000; //Milliseconds
    
    ///MAIN///
    int main()
    {
        //Initialize the Arduino library.
        //Not doing so will prevent the delay function
        //from working. Calling this functions is a must
        //for all arduino projects.
        init();
    
        //Initialize the serial port. This will be used
        //to send diagnostic information in this project.
        Serial.begin(9600);
    
        //Configure ledPin as an output
        pinMode(ledPin, OUTPUT);
    
        //Announce the start of program. Usually a
        //hyper-terminal is connected to the serial
        //port on the PC so this message can be seen
        //there
        Serial.println("Ready.");
    
        //Enter the infinite loop responsible for making
        //the microcontroller do the same thing over and
        //over again. (Almost every microcontroller has
        //such a loop)
        while(true)
        {
            //Turn on the LED
            digitalWrite(ledPin, HIGH);
            //Wait for half of "interval".
            //The LED remains ON during this time.
            delay(interval/2);
            //Turn off the LED
            digitalWrite(ledPin, LOW);
            //Wait for half of "interval".
            //The LED remains OFF during this time.
            delay(interval/2);
        }
    
        //Unreachable code but it's required by
        //the compiler
        return 0;
    }
  4. Ahora compile el proyecto. !es posible que tenga  un montón  de errores!
  5. OK vamos a arreglarlos. Haga clic derecho sobre el proyecto de “Social” y elija “Propiedades” e ir a la “construcción de C/C++-> Configuración -> Avr Compiler -> directorios” opción y haga clic en el icono “+”.
  6. Haga clic en el botón “área de trabajo…” en el cuadro de diálogo subsecuente y elija Arduino -> Debug en el cuadro de diálogo el posterior.
  7. Finalmente se debe ver la siguiente. Haga clic en Aceptar después de haber verificado la ruta.
  8. Hacer lo mismo para la “construcción de C/C++-> Configuración -> Avr C++ Compiler -> directorios”
  9. Ir a “construir de C/C++-> Configuración -> Avr C++ linker -> bibliotecas” y defina las siguientes opciones.
  10. Ahora compilar el proyecto social otra vez. Compruebe que es mucho mejor ahora, pero todavía tenemos un error . Esto es un error de vinculador. El vinculador se queja aquí que no podría encontrar una aplicación para la función de llamada en cualquier lugar aunque se refiere a / usado en otras partes del código. Baste decir la función es necesaria por el runtime de C++ para decidir lo que hay que hacer cuando alguien llama a una función virtual pura directamente. Como recordará de sus tratos con C++, una función virtual pura no se puede llamar directamente sin proporcionar una implementación en alguna clase derivada. Para ello, una clase con una función virtual pura no puede ser instanciada en todos pero el runtime de C++ le gusta estar preparado para cualquier eventualidad.Compiladores avanzados habrían lanzado una excepción de esta función para indicar una operación ilegal, pero como no tenemos los de la plataforma de WinAVR, todo lo que podemos hacer es evitar  más daño que está haciendo entrar en un bucle sin fin (suponiendo que el programa es corriendo frenéticamente en primer lugar ya que ha hecho lo imposible por llamar a una función virtual pura directamente!)
    Nota: esto debe hacerse sólo para la versión de depuración. Al parecer esta función no se utiliza en la versión de lanzamiento de Arduino. Las compilaciones de depuración están amañadas para fallar rápidamente para que el punto de falla es lo más cercano posible al lugar donde está el verdadero problema.
  11. Agregar un nuevo archivo .c al proyecto Arduino (Nota debería ser .c y no CPP). Llame al missing.c y pegue el código siguiente en él y construir de nuevo ambos proyectos. El error debería desaparecer. Tenga en cuenta que lo necesario para construir Arduino antes de poder construir social.
    void __cxa_pure_virtual()
    {
        while(1);
    }
  12. Conmutando el panel de “Consola”, puede ver el resultado de ejecutar el comando tamaño de avr en el archivo .elf de generado…Pero no es un bonito espectáculo para la vista. Un pobre programa intermitente led ocupa aproximadamente 62% del total de memoria de programa disponible. Pero no se asuste, estamos en la versión de depuración  de modo que obtendrá mejores resultados al cambiar a liberar estructuras.

Cambiar a la versión de lanzamiento

  1. Haga clic derecho en un proyecto y seleccione “configuraciones de generación -> Set activo -> Release 2”. Hacer esto para todos los proyectos.
    Nota: usted necesita volver a especificar todos los ajustes para la versión de lanzamiento como hiciste para hacerlo compilar la versión de depuración.

Optimización prematura

  1. Aquí es cómo vamos de mejor a impresionantes. A continuación se asegurará de que usted sólo paga por las funciones y secciones de datos que realmente se utilizan en el programa. Agregue los siguientes indicadores adicionales para el C y C++ compiladores en todos los proyectos
    -ffunction-sections -fdata-sections

    Añadir la siguiente bandera a las opciones del vinculador en todos los proyectos.

    -Wl,-gc-sections

     

  2. Reconstruir (en el correcto orden Arduino en primer lugar, social segundo.)

Cargar el programa en el Arduino

Ahora ha llegado el momento cuando usted puede cargar su primer programa de Arduino construido dentro de los confines cómodos de Eclipse.

  1. Haga clic derecho sobre el proyecto social y selecciona “Propiedades“. Ir a la página de AVRDude y haga clic en nuevo.
  2. Rellene el formulario siguiente:
    • Nombre de configuración: Arduino
    • Hardware del programador: Arduino
    • Reemplazar el puerto por defecto: \\.\COM3. Reemplazar el COM3 a cualquier puerto del hardware de Arduino está conectado a.
    • Override en baudios por defecto: 19200. Reemplazar 19200 a cualquier velocidad en baudios fue especificado por el fabricante del tablero / la persona que subido el Arduino boot loader en tu tarjeta.

     

  3. Seleccionar Arduino como programador en AVRDude configuración y haga clic en Aceptar.
  4. Haga clic en el botón de la barra de herramientas AVR para subir su programa a la placa.

    Debería ver algo como lo siguiente en la ventana de la consola…

    Launching C:\misc\WinAVR\bin\avrdude -pm328p 
        carduino "-P\\.\COM3" -b19200 -Uflash:w:BlinkenLights.hex:a 
    Output:
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.02s
    
    avrdude: Device signature = 0x1e950f
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "BlinkenLights.hex"
    avrdude: input file BlinkenLights.hex auto detected as Intel Hex
    avrdude: writing flash (2828 bytes):
    
    Writing | ################################################## | 100% 2.16s
    
    avrdude: 2828 bytes of flash written
    avrdude: verifying flash memory against BlinkenLights.hex:
    avrdude: load data flash data from input file BlinkenLights.hex:
    avrdude: input file BlinkenLights.hex auto detected as Intel Hex
    avrdude: input file BlinkenLights.hex contains 2828 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 2.14s
    
    avrdude: verifying ...
    avrdude: 2828 bytes of flash verified
    
    avrdude done.  Thank you.
  5. Si todo salió bien, la prueba a bordo del LED (generalmente color rojo) ahora si empieza a parpadear en cerca de 1 parpadeo/seg Felicitaciones!

Finalmente hemos visto cómo utilizar Eclipse para el desarrollo de AVR. Pero esto es sólo el principio pues hay mucho explorar pero hemos visto  los fundamentos y ahora debería ser fina por su cuenta. Los ejemplos y bibliotecas suministradas con Arduino deben ser un buen punto de partida para la exploración de más.

 

 

Fuente https://www.codeproject.com/Articles/110859/Arduino-Unleashed

 

 

Anuncios

Como crear musica gracias a machine learning con Raspberry Pi


La tecnología siempre ha desempeñado un papel en la creación de nuevos tipos de sonidos que inspiran a los músicos, desde los sonidos de distorsión hasta los sonidos electrónicos de los sintetizadores,sin embargo gracias a los avances en el aprendizaje automático y las redes neuronales han abierto nuevas posibilidades para la generación de sonido  como los demuestra el  grupo Magenta de Google que es el que ha creado NSynth Super,   basandonase en una Raspberry Pi 3  y utilizando Machine Learning con TensorFlow para explorar nuevos sonidos y melodías a músicos y artistas(TensorFlow es una biblioteca de código abierto para aprendizaje automático a través de un rango de tareas, y desarrollado por Google para satisfacer sus necesidades de sistemas capaces de construir y entrenar redes neuronales para detectar y descifrar patrones y correlaciones, análogos al aprendizaje y razonamiento usados por los humanos).

 

El proyecto es  totalmente abierto y “cualquiera” familiarizado con  la electronica debería podérselo construir en su propia casa o en el taller, aunque esto es la teoría pues en la practica todos los componentes son SMD ,lo cual complica las cosas bastante a la hora de ponerse a soldar los diferentes componentes que  constituyen ese proyecto.

Usando TensorFlow , han   construido herramientas e interfaces que permiten a artistas y músicos utilizar el aprendizaje automático en su trabajo. El algoritmo NSynth Super AI usa redes neuronales profundas para investigar el carácter de los sonidos y luego construye nuevos sonidos basados ​​en estas características en lugar de simplemente mezclar los sonidos.

Usando un autoencoder, extrae 16 características temporales definitorias de cada entrada. Estas características se interpolan linealmente para crear nuevas incrustaciones (representaciones matemáticas de cada sonido).

Estas nuevas incrustaciones se decodifican en nuevos sonidos, que tienen las cualidades acústicas de ambas entradas (se pueden encontrar más detalles en la página NSynth: Neural Audio Synthesis ).

 


Open NSynth Super luego toma el audio generado y proporciona una interfaz física o instrumento con:

    • Entrada MIDI para conectar un teclado de piano, un secuenciador o una computadora, etc.
    • Cuatro codificadores giratorios utilizados para asignar instrumentos a las esquinas del dispositivo
    • Pantalla OLED para el estado del instrumento y la información de control
    • Controles finos para:
      • La posición estableciendo la posición inicial de la onda.
      • Attack establece el tiempo necesario para el inicio inicial del nivel.
      • Decay establece el tiempo necesario para el posterior agotamiento.
      • Sustain establece el nivel durante la secuencia principal del sonido.
      • Release establece el tiempo necesario para que el nivel disminuya desde el nivel de sostenido a cero.
      • El volumen establece el volumen de salida.
    • Interfaz táctil para explorar las posiciones entre los sonidos.

Obviamente la Rasbpeberry   es usada  para  administrar las entradas físicas y esto se programa antes del primer uso.

 

 

El equipo publica todos los diseños de hardware y software que son parte de su investigación en curso bajo licencias de código abierto, lo que le permite  que cuaqluiera  que tenga los medios adecuados  puedas construirse  su propio sintetizador usando esta tecnlogia .

 

Utilizando estas herramientas de código abierto, Andrew Black ha producido su propia NSynth Super, mostrada en el video anterior.

La lista de materiales de construcción de Andrew incluye:

    • 1x Raspberry Pi 3 Model B (896-8660)
    • 6x Alps RK09K Series Potentiometers (729-3603)
    • 4x Bourns PEC11R-4315F-N0012 Rotary Encoders
    • 2x Microchip AT42QT2120-XU Touch Controller ICs (899-6707)
    • 1x STMicroelectronics STM32F030K6T6, 32bit ARM Cortex Microcontroller (829-4644)
    • 1x TI PCM5122PW, Audio Converter DAC Dual 32 bit (814-3732)
    • 1x Adafruit 1.3″ OLED display

 

El equipo de Magenta también proporciona archivos de Gerber para que se  pueda fabricar la placa de circuito impreso , de modo que una vez se haya fabricado, se pueda comenzar con el soldado de componetes  em la PCB (incluye una tabla de contenidos para agregar componentes)

Como adelantabmos ,laa construcción no es trea fácil: requiere habilidades de soldadura o acceso a alguien que pueda ensamblar PCB pues la mayoría de los componentes son SMT de modo que el paso de componentes se reduce a alrededor de 0,5 mm, que aun se se pueden soldar a mano si se tiene cuidado. Sin embargo, aunque algunos podrían argumentar que no es absolutamente necesario, es aconsejable tener un microscopio estéreo y una estación de aire caliente disponibles también. ¡Y no hace falta decir que también debería tener suficiente flujo y mecha de soldadura!

Para probar  este diseño , descargamos un archivo MIDI de Internet y luego lo reproducimos a través de una computadora portátil Linux y una interfaz USB / MIDI usando el comando “aplaymidi”. Efectivamente, el NSynth Superarrncara  y  ya podremos asignar instrumentos a cada esquina y luego interpolar a través de la maravilla del aprendizaje automático para crear nuevas, hasta ahora desconocidas, 

 

Puede echar un vistazo a la publicación de blog de Andrew y al informe oficial de NSynth GitHub para ver si está preparado para el desafío.

Aquí información útil para montarlo:https://www.rs-online.com/designspark/building-the-google-open-nsynth-super

 

Detector de movimiento inteligente


En este ejemplo    volveremos a  usar  un economico NodeMCU ,junto con un  sensor de movimiento PIR  y la plataforma de IoT  Carriots para  construir, usando el IDE de Arduino, un  detector de movimiento inteligente para comerciales y hogar.

El tema  gira en torno a la seguridad de un edificio o casa o una zona restringida detectando cualquier movimiento dentro de un rango específico con un sensor PIR . Gracias al  IoT, además de detectar objetos en movimientos podemos hacer  muchas más cosas como por ejemplo:

  • Encender un dispositivo mediante un relé (en el ejemplo es una luz durante unos 30 segundos).
  •  Al mismo tiempo enviar un correo electrónico al usuario, utilizando la IOT – plataforma Carriots sobre WIFI.
  • El relé se puede conectar a cualquier luz del dispositivo, alarma, cámara, sistema de seguridad…
  • Incluso el disparo puede ser SMS, llamar a las autoridades, llamando a otros servicios…

Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source  a los que indudablemente se une su bajisimo precio comparado con otras opciones.
De este componente destaca  integra capacidades de comunicación via WiFi , conteniendo en su interior  microprocesador que puede ser programado fácilmente usando en conocido lenguaje de programación Lua o vía Arduino IDE.

¿Se pregunta cómo controlar  su económico ESP8266 de forma remota desde cualquier lugar del mundo?

En este post repasaremos precisamente el proceso, paso a paso, de cómo escribir código en el IDE de Arduino y programar su ESP8266 permitiendo  que el código  escrito para  el ESP8266 se comunique con la plataforma  de Iot   Carrriots,  la cual  nos va  permitir monitorear  y controlar el ESP8266.

Los pasos  a seguir   para conectar un ESP8266   a  Carriots   son los siguientes:

  •  Instalación del IDE de Arduino .Si aun no lo tiene instalado ,se puede hacer  desde aqui
  • Instalación  del paquete de la placa ESP8266 en Arduino IDE  siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino

esp

  • Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador  para que pueda programar el ESP8266.  Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.

El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema)
Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Carriots es una Plataforma como Servicio (PaaS en sus siglas en inglés) diseñada para proyectos del Internet de las Cosas (IoT) y de Máquina a Máquina (M2M)

carriots

Carriots es una plataforma IoT creada en España  que  permite crear potentes productos y servicios IoT  haciendo posible conectar fácilmente “sus cosas” al Internet de las Cosas.

Se  pueden construya sus apps inteligentes con Carriots en pocos pasos.

  1. Conectar Dispositivos
  2. Recopilar Datos
  3. Gestionar Dispositivos y Datos
  4. Construir APPs

Principales ventajas

  • Listo para empezar a desarrollar.
  • Minimizar tiempo de desarrollo.
  • Gestión simplificada de múltiples proyectos: Arquitectura de 7 niveles
  • Amplia variedad de APIs y potente SDK: REST API y SDK
  • Escalabilidad inmediata
  • Inicio gratuito y pago por uso.
  • Alojamiento simplificado: Oferta PaaS para escalabilidad fiable.

Hardware

Ahora preparado el entorno , necesitamos el hw  que lo permita , el cual  como vamos a ver,  es muy simple reduciendose a la placa o NodeMCUuna placa de relé, el sensor PIR  y una fuente de 5V DC

Sensor PIR

El sensor PIR usado , es del tipo HC-SR501, de bajo coste   el cual es ampliamente utilizado en diversos equipos eléctricos de detección automática, productos para el control automático especialmente a batería.Tiene alta sensibilidad, alta fiabilidad, bajo consumo de energía, el modo de operación de bajo voltaje.

Especificaciones:

  •  Dimensiones: Cerca de 3,2 x 2,4 cm (L x W).
  •  Rango de tensión: 5V-20V DC.
  •  Corriente estática: < 50uA
  •  Voltaje de salida: 3,3 V (alto) / 0V (bajo)
  •  Modo del disparador: L (no se puede gatillo repetida), H gatillo repetida (Repetición predeterminado de disparo)
  •  El Tiempo de retardo: 0,3 seg 18 seg (ajustable)
  •  Temperatura De funcionamiento: -15 C a 70

 Placa de rele

Por  precio  es mucho mas asequible optar por una placa    de  2 reles    con salida de relé máxima: DC 30V / 10A, AC 250V / 10A. Es  importanet   que el interfaz de tarjeta de relé sea de 5v . En nuestro caso es de 2 canales y cada canal necesita 15-20mA actual controlador

Este tipo de placas es de fácil instalación por el microcontrolador como Arduino, 8051, AVR, PIC, DSP, BRAZO, MSP430, PLC, lógica TTL pues solo ha que conectar la alimentacion  y dos cables de datos en caso de necesitar los dos canales 

Resumiendo , estos son los componentes  necesarias:

  • Placa de desarrollo de NodeMcu Lua WIFI Internet de las cosas basado en ESP8266 – 1 (capacidad de MCU y WIFI)
  • Sensor PIR ( hemos hablado  en este blog )
  • 1 módulo de relé con opto aislamiento de  5V1
  • Fuente de alimentación conmutada  220V/5v ( nos sirve cuaqluier cargador de movil  con salida microusb)
  • Placa Protoboard

Diagrama del circuito:

El circuito   no incluye dificultad alguna ,pues se reduce a conectar el sensor PIR a +5V  y la salida binaria al pin D2, el módulo de rele a +5v   y al pin D2    y por  supuesto la alimentación del circuito que puede ser bien a baterías  o  bien por medio del  propio micro-usb   usado para programar el  NodeMcu

Resumiendo las conexiones con las siguientes:

  • NodeMCU (ESP8266 Dev Kit) D1—> INI del relé
  • NodeMCU (ESP8266 Dev Kit) D2—> Digital sensor PIR
  • NodeMCU (ESP8266 Dev Kit) VCC—> VCC (+) de la batería
  • NodeMCU (ESP8266 Dev Kit) GND—> GND (-) de la batería
  • Relé de VCC—> VCC (+) de la batería
  • Relé de tierra—> GND (-) de la batería
  • PIR Sensor VCC—> VCC (+) de la batería
  • PIR Sensor de tierra—> GND (-) de la batería

Software

Una vez el hardware  montado nos toca escribir el código  el código utilizando el IDE de Arduino para hacer que NodeMCU trabaje con un relé, sensor de movimiento PIR y utilizar IOT plataforma carriots sobre WIFI

El autor se  encontró con  algunos puntos problemas  en el diseño del programa  para ejecutar en la placa NodeMcu;

  • Compruebe que los pines de NodeMcu  están dando la entrada o salida correcta como se están asumiendo, por ejemplo, asegurándose  que usted no está tomando el pin 4 (GPIO) como un pin de entrada asi que por defecto que este pin debe leer…
  • Utilizar un método directo de get y post HTTP en lugar de utilizar una función de visualización por BLYNK o Thinger.io.
  • Observe  que el PIR da salida permanentemenet alta durante un par de envíos pero se necesita traer retraso para evitar el envío de múltiples correos electrónicos. Con algunos servicios como BLYNK este retraso causa un problema  asi que  es mejro a llamar a esa función una vez despues  de 6 o 7 seg.
  • Una vez satisfecha la condición de if loop, llamar a una función, en lugar de escribir todo con el bucle. Esto aporta claridad del código y ayuda en la resolución de problemas.
  • Se  puede  ajustar la sensibilidad del PIR para reducir el tiempo que permanece alta.

A continuación veamos el codigo completo del sw  que habrá que subir  a la placa desde el entorno  de Arduino:

#include “ESP8266WiFi.h”

const char * ssid = “NETGXXXXX”;   //red wifi a la que se conectara

const char * clave = “XXXXXXXXX”;  //clave red wifi para coenctarse

const char * servidor = “api.carriots.com”;

const String APIKEY = XXXXXXXXXX”; //Sustituir con su apikey de Carriots

 const  String DEVICE = “[email protected]”; //Reemplazar por el id_developer del dispositivo de  carriots

int ledpin = 4;

pirpin INT = 12;

int pirstate = LOW;

int val = 0;

void setup() {

Serial.Begin(115200);

Delay(10);

pinMode(ledpin,OUTPUT);

pinMode(pirpin,INPUT);

Serial.println(“calibrando”);

for (int i = 0; i < 20; i ++) {

Serial.Print(“.”);

Delay(1000);

}

//iniciar wifi

Serial.println();

Serial.println();

Serial.Print (“conectarse”);

Serial.println(SSID);

WiFi.begin (ssid, clave);

while  (WiFi.status()! = WL_CONNECTED) {

Delay(500);

Serial.Print(“.”);

}

Serial.println(“”);

Serial.println (“Wi-Fi conectado”);

Serial.println (“dirección IP:”);

Serial.println(WiFi.localIP());

}

//función para hablar con la plataforma Carriot

void sendStream()

{

String txt = “”; //Texto para enviar

if (pirstate == HIGH)

{/ / alarma

txt = “Detecta movimiento;”

} else {/ / alarma en

txt = “Algo mal”;

}

 

Serial.println(txt);

Serial.println(Val); / / para fines de depuración

Client WiFiClient;

const int httpPort = 80;

if  (client.connect (servidor, 80)) {/ / si hay una conexión exitosa

Serial.println(F(“Conectedo”));

//Construir el campo de datos

String json = “{\”protocol\”:\”v2\”,\”device\”:\””+DEVICE+”\”,\”at\”:\”now\”,\”data\”:{\”light\”:\””+txt+”\ “}}”;

//Realizar una solicitud HTTP

Client.println (“POST /streams HTTP/1.1”);

Client.println (“Host: api.carriots.com”);

Client.println (“Accept: aplicación/json”);

Client.println (“User-Agent: Arduino-Carriots”);

Client.println (“Content-Type: aplicación/json”);

Client.Print (“carriots.apikey:”);

Client.println(APIKEY);

Client.Print (“Content-Length:”);

int thisLength = json.length();

Client.println(thisLength);

Client.println (“conexión: cerrar”);

Client.println();

Client.println(JSON);

}

Else {}

//Si no tiene una conexión con el servidor:

Serial.println (F (“Conexión fallida”));

}

}

 

void loop() {}

Val = digitalRead(pirpin);

Serial.println(Val);

if(Val == HIGH) {}

digitalWrite(ledpin,HIGH);

if  (pirstate == LOW) {

Serial.println (“movimiento detectado”);

pirstate = HIGH;

Serial.println (F (“secuencia de enviar”));

sendStream();

Delay(30000);

}

/ * {while(client.available())}

String linea = client.readStringUntil(‘\r’);

Serial.Print(line);

Delay(30000);

} */

}

Else {}

digitalWrite(ledpin,LOW);

if(pirstate == HIGH) {}

Serial.println (“movimiento detectado correo enviado”);

pirstate = LOW;

}

}

}

Programación de disparadores de Carriots enviar Email:

Una vez   que  tenga desplegado el  sw en su  placa NodeMcu  ,la capacidad de activar un correo debe ser  programado o configurado en la plataforma de Internet para este producto que está utilizando (la plataforma Carriots IOT) . Si no sabe como hacerlo en el siguiente video podemso  ver  como  familiarizarse con las funciones y cómo utilizarlas:

 

Obviamente esto podría programarse para llamada, o un texto o una alarma a la policía o quien sea. !Como podemos adivinar   las posibilidades  son infinitas!.

Fuente 

Diseño de una embarcación autopilotada


Mucho antes que aparecieran los coches autónomos , por su simplicidad  destacar que ya existían múltiples soluciones para embarcaciones autónomas  que no dependen del ser humano para moverse por el mundo

Leo Megliola, estudiante de 8 grado  invirtió un año construyendo una embarcación  autónoma    con ayuda de la academia de  Berwick Academia y su mentor Jeff gum

El  kayak era la octava tentativa  de conseguir una embarcación autónoma así que buscaba  desapoderadamente una idea innovadora  para conseguir el objetivo de construir una embarcación autónoma

La  idea de usar el kayak vino en de forma accidental de un paseo con su padre donde miraban  a un isla que estaban  a unas seis millas de distancia de  ellos ,  y el padre le preguntó si tuviese que enviar algo a  esa isla como lo haría . En principio Leo  pensó en  un cohete de globo o  incluso un avión de ala fija, pero decidió que la manera  más eficiente sería por barco, así que decidió  intentar nuevamente si proyecto esta vez centrándose en usar un  kayak que debería viajar todo el camino a Shoals totalmente sin ayuda.

El autor eligió una trayectoria desde una boya en el mar  cerca Portsmouth a otro justo en frente de Appledore Island  constituyendo un viaje de poco más de  cinco millas

TRAVESIA

El diseño de piezas  utiliza la fusión  en una impresora 3d para crear un prototipo , probando cada subsistema individualmente para aprender cómo cada pieza trabaja antes de intentar instalarlos en ambos sistemas principales

Usa   obviamente electrónica tanto para el control  de dirección como para  la  propulsión ,  y la verdad que en el vídeo vemos como va adelante rápidamente dirigiéndose  a  su destino así que todos esos  tres sistemas son buenos y probados

Nos  cuenta que la primera vez que probó el  sistema  pudo  ver un controlador de motor paso a paso   lleno de humo , pero como llevaban  un Arduino de repuesto  realizó  la primera prueba sin dirección.

Después corregido el problema hizo más pruebas en  la paya pudiendo  navegar incluso con corriente y  viento, pero lamentablemente  empezaron los  problemas de  filtraciones de  agua  y lentamente se  llenaba  de agua peligrando  la electrónica

Corregidas  las filtraciones el siguiente intento  conseguir llegar alrededor de la  mitad del itinerario , pero el kayak funcionaba perfectamente ,aunque confundió  algunas cosas en el  código que ejecuta el arduino

Los componentes del kayak  son lo siguientes:

  • El sistema de propulsión del kayak lo  constituye    un motor eléctrico de tipo trolling del que  hemos hablado  en numerosas veces es este blogyilon
  • Usa  tambien una batería  marina AGM    de ciclo profundo proporcionando la energía  necesaria tanto a la electrónica como al sistema de propulsión51AO+9H+NTL
  • Un Arduino Uno
  • Un modulo  GPS
  • Dos controladores de motor paso a paso(*)
  • Dos relés de potencia consecutivos(**)

 

(*)  En principio pare el timon  al  llevar dos cables el autor ha debido usar  un motor conectado solidariaemnte a cada uno de ellos

(**) Debido a la potencia del motor probablemente el autor ha optado por conectar dos reles en paralelo en lugar de un único relé

Como era de esperar  , Arduino es  responsable de dirigir el barco y encender y apagar el motor, así como navegar  en función de las señales  NMEA  que proporciona el escudo GPS

Cuenta con dos motores paso a paso que van girando en un sentido o en otro  para mover el timón de la embarcación . El autor ha optado  para no estropear la embarcación, situando  los  motores para  controlar la  dirección a una distancia  adecuada para por medio de dos cables de acero  tirar  de cada extremo del timón  hacia estribor o babor y no dirigir la dirección del barco entero pues el uso de la palanca  ayuda  a minimizar el consumo del motor de dirección

En la electrónica,  el GPS es responsable para decirle al kayak qué dirección está viajando calculando el  por medio del microcontrolador Arduino  las ordenes a dar  al motor  PaP  en en función de  las  señales que está recibiendo   dado que  no cuenta con brújula electrónica

El algoritmo inicial  tenia   en cuenta donde estaba hace unos segundos y donde está en el momento actual de modo que podía  calcular  de que manera  se había movido  sabiendo qué camino estába viajando bien, así que fruto  de la experimentación  consiguió escribir  el  programa adecuado para ir corrigiendo constantemente el rumbo para llegar al destino

El autor tubo algunos  problema a la hora sobre todo de escribir el código principalmente  por  tres  motivos principales:

  • Primero el autor  falló en  simulación de scratch donde tuvo la pequeño barco y la isla y nosotros fundamentalmente los rudimentos de la código que escribimos en Arduino idioma y se movió mucho y luego terminó simplemente haciendo un círculo  una y otra vez para que ese total  falló y terminamos arreglando que reescribió completamente el código y tomó enfoque diferente  SCARTACH1.PNG
  • El segundo fracaso vino  que trataron de navegar en el coche  usando la misma electrónica pero a la que añadieron  cuatro LEDs que indicaba  de qué manera había que dar la vuelta si el circuito sabe de alguna corrección GPS , así como si se estaba dentro del rango para detener o no . Por el resultado comprobado empíricamente, el algoritmo estaba mal ,pues indicaba  que estaba completamente fuera de la distancia cuando en realidad  estában a unos cien metros de distancia  y  dijo que está en algún lugar en el rango de cinco mil metros de distancia..
  • El tercer fallo vino con una  de las revisiones de código cuando íba hacia el norte pues en el código estaba dividiendo por cero y perdía el control .Arreglo eso también tomando una nuevo enfoque completamente nuevo de modo que finalmente  consiguio solucionar  el problema   incluso en una corriente cruzada como  se  puede ver en el vídeo .

 

El autor ha utilizado componentes y tutoriales principalmente de Adafruit, incluyendo un Arduino, un sensor GPS, un relé y un controlador de motor paso a paso y para programarlo ha usado Scratch

De momento aquí os dejamos un vídeo en el que nos enseña su proyecto  aunque  lamentablemente no ha compartido el código de Arduino .

 

 

 

 

Nos  consta  que has seguido intentando mejorar  su proyecto  como demuestra el siguiente vídeo  donde el kayak de Leo adquiere y encuentra una boya de mar a 1,5 km de distancia (prueba de mar abierto)  siendo el rumbo inicial  de 120 grados respecto al objetivo.

 

 

Necesitamos mas mujeres hackers


¿Por qué es tan difícil encontrar productos de superheroínas? En una charla de TED , el doctor , Christopher Bell, especializado en el estudio de la cultura popular   de los medios centrándose en las formas en que la raza, la clase y el género como se cruzan en diferentes formas de medios ,  desde su condición de  padre de una hija obsesionada con Star Wars, aborda la falta alarmante de superheroínas en los juguetes y productos comercializados para niños, y todo lo que eso significa para la forma en que les mostramos el mundo .

Hacker  en el mundo  hispano-hablante desgraciadamente aun conlleva una faceta peyorativa muy habitualmente  confundida  con personas que utilizan la tecnología para hacer el mal y lucrarse  en su provecho aprovechando vulnerabilidades o  agujeros de seguridad tal y como hacen los ciberdelicientes  (como es el caso de los script kiddies, crackers, piratas informáticos, etc)

Nada mas lejos de la realidad  pues para los anglosajones  un  hacker  es un  individuo que apoya procesos de apropiación social o comunitaria de las tecnologías poniendo  a disposición del dominio público el manejo técnico y destrezas alcanzadas personal o grupalmente. Ademas crea nuevos sistemas, herramientas y aplicaciones técnicas y tecnológicas para ponerlas a disposición del dominio público  y realiza  acciones de hacktivismo tecnológico con el fin de liberar espacios y defender el conocimiento común y abierto.

Pero, ¿por qué es tan difícil encontrar referentes femeninos en el mundo de la tecnología  y en particular en el mundo del hacking?  Quizás tenga relación con  varios estudios, donde afirman que sobre  la edad de 11 años muchas niñas se sienten atraídas por la tecnología, las ciencias y las matemáticas pero lamentablemente  muchas  pierden el interés al cumplir los 15 años y desvían su interés profesional  hacia otras áreas del saber.

Ante este reto, desde Telefónica, a través de la unidad de Chief Data Office (CDO) liderada por el famoso hacker  Chema Alonso, que integra Aura -Inteligencia Cognitiva-, ElevenPaths -Ciberseguridad- y LUCA -Big Data-, reflexionan  sobre esta tendencia que parece repetirse en diversos ámbitos y que se han  propuesto “hackear”  apostando por la diversidad.

El video la verdad es que es muy emotivo y merece la pena verlo

Modernamente el movimiento hacker  o  el hacktivismo (fusión de hack y activismo) se considera el uso de técnicas en beneficio de fines sociales, ecológicos, humanitarios o de cualquier otra índole ,con repercusión o tendente a la defensa de los derechos humanos.

A raiz de esta tendencia aparecen precisamente   los famosos espacios  hacklab o hackerspace y los hackmeeting como eventos proclives  de diálogo de hackers.

Asimismo se considera  hacktivismo  la liberación de conocimiento (como podría  ser la misma Wikipedia o incluso muchos blogs tecnológicos) ,la cual trasciende incluso a la propia   información clasificada  que se considera debe estar  a disposición de la sociedad ( WikiLeaks o las filtraciones de Snowden).

Por tanto, el fenómeno hacker  tiene un importante componente de aperturismo y liberación de conocimientos e información que, a través del activismo de estos especialistas  o expertos (mujeres o hombres da igual ) ,los cuales  en general actualmente son ingenieros de diferentes disciplinas  , benefician con su actividad a la sociedad en general ,  por lo que en aras de  la diversidad , también  deben promoverse la inclusión de las mujeres en semejante colectivo para el bien de la humanidad.

Manejo de un robot con node.js


Node.js es un entorno en tiempo de ejecución multiplataforma de código abierto  para  servidor , aunque como vamos a ver,  se puede usar para otros propósitos . Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web. 

Es un lenguaje de programación ECMAScript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el motor V8 de Goog asi que desde este punto de vista Node.js es similar en su propósito a Twisted o Tornado de Python, Perl Object Environment de Perl, libevent o libev de C, EventMachine de Ruby, vibe.d de D y JEE de Java existe Apache MINA, Netty, Akka, Vert.x, Grizzly o Xsocket.

Como nota  muy diferenciadora,al contrario que la mayoría del código JavaScript, no se ejecuta en un navegador, sino en el servidor.

Asimismo Node.js implementa algunas especificaciones de CommonJS   e  incluye un entorno REPL para depuración interactiva

Tal es la potencia de  Node.js  que ya existen plataformas basadas en este entorno para intereactuar con placas como Arduino ,Linino. Intel Edison, Raspberry pi,etc  en aplicaciones de Robotica o plataformas de IoT

Johnny – Five    es una Plataforma JavaScript Robótica  e  IO  lanzada por bocoup en 2012  y mantenida por una comunidad de desarrolladores de software apasionados e ingenieros de hardware (más de 75 desarrolladores han hecho contribuciones a la construcción de éste).

onny

Como  ejemplo de “Hola Mundo”  con un LED parpadeante sencilla , el  siguiente ejemplo para Arduino nos muestra lo sencillo que es hacerlo en el entorno de Johnny Five :

 

var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  var led = new five.Led(13);
  led.blink(500);
});

 

  • Ejecute el  códido Run: npm install johnny-five

 

Como ejemplo mas avanzado en el repositorio de github  (https://github.com/stylixboom/lr_motor ) Siriwat Kasamwattanarote   nos ensela  como podemos  controlar  un coche de juguete  directamente a través de SSH  (mediante  el terminal)  usando  Node.js.

Desde SSH no  se aceptan 2 teclas de flecha al mismo tiempo, es por eso que la forma en que gira a la izquierda / derecha no es tan suave (al cambiar las dos teclas en consecuencia) pero el funcionamiento es muy fluido

Los requerimientos son los siguientes:

 

Este proyecto es pues aprender a controlar dos motores ( izquierda – derecha) mediante el uso de la Raspberry Pi . El código proporcionado  está escrito en Node.js , y requiere un paquete de ‘ Pigpio ‘ para  acceder al puerto GPIO en la Raspberry Pi . ‘ Pulsación ‘ es escuchar a la entrada de teclado de la tecla de flecha ( arriba-abajo – izquierda – derecha) .

Este experimento apoya dos controladores de motor diferentes :

  • Toshiba – TB6612FNG Texas Instruments
  •  L293D

Notas:

-TB6612FNG es más eficiente , pero más caro (unos  10 $ ) , y se necesita soldadura .

 

TB6612FNG
Ref: http://www.robotshop.com/media/files/PDF/Datasheet%20713.pdf
Truth table
Input                           Output
IN1     IN2     PWM     STBY    OUT1    OUT2    Mode
H       H       H/L     H       L       L       Short brake
L       H       H       H       L       H       CCW
L       H       L       H       L       L       Short brake
H       L       H       H       H       L       CW
H       L       L       H       L       L       Short brake
L       L       H       H       OFF(High ohm)   Stop
H/L     H/L     H/L     L       OFF(High ohm)   Standby

-L293D es mucho más barato ( $ 0,6 ) y más fácil de utilizar con una placa.

L293D
Ref: http://www.robotplatform.com/howto/L293/motor_driver_1.html
Truth table
Input                   Function
PWM     IN1     IN2    
H       H       L       Reverse
H       L       H       Forward
H       H       H       Stop
H       L       L       Stop
L       X       X       Stop

En caso de usar la primera opción , este es el esquema seguido:
  Una vez montado el circuito y ya vez tenga el código descargado (https://github.com/stylixboom/lr_motor) ,simplemente para ejecutarlo use :  $ sudo node app_t.js

Finalmente en el vídeo que os dejo a continuación podemos ver el conjunto del  robot utilizando una Raspberry Pi combinando NodeJS y el controlador de motores. .

Creación de una app movil para interactuar con Raspberry Pi


¿Piensa que  se necesita mucho tiempo para crear una app  movil para la Raspberry Pi que involucre un proyecto de  IO para conectar sensores de movimiento,  luces , relés  ,etc y se pueda completar en breve ?

La verdad es que  escribir una aplicación, implica leer toneladas de documentación, tomar mucho  tiempo para aprender  lenguajes de programación, código,y mucho tiempo de  trabajo…Pero ¿por qué invertir tanto tiempo en preparar su proyecto, cuando se puede estar en funcionamiento en una fracción de tiempo permitiendo  la construcción de sus proyectos de automatización en cuestión de minutos.?

Entonces, ¿cómo es posible todo esto? Pues gracias  a un  framework  gnerico desarrollado por  myDevices IO Project Builder llamado Cayenne .Cayennese ha creado para los desarrolladores y fabricantes deseosos de construir rápidamente prototipos y proyectos increíbles con  Raspberry Pi  permitiendo con una cuenta gratuita de Cayena, crear un número ilimitado de proyectos.

También tiene capacidades de pleno derecho de la IO  para que pueda controlar de forma remota sensores, motores, actuadores, incluidas los puertos  de GPIO con  almacenamiento ilimitado de datos recogidos por los componentes de hardware,   triggers y alertas,  que proporcionan las herramientas necesarias para la automatización y la capacidad de configurar alertas. Ademas también puede crear cuadros de mando personalizados para mostrar su proyecto con arrastrar y soltar widgets que también son totalmente personalizables.

 

 

 

Ejemplo paso a paso 

Como se puede ver en el video , Cayyene app es una innovadora solución genérica que nos puede ahorrar mucho trabajo a la hora de  crear un proyecto con la Raspberry Pi

En resumen ,algunos de los rasgos que más destacan de la solución de Cayyene es :

  • Tablero de instrumentos flexibles :Personalizar el teléfono o en el salpicadero en línea con arrastrar y soltar widgets.
  • Acciones de activación :Crear disparadores y alertas para dispositivos, eventos, acciones y más.
  • Control de GPIO :configurar a distancia GPIO desde una aplicación móvil o en el salpicadero.
  • El acceso remoto instantáneo :Automáticamente el control remoto y accede a tu Pi desde su teléfono o computadora.
  • Configuración fácil:conectar rápidamente su Pi a Internet y conectar sensores, actuadores y extensiones en cuestión de minutos

Par mostrar lo sencillo que puede ser crear un proyecto con Cayyene, vamos a ver un ejemplo

Todo el equipo que se necesita para la creación de myDevices Cayenne para la Raspbery Pi es muy sencillo (es posible que necesite piezas adicionales si usted está mirando para agregar más sensores, dispositivos y cualquier otra cosa que desee conectado a tu Pi ). :
Necesario:

  • Raspberry  Pi
  • 8gb tarjeta Micro SD si se está utilizando una Raspberry Pi + 2, 3 o B o tarjeta SD de 8 GB para cualquier versión anterior del Pi.
  • Cable Ethernet o Wifi dongle (Pi 3 tiene Wi-Fi incorporado).Usted también tendrá que asegurarse de que tiene una conexión a Internet para la Pi.

Opcional:

  • Caja para la Raspberry Pi
  • Teclado USB y ratón USB

A continuación se presentan los elementos utilizados en el circuito de ejemplo

  • DS 18B20 del sensor de temperatura o similar
  • 4v7k Resistencia
  • Kit de arranque GPIO
  • Cables de conexión
  • Placa prototipos

Instalación de Frambuesa Pi Cayenne

El proceso de instalación de Cayena en la Raspberry Pi es bastante simple y no debería tomar demasiado tiempo para obtener su creación y funcionamiento. Usted tendrá que asegurarse de que ha instalado en su Raspbian Pi. .

  1. En primer lugar, vaya a  myDevices Cayenne y registrarse para obtener una cuenta gratuita.
  2. Una vez que ya se ha registrado usted tendrá que registrarse / conectar el Pi hasta la cuenta que acaba de crear. Para ello sólo tiene que copiar las 2 líneas de comandos que se muestran después de su inscripción. Introduzca estos en el terminal para su Pi. (Estos archivos son únicos para cada instalación nueva)

Únete a la pantalla
Alternativamente, se puede descargar la aplicación y se puede localizar e instalar en su Cayenne Pi automáticamente. (Tenga en cuenta SSH debe estar habilitado )

  1. Tomará unos minutos para instalar en el Pi en función de la velocidad de su conexión a Internet es. El navegador web o aplicación deben actualizar automáticamente con información sobre el proceso de instalación.
  2. Una vez instalado el tablero de instrumentos se mostrará y debe verse como algo más adelante.

Pi tablero de cayena

Configuración de su primer sensor

En este ejemplo vamos a configurar un sensor de temperatura. El sensor usado es el DS18B20,ahora bien  el uso de Cayyene hace que sea muy sencillo.

Todo lo que necesita hacer es configurar el circuito y lo han conectado a la Pi.  También se he añadido un LED que está conectado a la clavija # 17 con una resistencia de 100 ohmios al carril de suelo.
Diagrama del sensor de temperatura Frambuesa Pi
Ahora bien, cuando  configuran el sensor se detecta automáticamente y se añade al tablero de instrumentos.Si no se agrega automáticamente a continuación, tendrá que añadir manualmente. Para añadir manualmente, simplemente, hacer lo siguiente.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Elija un dispositivo en el cuadro desplegable.
  3. Encontrar el dispositivo, en este caso se trata de un sensor de temperatura DS18B20.
  4. Añadir todos los detalles para el dispositivo. En este caso, tendrá la dirección del esclavo para el sensor. Para obtener la dirección del esclavo escriba lo siguiente en el terminal del Pi.
    cd /sys/bus/w1/devices ls
  5. La dirección del esclavo será similar a esta 28-000007602ffa . Simplemente copia y pega esto en el campo de esclavos dentro de Cayena salpicadero.
  6. Una vez introducida seleccione sensor de complemento.
  7. El sensor se debe mostrar en el salpicadero.
  8. Si necesita personalizar su prensa sensor de la rueda dentada y va a llegar a algunas opciones.
  9. También puede ver estadísticas / gráficos. Por ejemplo, el sensor de temperatura puede representar gráficamente los datos en tiempo real y mantendrá los datos históricos también.

Si desea agregar también un LED que se pueda encender y apagar a través del panel de control, siga las siguientes instrucciones.

  1. Ahora vamos a añadir un dispositivo más. A menos que éste será un LED.
  2. Así que volver a añadir un nuevo dispositivo.
  3. Ahora buscar salida digital y seleccionarlo.
  4. Para este dispositivo seleccione su Pi, el tipo de widget es botón, el icono puede ser lo que quiera, y luego seleccione GPIO integrado. Por último canal es el pin / canal que nuestro LED está conectado. Para este ejemplo, es el pin # 17. (Esta es la numeración de los pines GPIO).
  5. A continuación, pulse el botón sensor de complemento.
  6. Ahora puede apagar el pin GPIO alta y baja del tablero de instrumentos y también utilizarlo en un disparador.
  7. Ahora estamos listos para crear nuestro primer gatillo.

Ahora debe tener dos dispositivos en el panel de control que debería ser algo como esto.
Los dispositivos añadidos

Configuración de su primer disparador

Disparadores en Cayyene son una manera de reaccionar a un cierto cambio en la Pi a través de un sensor conectado a él. Esto podría ser algo tan simple como una temperatura superior a un determinado valor o incluso sólo su pi ir fuera de línea. Como se puede imaginar que esto puede ser muy poderosa en la creación de dispositivos inteligentes que reaccionan a los alrededores. Por ejemplo, si la habitación se enfría demasiado, a continuación, convertir un calentador.

El proceso de añadir un disparador es muy sencillo :

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. En primer lugar el nombre de su activación, voy a llamar a la mía “demasiado caliente”.
  4. Ahora arrastrar y soltar su Frambuesa Pi desde la esquina izquierda en el caso de la caja.
  5. Por debajo de esto seleccionar el sensor de temperatura y tienen casilla junto a “por encima de la temperatura” seleccionado. (Opciones del dispositivo Si no se muestran simplemente refrescar la página)
  6. Ahora en el cuadro de selección a continuación, notificación y agregar una dirección de correo electrónico o número de teléfono de un mensaje de texto (puede agregar ambos).Asegúrese de marcar las casillas de verificación también.

Gatillo demasiado caliente

  1. Ahora haga clic en “Activación de almacenamiento”.
  2. Ahora debería ser guardado y le enviará una alerta cada vez que el sensor de temperatura es superior a 40 grados centígrados.
  3. También puede arrastrar el Raspberry Pi en el cuadro a continuación, y tienen que hacer muchas cosas, incluyendo el control de los dispositivos de salida. Por ejemplo, en mi circuito Tengo un LED que se enciende cuando la temperatura supera los 40 grados centígrados.
  4. Para hacer clic en el gatillo de disparo LED de nueva situada en la parte superior de la página. Nombre esta activar el gatillo LED.
  5. Ahora arrastrar el Pi en el caso de la caja y luego seleccione el sensor de temperatura de nuevo con 40 grados centígrados por encima.
  6. Ahora arrastrar el Raspberry Pi en cuadro a continuación. Selecciona nuestra salida digital y tienen la casilla de marcado.
  7. Ahora haga clic en Activación de almacenamiento.
  8. Ahora cada vez que nuestro sensor de temperatura conectado a la Pi reporta una temperatura superior a 40 grados centígrados se enviará un correo electrónico y encienda el LED. También tendrá que añadir otro factor desencadenante para apagar el LED cuando se cae de nuevo por debajo de 40, pero eso se lo dejo por ahora y pasar a los eventos.

mydevices cayennem disparadores

Eventos

Eventos en Raspberry Pi Cayenne es algo similar a los factores desencadenantes pero son dependientes del tiempo en lugar de depender de un cambio en un sensor o el propio dispositivo. La creación de un evento es bastante fácil

Vamos  a  ver  rápidamente cómo configurar su pi para reiniciar una vez al mes.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar evento en el cuadro de abajo.
  3. Ahora debería ver una pantalla con un calendario y una ventana emergente llamado nuevo evento.
  4. Introduzca los detalles de su evento. Por ejemplo, el mío se llama reinicio mensual y ocurrirá en el primer día de cada mes a las 2 am. A continuación se muestra un ejemplo de la pantalla.

eventos de cayena con detalles

  1. Una vez hecho esto, haga clic en Guardar.
  2. Ahora debería ser capaz de ver su evento en el calendario. Basta con hacer clic en él si desea modificarlo.

Como se podría imaginar eventos puede ser bastante potente por lo que sería digno de mirar en estos más. Un buen ejemplo del uso de eventos sería si se necesita algo para ejecutar o activar (como luces que necesitan para ser activado en un momento específico).

Panel de GPIO

El panel GPIO dentro de Frambuesa Pi Cayena le permite controlar y modificar las patas del Pi. Por ejemplo, puede activar un pin de ser una entrada a una salida inversa y el vicio.También se puede activar tanto los pines de salida baja y alta.
Panel de GPIO cayena
Como se puede ver que también lo convierte en un gran lienzo de referencia si necesita hacer referencia hacia atrás y ver qué pines son los que necesita. También puede ver los dispositivos que están asignados actualmente a los pines específicos. También es capaz de ver el estado actual de un alfiler. (Por ejemplo, entrada o salida y baja o alta)

Escritorio remoto

Se  puede  instalar  Cayyene también en un escritorio remoto a su Frambuesa Pi, ya sea a través del navegador web o por medio de la aplicación móvil. Puede hacer esto simplemente haciendo lo siguiente.

  1. Sobre el tablero encontrar el widget que dice “comandos”.
  2. Dentro de este control, haga clic en el acceso remoto.
  3. Ahora se conectará a la Pi y abrir una nueva ventana. Si una nueva ventana no se abre el navegador más probable es bloqueado. Simplemente permiten cayenne.mydevices para abrir nuevas pestañas.
  4. Una vez hecho esto se puede controlar su Pi igual que como si estuviera allí con ella.
  5. Una de las ventajas con el uso de Cayena de escritorio remoto es que se puede acceder a él en cualquier parte del mundo con bastante facilidad en lugar de tener que configurar una VPN o abrir los puertos de la red.

 

Fuente   aqui