Paso 1: Parte de Software
Código fue desarrollado para implementar el proyecto en Junta de breakout de Edison de Intel sobre plataforma Arduino, para la configuración de conectividad de la nube en el tablero de Edison en masilla. Yo sólo estoy proporcionando el código desarrollado para la plataforma Arduino, este último está generalmente disponible (también, pasos vagamente figuran a continuación como Prework). Aquí está:
/*
Copyright (c) 2015, Intel Corporation
Se permiten la redistribución y uso en forma de fuente y binario, con o sin modificaciones, siempre que se cumplan las siguientes condiciones:
* Las redistribuciones del código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad. * Las redistribuciones en formato binario deben reproducir el aviso de copyright anterior, esta lista de condiciones y la renuncia siguiente en la documentación y/u otros materiales suministrados con la distribución.
* Ni el nombre de Intel Corporation o de sus colaboradores puede utilizarse para respaldar o promover productos derivados de este software sin previa autorización por escrito específica.
ESTE SOFTWARE ES PROPORCIONADO POR LOS TITULARES DE DERECHOS DE AUTOR Y COLABORADORES "TAL CUAL" Y CUALQUIER EXPLÍCITA O IMPLÍCITA LAS GARANTÍAS, INCLUYENDO, SIN LIMITARSE A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO PARTICULAR SON NEGADAS. EN NINGÚN CASO EL PROPIETARIO DEL COPYRIGHT O COLABORADORES SERÁ RESPONSABLES POR CUALQUIER DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENTE (INCLUYENDO, PERO SIN LIMITARSE A, ADQUISICIÓN DE BIENES O SERVICIOS SUSTITUTOS; PÉRDIDA DE USO, DATOS O BENEFICIOS; O INTERRUPCIÓN DEL NEGOCIO) SIN EMBARGO LA CAUSA Y EN CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA EN CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA O DE OTRO TIPO) DERIVADA DE LA UTILIZACIÓN DE ESTE SOFTWARE, AUNQUE ADVERTIDO DE LA POSIBILIDAD DE DICHOS DAÑOS. */
Prework:
Necesita a iotkit-agente instalado y funcionando.
Dispositivo debe ser activado. (ejecutando: admin iotkit activar ACTIVATION_CODE)
Siguientes componentes deben estar registrado (ejecutando: iotkit admin registrar nombre tipo):
temperatura de tipo temperature.v1.0
También se puede utilizar IoTkitRegisterExample para activar y registrar nuevos componentes
#include / / incluye IoTkit.h para utilizar el IoT Kit de Intel
#include / / debe ser incluido con IoTkit
#include
crear un objeto de la IoTkit
clase IoTkit iotkit;
temp de flotador;
const int pinTemp = A0; const int B = 3975;
/ * "therm_file" - sensor de temperatura del SoC: en Galileo Gen2 - usar thermal_zone0 en Edison - use thermal_zone1 (temp ambiente) thermal_zone3 thermal_zone4 (core0) (core1) * /
char * therm_file = "/ sys/dispositivos/virtual/térmico/thermal_zone3/temp";
void setup()
{
Serial.Begin(115200);
llamada comienza en el objeto IoTkit antes de llamar a otros métodos
iotkit.Begin();
pinMode(7,OUTPUT);
pinMode(2,OUTPUT); }
void loop() {}
Serial.println ("lectura temperatura");
int val = analogRead(pinTemp);
Determinar la actual resistencia del termistor en función del valor del sensor.
resistencia del flotador = (float)(1023-val) * 10000/val;
Calcular la temperatura basado en el valor de la resistencia.
Temp = 1 / (log (resistencia/10000) /B+1/298.15)-273.15;
Serial.Print ("temperatura es");
Serial.Print(Temp);
Serial.println ("grados.");
if(Temp>22)
{
digitalWrite(7,HIGH);
digitalWrite(2,HIGH);
}
otra cosa
{
digitalWrite(7,LOW);
digitalWrite(2,LOW);
}
llamar enviar para generar una observación.
parm1 - el nombre de la medida. Se deben haber sido previamente inscritos.
parm2 - el valor para enviar como la observación de la medida
también puede generar su propio JSON y enviar múltiples claves y valores
en este formato:
//
// {
"n": "temperatura",
"v": "27.2"
// }
//
necesita escapar de las citas para pasar directamente a iotkit.send:
iotkit.Send ("{\"n\ ": \"temperature\",\"v\":\"27.2\ "}");
//
también puede enviar una cadena JSON completa con sus propias variables:
//
aJsonObject * raíz = aJson.createObject();
Si (raíz! = NULL) {}
aJson.addItemToObject (raíz "n", aJson.createItem(metric));
aJson.addItemToObject (raíz, "v", aJson.createItem(value));
iotkit.Send(aJson.Print(root));
envía tu json completo
aJson.deleteItem(root);
// }
//
iotkit.Send ("temp", temp);
Delay(2000);
}
Función genérica de Edison/Galileo leer el sensor de temperatura del hardware
int getTemp()
{
éxito de bool = true;
SoC DTS_1
int socTemp;
char rawTemp [6];
ARCHIVO * fp_temp;
fp_temp = fopen (therm_file, "r");
Si (fp_temp! = NULL)
{
fgets (rawTemp, 6, fp_temp);
fclose(fp_temp);
}
otra cosa
{
Serial.println ("no se puede abrir fichero para lectura.");
Serial.println(therm_file);
Serial.println ("trate de otra lectura de sensores en este directorio");
éxito = false;
}
if(Successful)
{
socTemp = atoi (rawTemp) / 1000;
volver socTemp;
}
return 0;
}