Stap 1: Software deel
Code werd ontwikkeld voor de uitvoering van het project op Intel Edison breakout board op Arduino-platform en voor de configuratie van de wolk connectiviteit op het bord van de Edison op PuTTy. Ik ben alleen het verstrekken van de code die is ontwikkeld voor de Arduino-platform, het tweede is over het algemeen beschikbaar (ook stappen zijn vaag hieronder gegeven als Prework). Hier is het:
/*
Copyright (c) 2015, Intel Corporation
Herdistributie en gebruik in bron- en binaire vorm, met of zonder wijziging, zijn toegestaan mits de volgende voorwaarden wordt voldaan:
* Verspreiding van broncode moeten de bovenstaande auteursrechtkennisgeving, deze lijst met bepalingen en de volgende disclaimer behouden. * Verspreiding in binaire vorm moeten de bovenstaande auteursrechtkennisgeving, deze lijst met bepalingen en de volgende disclaimer worden gereproduceerd in de documentatie en/of andere materialen die bij de distributie geleverd reproduceren.
* Noch de naam van Intel Corporation en de namen van zijn bijdragers mogen te bevelen of te promoten van producten die zijn afgeleid van deze software zonder specifieke voorafgaande schriftelijke toestemming worden gebruikt.
DEZE SOFTWARE WORDT GELEVERD DOOR DE AUTEURSRECHTHOUDERS EN BIJDRAGERS "AS IS" EN ELKE UITDRUKKELIJKE OF CONCLUDENTE GARANTIE, MET INBEGRIP VAN, MAAR NIET BEPERKT TOT, DE IMPLICIETE GARANTIES VAN VERKOOPBAARHEID EN GESCHIKTHEID VOOR EEN BEPAALD DOEL WORDT UITGESLOTEN. IN GEEN GEVAL ZAL DE COPYRIGHT-EIGENAAR OF BIJDRAGERS AANSPRAKELIJK VOOR ENIGE DIRECTE, INDIRECTE, INCIDENTELE, SPECIALE, EXEMPLARISCHE OF GEVOLGSCHADE (INCLUSIEF MAAR NIET BEPERKT TOT AANSCHAF VAN VERVANGENDE GOEDEREN OF SERVICES; VERLIES VAN GEBRUIK, GEGEVENS OF WINSTDERVING; OF ONDERBREKING VAN DE BEDRIJFSVOERING) EN ONDER WELKE AANSPRAKELIJKHEIDSTHEORIE, HETZIJ IN CONTRACT, STRIKTE AANSPRAKELIJKHEID OF ONRECHTMATIGE DAAD (MET INBEGRIP VAN NALATIGHEID OF ANDERSZINS) DIE VOORTVLOEIT OP WELKE WIJZE HET GEBRUIK VAN DEZE SOFTWARE, ZELFS ALS GEADVISEERD VAN DE MOGELIJKHEID VAN DERGELIJKE SCHADE. */
Prework:
U wenst iotkit-agent geïnstalleerd en uitgevoerd.
Apparaat moet worden geactiveerd. (door: iotkit-admin activeren ACTIVATION_CODE)
Volgende componenten moet worden geregistreerd (door uit te voeren: iotkit-admin registreren NAAMTYPE):
temperatuur van type temperature.v1.0
U kunt ook IoTkitRegisterExample gebruiken om te activeren en het registreren van nieuwe onderdelen
#include / / ook IoTkit.h voor het gebruik van de Intel IoT Kit
#include / / moeten worden opgenomen om te gebruiken IoTkit
#include
Maak een object van de IoTkit
klasse IoTkit iotkit;
float temp;
Const int pinTemp = A0; Const int B = 3975;
/ * "therm_file" - SoC temperatuursensor: op Galileo Gen2 - gebruik van thermal_zone0 op de Edison - gebruik van thermal_zone1 (ambient temp) thermal_zone3 (core0) thermal_zone4 (core1) * /
char * therm_file = "/ sys/devices/virtuele/thermisch/thermal_zone3/temp";
VOID Setup
{
Serial.begin(115200);
gesprek beginnen op het IoTkit-object voordat u eventuele andere methoden aanroept
iotkit.begin();
pinMode(7,OUTPUT);
pinMode(2,OUTPUT); }
void loop {}
Serial.println ("lezing temperatuur");
int val = analogRead(pinTemp);
Bepaal de huidige weerstand van de thermistor op basis van de waarde van de sensor.
zweven weerstand = (float)(1023-val) * 10000/val;
De temperatuur op basis van de weerstandswaarde berekenen.
temp = 1 / (log (weerstand/10000) /B+1/298.15)-273.15;
Serial.Print ("temperatuur is");
Serial.Print(temp);
Serial.println ("graden celcius.");
if(temp>22)
{
digitalWrite(7,HIGH);
digitalWrite(2,HIGH);
}
anders
{
digitalWrite(7,LOW);
digitalWrite(2,LOW);
}
oproep verzenden voor het genereren van een opmerking.
parm1 - de naam van de meting. Het moet eerder geregistreerd zijn.
parm2 - de waarde om te verzenden als de waarneming van de meting
u kunt ook uw eigen JSON genereren en verzenden van meerdere sleutels en waarden
in dit formaat:
//
// {
"n": "temperatuur",
"v": "27,2"
// }
//
u wilt ontsnappen van de citaten om het rechtstreeks aan iotkit.send doorgeven:
iotkit.send ("{\"n\ ": \"temperature\",\"v\":\"27.2\ "}");
//
u kunt ook een volledige JSON-string versturen met uw eigen variabelen:
//
aJsonObject * wortel = aJson.createObject();
Als (wortel! = NULL) {}
aJson.addItemToObject (root, "n", aJson.createItem(metric));
aJson.addItemToObject (root, "v", aJson.createItem(value));
iotkit.send(aJson.Print(root));
Dit stuurt uw volledige json
aJson.deleteItem(root);
// }
//
iotkit.send ("temp", temp);
delay(2000);
}
Generieke Edison/Galileo functie te lezen hardware temp sensor
int getTemp()
{
BOOL succesvolle = true;
SoC DTS_1
int socTemp;
char rawTemp [6];
BESTAND * fp_temp;
fp_temp = fopen (therm_file, "r");
Als (fp_temp! = NULL)
{
fgets (rawTemp, 6, fp_temp);
fclose(fp_temp);
}
anders
{
Serial.println kan niet ("openen bestand voor lezen.");
Serial.println(therm_file);
Serial.println ("Probeer een andere sensoren lezingen in deze map");
succesvolle = false;
}
if(successful)
{
socTemp = atoi (rawTemp) / 1000;
Return socTemp;
}
keren 0;
}