Étape 1: Partie logicielle
Code a été développé pour mettre en œuvre le projet sur la carte de dérivation Intel Edison sur plate-forme Arduino et pour la configuration de la connectivité Cloud sur le plateau d’Edison sur le mastic. Je suis seulement fournir le code développé pour la plate-forme Arduino, ce dernier est généralement disponible (également, des mesures sont vaguement donnés ci-dessous comme Prework). C’est ici :
/*
Copyright (c) 2015, Intel Corporation
Redistribution et l’utilisation sous les formes source et binaire, avec ou sans modification, sont autorisées sous réserve que les conditions suivantes sont remplies :
* Les redistributions du code source doivent conserver la notice de copyright ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante. * Les redistributions sous forme binaire doivent reproduire l’avis de copyright ci-dessus, cette liste de conditions et l’exclusion de responsabilité suivante dans la documentation et/ou autres documents fournis avec la distribution.
* Ni le nom de Intel Corporation ni les noms de ses contributeurs peuvent servir à endosser ou promouvoir des produits dérivés du présent logiciel sans autorisation écrite préalable spécifique.
CE LOGICIEL EST FOURNI PAR LES DETENTEURS DU COPYRIGHT ET LES CONTRIBUTEURS "TEL QUEL" ET AUCUNE EXPRESSE OU IMPLICITE DES GARANTIES, Y COMPRIS, MAIS SANS S’Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D’ADÉQUATION À UN USAGE PARTICULIER SONT EXCLUES. EN AUCUN CAS LE PROPRIÉTAIRE DU COPYRIGHT OU CONTRIBUTEURS NE SERA RESPONSABLES DES DOMMAGES DIRECTS, INDIRECTS, ACCESSOIRES, SPÉCIAUX, EXEMPLAIRES OU CONSÉCUTIFS (INCLUANT MAIS PAS LIMITÉ À DES ACHATS DE REMPLACEMENT DE MARCHANDISES OU SERVICES ; PERTE D’UTILISATION, DE DONNÉES OU DE PROFITS ; OU L’INTERRUPTION DES AFFAIRES) CAUSÉS ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT DANS LE CONTRAT, RESPONSABILITÉ STRICTE OU DÉLICTUELLE (Y COMPRIS LA NÉGLIGENCE OU AUTRE) RÉSULTANT DE L’UTILISATION DE CE LOGICIEL, MÊME SI AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES. */
Prework :
Vous devez iotkit-agent installé et en cours d’exécution.
Dispositif doit être activé. (en exécutant : iotkit-admin activer ACTIVATION_CODE)
Après des composants doit être enregistrée (en exécutant : iotkit-admin inscrire nom TYPE) :
température de type temperature.v1.0
Vous pouvez également utiliser IoTkitRegisterExample pour activer et enregistrer de nouveaux composants
#include / / include IoTkit.h pour utiliser le Kit de IoT Intel
#include / / doit être inclus pour utiliser IoTkit
#include
Créez un objet de la IoTkit
classe IoTkit iotkit ;
temp de flotteur ;
const int pinTemp = A0 ; const int B = 3975 ;
/ * « therm_file » - capteur de température de SoC : sur Galileo Gen2 - utilisez thermal_zone0 sur Edison : utilisez thermal_zone1 (température ambiante) thermal_zone3 thermal_zone4 (core0) (core1) * /
char * therm_file = « / sys/devices/virtuel/thermique/thermal_zone3/temp » ;
void setup()
{
Serial.Begin(115200) ;
appel de commencer sur l’objet IoTkit avant d’appeler toute autre méthode
iotkit.Begin() ;
pinMode(7,OUTPUT) ;
pinMode(2,OUTPUT) ; }
void loop() {}
Serial.println ("lecture de température") ;
int val = analogRead(pinTemp) ;
Déterminer la résistance actuelle de la sonde thermique basée sur la valeur de la sonde.
flotteur de résistance = (float)(1023-val) * 10000/val ;
Calculer la température basée sur la valeur de la résistance.
Temp = 1 / (Journal (résistance/10000) /B+1/298.15) -273,15 ;
Serial.Print ("température est") ;
Serial.Print(temp) ;
Serial.println ("degrés celcius.") ;
if(Temp>22)
{
digitalWrite(7,HIGH) ;
digitalWrite(2,HIGH) ;
}
d’autre
{
digitalWrite(7,LOW) ;
digitalWrite(2,LOW) ;
}
appel d’envoi pour générer une observation.
parm1 - le nom de la mesure. Il doit avoir été précédemment enregistré.
PARM2 - la valeur à envoyer comme l’observation de la mesure
vous pouvez également générer votre propre JSON et envoyer plusieurs clés et les valeurs
dans ce format :
//
// {
« n »: « température »,
« v »: « 27,2 »
// }
//
vous devez échapper les citations pour passer directement à iotkit.send :
iotkit.Send (« {\"n\": \"temperature\",\"v\":\"27.2\"} ") ;
//
vous pouvez également envoyer une chaîne JSON complet avec vos propres variables :
//
racine aJsonObject * = aJson.createObject() ;
Si (racine! = NULL) {}
aJson.addItemToObject (racine, « n », aJson.createItem(metric)) ;
aJson.addItemToObject (racine, « v », aJson.createItem(value)) ;
iotkit.Send(aJson.Print(root)) ;
cela envoie votre json complet
aJson.deleteItem(root) ;
// }
//
iotkit.Send (« temp », temp) ;
Delay(2000) ;
}
Fonction générique de Edison/Galileo pour lire le capteur de température de matériel
int getTemp()
{
bool réussie = true ;
SoC DTS_1
int socTemp ;
char rawTemp [6] ;
FICHIER * fp_temp ;
fp_temp = fopen (therm_file, « r ») ;
Si (fp_temp! = NULL)
{
fgets (rawTemp, 6, fp_temp) ;
fclose(fp_temp) ;
}
d’autre
{
Serial.println ("Impossible d’ouvrir le fichier pour la lecture.") ;
Serial.println(therm_file) ;
Serial.println ("essayer un autre lectures de capteurs dans ce répertoire") ;
succès = false ;
}
if(Successful)
{
socTemp = atoi (rawTemp) / 1000 ;
Return socTemp ;
}
return 0 ;
}