Yun baserade El Monitor med Cloud stöd / Temboo och Google Drive (7 / 7 steg)
Steg 7: OK. Så är här koden
#include <konsolen.h >
#include <Temboo.h >
#include <process.h >
/ *** ERSÄTTA din nedanstående värden: *** / / / Obs att för extra säkerhet och återanvändbarhet, du kunde / / Använd #define uttalanden för att ange dessa värden i en .h file.constString GOOGLE_USERNAME = "wolola
constString GOOGLE_PASSWORD = "3e3we3w";
#define TEMBOO_ACCOUNT "aSSdazx" / / din Temboo kontonamn
#define TEMBOO_APP_KEY_NAME "myFirstApp" / / appen Temboo nyckel namn
#define TEMBOO_APP_KEY "ccdfddd-uuuuu" / / din Temboo app nyckel / / titeln i kalkylbladet som du vill skicka data till / / (Observera att detta faktiskt måste vara titeln på ett Google-kalkylark / som finns i ditt Google Drive/Docs-konto och är konfigurerad-/ / som beskrivs ovan.) constString SPREADSHEET_TITLE = "ElectricityUsage";
int r0, r1, r2, u0, u1, u2, v, jag = 0;
unsignedlong tid.
Svävar vapen, AMS, Prms, Ptot, vf = 0;
flyta CAL = 1,05;
Processen datum; används för att få datevoidsetup() {
initiera kommunikation:
Bro.begin();
Konsolen.begin();
tid = millis();
om (! date.running()) {
Date.BEGIN("Date");
date.addParameter("+%T");
Date.Run();
}
}
Ogiltigloop() {
Skicka värdet för analog ingång 0:
R2 = r1;
R1 = r0;
R0 = analogRead(A0);
U2 = u1;
U1 = u0;
0,5 Hz till 200Hz Band Pass Filter
U0 = 0.2929*(r0-r2) + 1.411 * u1-0.4142 * u2;
v = u0;
Beräkna Mean-Square ström (ampere)
AMS = 0,99 * AMS + 0,01 * v * v.
Beräkna Root-Mean-Square (ampere)
Armar = sqrt(AMS);
Konvertera till RMS-effekt:
Multipy av 230 v (rms)
30 * 5/1024 är räkenskaperna för vinst för Strömtransformator och ADC
PRMS = 230 * 30 * armar * 5/1024 * CAL;
Delay(1);
Samla in data i 5 sekunder
om (millis() - tid > 5000)
{
Skriva ut RMS-effekt i de sista 5 sekunderna till konsolen
Konsolen.print ("Prms =");
Konsolen.println(prms);
om (jag == 719) {
Eftersom vi bara samlades 1 timmes avläsningar detta i i kWh
Ptot = Ptot/720;
Vi behöver en Process objekt att skicka en begäran om koreografi till Temboo
TembooChoreo AppendRowChoreo;
anropa Temboo klienten
Observera att klienten måste vara reinvoked och nyinsatta med
lämpliga argument varje gång dess run()-metoden anropas.
AppendRowChoreo.begin();
Ange Temboo kontoautentiseringsuppgifter
AppendRowChoreo.setAccountName(TEMBOO_ACCOUNT);
AppendRowChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
AppendRowChoreo.setAppKey(TEMBOO_APP_KEY);
identifiera den Temboo bibliotek koreografiska att köra (Google > kalkylblad > AppendRow)
AppendRowChoreo.setChoreo("/Library/Google/Spreadsheets/AppendRow");
ställa in krävs koreografiska ingångarna
se https://www.temboo.com/library/Library/Google/Spreadsheets/AppendRow/
för fullständig information om ingångar för denna koreografiska
ditt användarnamn på Google (vanligen din e-postadress)
AppendRowChoreo.addInput ("Username", GOOGLE_USERNAME);
lösenordet för Google
AppendRowChoreo.addInput ("Lösenord", GOOGLE_PASSWORD);
titeln på det kalkylblad som du vill lägga till
Obs: ersätta ett eget värde, behålla den "SpreadsheetTitle:" prefix.
AppendRowChoreo.addInput ("SpreadsheetTitle", SPREADSHEET_TITLE);
starta om datum processen:
om (! date.running()) {
Date.BEGIN("Date");
date.addParameter("+%T");
Date.Run();
}
konvertera värdet tid och sensorn till en kommaavgränsad sträng
String timeString = date.readString();
Sträng rowData(timeString);
rowData += ",";
rowData += Ptot;
lägga till RowData ingång objektet
AppendRowChoreo.addInput ("RowData", rowData);
kör koreografiska och vänta på resultaten
Returkod (returkod) kommer att ange framgång eller misslyckande
unsignedint returkod = AppendRowChoreo.run();
returkod av noll (0) betyder framgång
om (returkod == 0) {
Konsolen.println ("framgång! Bifogas "+ rowData);
Konsolen.println("");
} annat {
returkod för något annat än noll innebär underlåtenhet
läsa och Visa eventuella felmeddelanden
samtidigt (AppendRowChoreo.available()) {
char c = AppendRowChoreo.read();
Konsolen.print(c);
}
}
AppendRowChoreo.close();
Jag = 0;
Ptot = 0;
}
annat {
i ++;
Ptot += Prms;
}
tid = millis();
}
}