Arduino Yun – Zugangsdaten auf SD-Karte auslagern

Zugangsdaten auf SD-Karte auslagern

Den Arduino Yun nutzt man oft in Verbindung mit einem Temboo, Google oder Twilio-Account um die volle Leistungsfähigkeit nutzen zu können, ohne viel programmieren zu müssen. Normalerweise schreibt man die Zugangsdaten zu diesen Accounts direkt in den Arduino Code.

Temboo - Zugangsdaten auf SD-Karte

 

 

Was ist aber wenn man mal das Passwort eines der Accounts ändert, was man ja aus Sicherheitsgründen sowieso des Öfteren machen sollte? Da kann man dann froh sein wenn man den Arduino Sketch noch auf seiner Festplatte findet, da man anderenfalls in die Röhre schaut wenn der Arduino Yun nicht mehr macht was er soll weil die Zugangsdaten fehlerhaft sind.

Wie praktisch wäre es da, wenn man die Zugangsdaten  in einer Datei auf der SD-Karte gespeichert hat, so dass man diese in wenigen Sekunden durch die neuen Zugangsdaten ersetzen kann, ohne dass man den Arduino neu programmieren muss?

 

Alte Version mit Nachteilen

Hier sehen Sie die altbekannte Version, in der die Zugangsdaten im Arduino Sketch selber angegeben wurden.
In folgendem Code wurden die Zugangsdaten zum Temboo und zum Google Account aus Gründen der Übersichtlichkeit zwar bereits in zwei eigene Dateien ausgelagert, jedoch bleibt der oben angesprochene Nachteil bestehen.

sendAnEmail.ino

#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h"
#include "GmailAccount.h"

TembooChoreo SendEmailChoreo;

SendEmailChoreo.begin();

SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT);
SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SendEmailChoreo.setAppKey(TEMBOO_APP_KEY);

SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail");
SendEmailChoreo.addInput("Username", GMAIL_USER_NAME);
SendEmailChoreo.addInput("Password", GMAIL_PASSWORD);
SendEmailChoreo.addInput("ToAddress", TO_EMAIL_ADDRESS);
SendEmailChoreo.addInput("Subject", "Ich bin der eMailbetreff");
SendEmailChoreo.addInput("MessageBody", "Ich bin der eMailtext");

TembooAccount.h

#define TEMBOO_ACCOUNT "myTembooAccountName"
#define TEMBOO_APP_KEY_NAME "myFirstApp"
#define TEMBOO_APP_KEY  "xxx-xxx-xxx-xx-xxx"

GmailAccount.h

#define GMAIL_USER_NAME "meineGoogleMailAdresse"
#define GMAIL_PASSWORD "meinGooglePasswort"
#define TO_EMAIL_ADDRESS "EmpfaengerAdresse"

 

temboo-logo

 

Neue Version mit vielen Vorteilen

Zugangsdaten auf der SD-Karte

In dieser Version, die ich absolut bevorzuge, habe ich die Zugangsdaten in einer normalen Textdatei in einem Ordner auf der SD-Karte im Arduino Yun abgespeichert. Temboo macht es uns in diesem Fall sehr einfach auf diese Dateien zuzugreifen. Mit nur einer einzigen Zeile ruft man diese Datei auf, worauf der Arduino alle in der Textdatei enthaltenen Daten verwendet.

sendAnEmail.ino
In Zeile 4 gibt man den Pfad zur Textdatei auf der SD-Karte an.
In Zeile 8 wird die Datei „TembooGmail“, die sich in diesem Verzeichnis befinden sollte, aufgerufen.

#include <Bridge.h>
#include <Temboo.h>

static const String Path = "/mnt/sda1/settingsFiles/";

TembooChoreo SendEmailChoreo;
SendEmailChoreo.begin();
SendEmailChoreo.setSettingsFileToRead(Path+"TembooGmail");

 

SD-Karte

In diesem Beispiel habe ich eine Textdatei mit dem Namen „TembooGmail“ im Verzeichnis „/mnt/sda1/settingsFiles/“ angelegt. Kopieren Sie folgende Zeilen in diese Textdatei und ersetzen Sie alle groß geschriebenen Werte durch die entsprechenden Temboo- und Gmail Accountdaten.

-c/Library/Google/Gmail/SendEmail
-aTEMBOOACCOUNTNAME
-uTEMBOOAPPKEYNAME
-pTEMBOOAPPKEY
-iUsername:GMAILUSERNAME
-iPassword:GMAILPASSWORT
-iToAddress:EMPFAENGEREMAILADRESSE
-iSubject:EMAILBETREFF
-iMessageBody:EMAILBODYTEXT

 

Hier eine Beschreibung der einzelnen Temboo Client-Parameter.
Diese und viele weitere Informationen zu diesem Thema finden Sie auch in der Technischen Dokumentation von Temboo

  • -cchoreo equivalent to setChoreo(„choreo“)
  • -aaccountName equivalent to setAccountName(„accountName“)
  • -uappKeyName equivalent to setAppKeyName(„appKeyName“)
  • -pappKey equivalent to setAppKey(„appKey“)
  • -iname:value equivalent to addInput(„name“, „value“)
  • -oname:path:variable equivalent to addOutputFilter(„name“, „path“, „variable“)
  • -ecredentialName equivalent to setCredential(„credentialName“)
  • -wfilePath equivalent to setSettingsFileToWrite(„filePath“)
  • -rfilePath equivalent to setSettingsFileToRead(„filePath“)

Die Vorteile dieser Version liegen klar auf der Hand. Zugangsdaten lassen sich einfach im Nachhinein ändern ohne den Arduino neu programmieren zu müssen und was genauso wichtig ist, es können längere Texte z.B. für Betreff und Bodytext verwendet werden weil diese nicht mehr im sowieso sehr knappen Speicher des Arduino gespeichert werden müssen.

An dieser Stelle noch mal ein großes Dankeschön an das freundliche, kompetente und schnelle Temboo Support Team.

 

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.