<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Arduino on Elektronik Dachbude</title><link>https://neu.fkainka.de/tag/arduino/</link><description>Recent content in Arduino on Elektronik Dachbude</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Sat, 29 Oct 2016 22:33:20 +0200</lastBuildDate><atom:link href="https://neu.fkainka.de/tag/arduino/index.xml" rel="self" type="application/rss+xml"/><item><title>Halloween Schocker</title><link>https://neu.fkainka.de/halloween-schocker/</link><pubDate>Sat, 29 Oct 2016 22:33:20 +0200</pubDate><guid>https://neu.fkainka.de/halloween-schocker/</guid><description>&lt;p&gt;Halloween steht vor der Tür und ich habe beschlossen, eine kleine Party bei mir zu feiern. Als kleines Plus kam mir die Idee einen automatischen Gäste Schocker für das Badezimmer zu basteln&lt;/p&gt;
&lt;h2 id="funktionsweise"&gt;Funktionsweise:&lt;/h2&gt;
&lt;p&gt;Wenn jemand das Licht im Badezimmer einschaltet, kann es vorkommen, dass nach einer gewissen Wartezeit ein schauriges Lachen ertönt und gleichzeitig für ca. eine Sekunde grelle Blitze den abgedunkelten Raum erhellen. Das sollte für einen kurzen Schock ausreichen.&lt;/p&gt;</description></item><item><title>Ausgelagerte Webseiten für den NanoESP</title><link>https://neu.fkainka.de/groessere-webseiten-auf-dem-nanoesp/</link><pubDate>Mon, 28 Mar 2016 06:00:02 +0200</pubDate><guid>https://neu.fkainka.de/groessere-webseiten-auf-dem-nanoesp/</guid><description>&lt;p&gt;Gerade im Kontext des Adventskalenders oder den anderen Lernpaketen habe ich einige HTML-Seiten für den NanoESP entworfen. Allerdings hat mich dabei immer gestört, dass zum einen der Speicherplatz ziemlich gering ist zum anderen die Übertragung etwas langsam sein kann, vor allem, wenn die Seite oft neu geladen werden muss. Deswegen habe ich mir eine neue Methode überlegt, bei der die dazustellenden Webseite auf einem anderen Webserver liegt und beim Verbinden mit dem TCP-Server des Boards einfach nachgeladen wird. Der Nachteil ist hier vor allem, dass der Client mit dem Internet verbunden sein muss. Das bedeutet auch, das ein privates Netzwerk mit dem NanoESP als AccesPoint nicht möglich ist. Die Vorteile sind aber komplexere Seiten und schnellere Ladezeiten sowie eine insgesamt Entlastung des Boards. Im Folgenden Stelle ich das System anhand des &lt;a href="http://iot.fkainka.de/day-14"&gt;RGB-LED-Beispiels&lt;/a&gt; vor.&lt;/p&gt;</description></item><item><title>Twitter Nachrichten auf dem NanoESP</title><link>https://neu.fkainka.de/neueste-twitter-nachricht-auf-dem-nanoesp/</link><pubDate>Thu, 24 Mar 2016 06:00:22 +0100</pubDate><guid>https://neu.fkainka.de/neueste-twitter-nachricht-auf-dem-nanoesp/</guid><description>&lt;p&gt;Das Cheerlights-Projekt ist ein wirklich schönen Projekt. Doch hat mich manchmal gestört, dass ich nicht passend zur Farbe auch die aktuelle Nachricht des Cheerlights-Users lesen konnte. Zumindest nicht ohne das Handy zu Hilfe zu nehmen. Ein NanoESP mit Display und schon könnte man auch den passenden Tweet verfolgen. So schwer kann das ja nicht sein - dachte ich.&lt;/p&gt;
&lt;p&gt;Also habe ich mich die Twitter API nach einer einfachen Möglichkeit durchsucht, Tweets anhand eines bestimmten Stichwortes zu suchen. Die Funktion gibt es, allerdings ist dafür eine etwas kompliziertes Authentifizierungsverfahren notwendig. Mit einem kleinen Mikrocontroller nicht zu machen. Wohl aber mit Hilfe einer php-Bibliothek:&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Polarfuchs</title><link>https://neu.fkainka.de/wettbewerbsbeitrag-polarfuchs/</link><pubDate>Mon, 01 Feb 2016 12:22:14 +0100</pubDate><guid>https://neu.fkainka.de/wettbewerbsbeitrag-polarfuchs/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-nicolaus-cüppers"&gt;Beitrag zum &lt;a href="https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Nicolaus Cüppers&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://www.elektronik-labor.de/Lernpakete/Kalender15/Polar3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Der Conrad-Adventskalender „Internet of Things“ war für mich der Einstieg, mich einmal mit dem Thema Arduino zu befassen. Herausgekommen ist das Projekt „Polarfuchs“. Der Name ist angelehnt an das kleinste mir bekannte deutsche Forschungsschiff. Es handelt sich um einen Versuchsaufbau, der ein unbemanntes „Schiff“ nachbildet, was einige Umgebungsdaten erfasst und weiterleitet und parallel dazu seinen eigenen Zustand überwacht.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://www.elektronik-labor.de/Lernpakete/Kalender15/Polar1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Es wurde nur der Kalender und zusätzlich eine Stromquelle verwendet. Daher sind die Messmethoden auch nicht unbedingt praxisnahe. Normalerweise würde man für die einzelnen Werte passende Sensoren einsetzen.  Das war allerdings nicht die Aufgabe. Vielmehr ging es ja darum, aus einer Hand voll vorhandener Bauelemente das Maximale herauszuholen. Als Schiffsrumpf wird daher der Kalender selbst verwendet. Er bildet durch seinen Plastikkörper mit zahlreichen Einsenkungen eine ideale Schwimmplattform. Es wurden jedoch die üblichen konfektionierten Steckkabel verwendet. Das dem Kalender beiliegende Kabel hätte aber auch gereicht, um die Schaltung aufzubauen. Dann hätte man nur alles etwas enger am Board platzieren müssen.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Quadrocopter Landing Pad</title><link>https://neu.fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/</link><pubDate>Mon, 01 Feb 2016 11:47:29 +0100</pubDate><guid>https://neu.fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-paul-kaczmarczyk"&gt;Beitrag zum &lt;a href="https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Paul Kaczmarczyk&lt;/h2&gt;
&lt;h3 id="auszug-ausdem-pdf"&gt;&lt;em&gt;&lt;strong&gt;Auszug aus&lt;/strong&gt;&lt;/em&gt;&lt;em&gt;&lt;strong&gt;dem PDF:&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;h2 id="projektbeschreibung"&gt;Projektbeschreibung:&lt;/h2&gt;
&lt;p&gt;An Weihnachten erhielt ich einen Quadrocopter als Geschenk von meinem Opa. Ich hatte so viel Freude damit, dass ich mir gleich ein zweites Modell vom Typ Blade Inductrix zulegte. Das Fliegen mit dem Quadrocopter macht allerdings besonders viel Spaß, wenn man Aufgaben zu erfüllen hat.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu.fkainka.de/images/2016/02/Quadro2.jpg"&gt;&lt;img alt="Quadro2" loading="lazy" src="https://neu.fkainka.de/images/2016/02/Quadro2.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="spielidee"&gt;Spielidee&lt;/h2&gt;
&lt;p&gt;Für die zu bewältigenden Aufgaben kam mir der Gedanke das Landing Pad zu bauen, bei dem die Aufgabe darin besteht durch einen Ring zu fliegen, ohne hängen zu bleiben und dann zu landen, sofern man eine Landefreigabe erhält. Wird die Landefreigabe vom Tower nicht gegeben, so muss man schweben, bis die Landefreigabe erteilt wird. Wird ohne Landefreigabe gelandet, erhält man als Strafe für die Landung einen Punktabzug. Landet man mit Freigabe erhält man Punkte auf sein Konto. Ein Hängenbleiben am Ring soll auch einen Punktabzug zur Folge haben. Um sich mit anderen zu messen, sollen die erreichten Punkte auch in einer Internet-weiten Highscore-Liste namentlich geführt werden. Dieses Geschicklichkeitsspiel soll rundenbasiert ablaufen, wobei die Rundenzeit 60 s beträgt. Läuft die Runde ab, werden die addierten Punkte in die Highscore-Liste eingetragen. Der Start einer neuen Runde soll durch Druck auf einen Taster ermöglicht werden. [&amp;hellip;]&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Neigungssensor – auslesen per IoT- Board, übertragen per WLAN</title><link>https://neu.fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/</link><pubDate>Wed, 27 Jan 2016 15:17:24 +0100</pubDate><guid>https://neu.fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-vonholger-fritzsch"&gt;Beitrag zum &lt;a href="https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Holger Fritzsch&lt;/h2&gt;
&lt;p&gt;Mit einer einfachen Zusatzschaltung läßt sich mit dem IoT- Board eine Erschütterung oder Lageänderung von Gegenständen oder Türen detektieren.&lt;br&gt;
Zur Anwendung kommt hier ein RS- Flip Flop bestehend aus 2 Transistoren vom Typ BC547.&lt;/p&gt;
&lt;p&gt;Ob man nun eine Tür , Fenster oder Fahrrad überwachen oder Teile vor unbefugter Entnahme sichern will,der kompakte Aufbau des Moduls machts möglich.&lt;br&gt;
Die Schaltung kennt zwei stabile Zustände, nämlich Bereitschaft- und Alarmzustand.&lt;br&gt;
Technisch gesehen entsprechend dem Set- und Reset- Zustand.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Wassermelder mit Twitter-Alarmmeldung</title><link>https://neu.fkainka.de/wettbewerbsbeitrag-wassermelder/</link><pubDate>Wed, 27 Jan 2016 12:57:19 +0100</pubDate><guid>https://neu.fkainka.de/wettbewerbsbeitrag-wassermelder/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-vonbernhard-kaiser-michael-gaus"&gt;Beitrag zum &lt;a href="https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Bernhard Kaiser &amp;amp; Michael Gaus&lt;/h2&gt;
&lt;p&gt;Bei diesem Projekt handelt es sich um einen Wassermelder, der optisch, akustisch und per Twitter-Meldung Alarm gibt, sobald an den Sensorkontakten Wasser detektiert wird. Er kann z.B. zur Überwachung auf austretendes Wasser aus Waschmaschine oder Spülmaschine dienen und helfen, rechtzeitig vor größeren Überschwemmungen eingreifen zu können. Als Sensorkontakt können einfach 2 Drähte mit abisolierten Enden genommen werden, so wie es auch auf dem Foto zu sehen ist. Verwendet wurden ausschließlich die Bauteile der beiden Adventskalender.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Blumenwächter</title><link>https://neu.fkainka.de/wettbewerbsbeitrag-blumenwaechter/</link><pubDate>Mon, 25 Jan 2016 19:29:19 +0100</pubDate><guid>https://neu.fkainka.de/wettbewerbsbeitrag-blumenwaechter/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-leander-hackmann"&gt;Beitrag zum &lt;a href="https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Leander Hackmann:&lt;/h2&gt;
&lt;p&gt;Jeder hat Topfpflanzen. Sie verschönern unseren Alltag, benötigen jedoch auch häufig unsere Aufmerksamkeit in Form von Pflege. Um den besten Standort herauszufinden und das regelmäßige Giessen nicht zu vergessen, habe ich folgende Anwendung mit dem Iot-Board entworfen und umgesetzt: ein Datenlogger für Licht und Feuchtigkeit.&lt;/p&gt;
&lt;h3 id="download-des-programms"&gt;&lt;a href="https://neu.fkainka.de/images/2016/01/blumenwaechter-final-160125a.zip"&gt;Download des Programms&lt;/a&gt;&lt;/h3&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Das Programm&lt;/summary&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;//Blumenwaechter für das NanoESP-Board
//2016 von Leander H.
//Misst alle 30min. Feuchtigkeit und Helligkeit
//Mit Druck auf Taster kann ein Nullpunkt in der Messung als markanter Punkt gesetzt werden#
//Es werden zwei Channels auf Thingspeak.com verwendet (API-Keys in &amp;#34;LightKEY und &amp;#34;MoistureKEY&amp;#34;)
//Über &amp;#34;threshold&amp;#34; kann der Pegel zur Warnung eingestellt werden
//Code und Idee von Leander H. -- Funktionen von Fabian Kainka
#include SoftwareSerial.h&amp;gt;
#include Time.h&amp;gt;
//Setup-Bereich
#define SSID &amp;#34;[SSID]&amp;#34;
#define PASSWORD &amp;#34;[Passwort]&amp;#34;
#define LightKEY &amp;#34;[API-KEY]&amp;#34;
#define MoistureKEY &amp;#34;[API-KEY]&amp;#34;
#define threshold 400 //
#define DEBUG true
#define LED_WLAN 13
SoftwareSerial esp8266(11, 12); // RX, TX
int ledGreen = 5;
int ledYellow = 4;
int ledRed = 3;
int sensorPower = 2;
int moistSensor = 2;
String lastminute;
 
const byte thingPost[] PROGMEM = {
 80, 79, 83, 84, 32, 42, 85, 82, 76, 42, 32, 72, 84, 84, 80, 47, 49, 46, 49, 10, 72, 111, 115, 116, 58, 32, 97, 112, 105, 46, 116, 104, 105, 110, 103, 115, 112, 101, 97, 107, 46, 99, 111, 109, 10, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 58, 32, 99, 108, 111, 115, 101, 10, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 120, 45, 119, 119, 119, 45, 102, 111, 114, 109, 45, 117, 114, 108, 101, 110, 99, 111, 100, 101, 100, 10, 67, 111, 110, 116, 101, 110, 116, 45, 76, 101, 110, 103, 116, 104, 58, 32, 42, 76, 69, 78, 42, 10, 10, 42, 65, 80, 80, 69, 78, 68, 42, 10
};
void setup() {
 pinMode(ledGreen, OUTPUT);
 pinMode(ledYellow, OUTPUT);
 pinMode(ledRed, OUTPUT);
 pinMode(sensorPower, OUTPUT);
 
 Serial.begin(19200);
 esp8266.begin(19200);
 while(!espConfig()){ //Failsafe für WLAN
   delay(200);
 }
 digitalWrite(LED_WLAN, HIGH);
 while(!getTime(&amp;#34;chronic.herokuapp.com&amp;#34;, &amp;#34;/utc/in+one+hours&amp;#34;) == false){ //Failsafe für Zeitsynchro
   delay(200);
 }
 
 sendThingPost(LightKEY, analogRead(A0)); //Erste Übermittlung
 digitalWrite(sensorPower, HIGH);
 delay(200);
 int tmp = analogRead(A2);
 sendThingPost(MoistureKEY, tmp);
 digitalWrite(sensorPower, LOW);
 if(tmp threshold){
    digitalWrite(ledRed, HIGH);
    digitalWrite(ledGreen, LOW);
 }else{
    digitalWrite(ledRed, LOW);
    digitalWrite(ledGreen, HIGH);
 }
}
void loop() {
 String shour, sminute, ssecond;
 if (hour() 9) shour = &amp;#34;0&amp;#34; + String(hour()); else shour = String(hour()); // adjust for 0-9
 if (minute() 9) sminute = &amp;#34;0&amp;#34; + String(minute());  else sminute = String(minute());
 if (second() 9) ssecond = &amp;#34;0&amp;#34; + String(second());  else ssecond = String(second());
 //debug(shour + &amp;#34;:&amp;#34; + sminute + &amp;#34;:&amp;#34; + ssecond);
 
 if(sminute == &amp;#34;0&amp;#34; || sminute == &amp;#34;30&amp;#34;){ //Wird zur halben und vollen Stunde ausgeführt
   if(sminute != lastminute){
         digitalWrite(ledYellow, HIGH);
         if(sendThingPost(LightKEY, analogRead(A0) == false)){
           while(sendThingPost(LightKEY, analogRead(A0) == false)){
             sendThingPost(LightKEY, analogRead(A0));
             delay(200);
           }
         }
         digitalWrite(ledYellow, LOW);
         delay(500);
         digitalWrite(ledYellow, HIGH);
         digitalWrite(sensorPower, HIGH);
         delay(100);
         if(sendThingPost(MoistureKEY, analogRead(A2) == false)){
           while(sendThingPost(MoistureKEY, analogRead(A2) == false)){
             sendThingPost(MoistureKEY, analogRead(A2));
             delay(200);
           }
         }
         digitalWrite(sensorPower, LOW);
         digitalWrite(ledYellow, LOW);
         
         digitalWrite(sensorPower, HIGH);
         delay(100);
         int tmp = analogRead(A2);
         digitalWrite(sensorPower, LOW);
         
         if(tmp threshold){
           digitalWrite(ledRed, HIGH);
           digitalWrite(ledGreen, LOW);
         }else{
           digitalWrite(ledRed, LOW);
           digitalWrite(ledGreen, HIGH);
         }
         
         lastminute = sminute;
   }
 }
 
 if(analogRead(A1) &amp;gt; 500){ //Button zum Setzen eines Nullpunktes
   digitalWrite(ledYellow, HIGH);
   sendThingPost(LightKEY, 0);
   digitalWrite(ledYellow, LOW);
   delay(500);
   digitalWrite(ledYellow, HIGH);
   sendThingPost(MoistureKEY, 0);
   digitalWrite(ledYellow, LOW);
   delay(1000);
 }
}
//Verwendete Funktionen von Fabian Kainka folgen ab hier:
//-----------------------------------------ThingsSpeak Functions------------------------------------
boolean sendThingPost(String key, int value)
{
 boolean succes = true;
 String  Host = &amp;#34;api.thingspeak.com&amp;#34;;
 String msg = &amp;#34;field1=&amp;#34; + String(value);
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;TCP\&amp;#34;,\&amp;#34;&amp;#34; + Host + &amp;#34;\&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String postRequest = createThingPost(&amp;#34;/update&amp;#34;, key, msg);
 if (sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(postRequest.length()), &amp;#34;&amp;gt;&amp;#34;))
 {
   esp8266.print(postRequest);
   esp8266.find(&amp;#34;SEND OK&amp;#34;);
   if (!esp8266.find(&amp;#34;CLOSED&amp;#34;)) succes &amp;amp;= sendCom(&amp;#34;AT+CIPCLOSE&amp;#34;, &amp;#34;OK&amp;#34;);
 }
 else
 {
   succes = false;
 }
 return succes;
}  
String createThingPost(String url, String key, String msg)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key + &amp;#34;&amp;amp;&amp;#34; + msg;
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String createThingGet(String url, String key)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key;
 xBuffer.replace(&amp;#34;POST&amp;#34;, &amp;#34;GET&amp;#34;);
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String createThingGet(String url, String key, String msg)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key + &amp;#34;&amp;amp;&amp;#34; + msg;
 xBuffer.replace(&amp;#34;POST&amp;#34;, &amp;#34;GET&amp;#34;);
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String getTCP(String Host, String Subpage)
{
 boolean succes = true;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;TCP\&amp;#34;,\&amp;#34;&amp;#34; + Host + &amp;#34;\&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String getRequest = &amp;#34;GET &amp;#34; + Subpage + &amp;#34; HTTP/1.1\r\nHost:&amp;#34; + Host + &amp;#34;\r\n\r\n&amp;#34;;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(getRequest.length() + 2), &amp;#34;&amp;gt;&amp;#34;);
 return sendCom(getRequest);
}
boolean getTime(String Host, String Subpage)
{
 boolean succes = true;
 int xyear, xmonth, xday, xhour, xminute, xsecond;  //lokal variables
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;TCP\&amp;#34;,\&amp;#34;&amp;#34; + Host + &amp;#34;\&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String getRequest = &amp;#34;GET &amp;#34; + Subpage + &amp;#34; HTTP/1.1\r\nHost:&amp;#34; + Host + &amp;#34;\r\n&amp;#34;;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(getRequest.length() + 2), &amp;#34;&amp;gt;&amp;#34;);
 esp8266.println(getRequest);
 if (esp8266.find(&amp;#34;+IPD&amp;#34;))
 {
   if (esp8266.find(&amp;#34;\r\n\r\n&amp;#34;))
   {
     xyear = esp8266.parseInt();
     xmonth = esp8266.parseInt();
     xday = esp8266.parseInt();
     xhour = esp8266.parseInt();
     xminute = esp8266.parseInt();
     xsecond = esp8266.parseInt();
     if (xday 0) xday *= -1;          //Because of date seperator - parseInt detects negativ integer
     if (xmonth 0) xmonth *= -1;    //Because of date seperator - parseInt detects negativ integer
     setTime(xhour, xminute, xsecond, xday, xmonth, xyear);
     sendCom(&amp;#34;AT+CIPCLOSE&amp;#34;, &amp;#34;OK&amp;#34;);
     return true;
   }
   else return false;
 }
 else return false;
}
//-----------------------------------------Config ESP8266------------------------------------
boolean espConfig()
{
 boolean succes = true;
 esp8266.setTimeout(5000);
 succes &amp;amp;= sendCom(&amp;#34;AT+RST&amp;#34;, &amp;#34;ready&amp;#34;);
 esp8266.setTimeout(1000);
 if (configStation(SSID, PASSWORD)) {
   succes &amp;amp;= true;
   debug(&amp;#34;WLAN Connected&amp;#34;);
   debug(&amp;#34;My IP is:&amp;#34;);
   debug(sendCom(&amp;#34;AT+CIFSR&amp;#34;));
 }
 else
 {
   succes &amp;amp;= false;
 }
 //shorter Timeout for faster wrong UPD-Comands handling
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPMODE=0&amp;#34;, &amp;#34;OK&amp;#34;);  //So rum scheit wichtig!
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;);
 return succes;
}
boolean configTCPServer()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=1&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPSERVER=1,80&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configTCPClient()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;));
 //succes &amp;amp;= (sendCom(&amp;#34;AT+CIPSERVER=1,80&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configStation(String vSSID, String vPASSWORT)
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWMODE=1&amp;#34;, &amp;#34;OK&amp;#34;));
 esp8266.setTimeout(20000);
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWJAP=\&amp;#34;&amp;#34; + String(vSSID) + &amp;#34;\&amp;#34;,\&amp;#34;&amp;#34; + String(vPASSWORT) + &amp;#34;\&amp;#34;&amp;#34;, &amp;#34;OK&amp;#34;));
 esp8266.setTimeout(1000);
 return succes;
}
boolean configAP()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWMODE=2&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWSAP=\&amp;#34;NanoESP\&amp;#34;,\&amp;#34;\&amp;#34;,5,0&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configUDP()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMODE=0&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;UDP\&amp;#34;,\&amp;#34;192.168.255.255\&amp;#34;,90,91,2&amp;#34;, &amp;#34;OK&amp;#34;); //Importand Boradcast...Reconnect IP
 return succes;
}
//-----------------------------------------------Controll ESP-----------------------------------------------------
boolean sendUDP(String Msg)
{
 boolean succes = true;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(Msg.length() + 2), &amp;#34;&amp;gt;&amp;#34;);    //+&amp;#34;,\&amp;#34;192.168.4.2\&amp;#34;,90&amp;#34;, &amp;#34;&amp;gt;&amp;#34;);
 if (succes)
 {
   succes &amp;amp;= sendCom(Msg, &amp;#34;OK&amp;#34;);
 }
 return succes;
}
boolean sendCom(String command, char respond[])
{
 esp8266.println(command);
 if (esp8266.findUntil(respond, &amp;#34;ERROR&amp;#34;))
 {
   return true;
 }
 else
 {
   debug(&amp;#34;ESP SEND ERROR: &amp;#34; + command);
   return false;
 }
}
String sendCom(String command)
{
 esp8266.println(command);
 return esp8266.readString();
}
//-------------------------------------------------Debug Functions------------------------------------------------------
void serialDebug() {
 while (true)
 {
   if (esp8266.available())
     Serial.write(esp8266.read());
   if (Serial.available())
     esp8266.write(Serial.read());
 }
}
void debug(String Msg)
{
 if (DEBUG)
 {
   Serial.println(Msg);
 }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p&gt;Das Programm misst zur vollen und halben Stunde (Zeit wird aus dem Internet bezogen) Helligkeit und Feuchtigkeit, um diese dann in zwei Graphen auf Thingspeak.com zu schreiben. Bei zu trockener Erde (der Wert „threshold“ muss individuell angepasst werden, bei mir lag der Wert für feuchte Erde bei rund 400) leuchtet dann eine rote LED und ansonsten eine grüne. Die Stromzufuhr für den Feuchtigkeitssensor (ein Spannungsteiler), wird nur periodisch eingeschaltet, um Elektrolyse in der Erde zu vermeiden. Außerdem müssen Graphitelektroden (z.B. Bleistiftminen) verwendet werden, um die Pflanze nicht durch Ionen einer Elektrolyse zu vergiften (besonders bei Kupfer besteht Gefahr).&lt;/p&gt;</description></item><item><title>Schnellstart mit dem NanoESP - Teil2</title><link>https://neu.fkainka.de/schnellstart-mit-dem-nanoesp-teil2/</link><pubDate>Mon, 07 Dec 2015 00:01:01 +0100</pubDate><guid>https://neu.fkainka.de/schnellstart-mit-dem-nanoesp-teil2/</guid><description>&lt;p&gt;&lt;em&gt;In diesem Artikel finden Sie Auszüge aus einem meiner ersten Bücher „Schnellstart mit dem Arduino Micro“. Ich habe den Text etwas für das NanoESP-Board angepasst. Screenshots etc. können aber immer noch Text für einen anderen Arduino enthalten. Gedacht ist dieser Artikel vor allem für diejenigen, die sich für das NanoESP-Board (Pretzelboard) interessieren, aber noch nie mit Arduino gearbeitet haben.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="vorbereitung"&gt;Vorbereitung&lt;/h1&gt;
&lt;p&gt;Nach dem theoretischen Einstieg in die Arduino-Welt ist es nun an der Zeit, sich mit den praktischen Grundlagen zu beschäftigen. Als ersten Schritt sollte man sich ein praktikables System für die Hardwareaufbauten aneignen. Für den NanoESP bietet sich ein mittleres bis großes Steckboard an.&lt;/p&gt;</description></item><item><title>Schnellstart mit dem NanoESP für Arduino Neulinge</title><link>https://neu.fkainka.de/schnellstart-mit-dem-nanoesp-fuer-arduino-neulinge/</link><pubDate>Wed, 02 Dec 2015 11:11:08 +0100</pubDate><guid>https://neu.fkainka.de/schnellstart-mit-dem-nanoesp-fuer-arduino-neulinge/</guid><description>&lt;p&gt;&lt;em&gt;In diesem Artikel finden Sie Auszüge aus einem meiner ersten Bücher &amp;ldquo;Schnellstart mit dem Arduino Uno&amp;rdquo;. Ich habe den Text etwas für das NanoESP-Board angepasst. Screenshots etc. können aber immer noch Text für einen anderen Arduino enthalten. Gedacht ist dieser Artikel vor allem für diejenigen, die sich für das NanoESP-Board (Pretzelboard) interessieren, aber noch nie mit Arduino gearbeitet haben.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="teil-1-schnellstart"&gt;Teil 1: Schnellstart&lt;/h1&gt;
&lt;h2 id="schnellstart"&gt;Schnellstart&lt;/h2&gt;
&lt;p&gt;Ich schätze es juckt Ihnen schon seit dem Öffnen des Paketes in den Fingern, ein Programm auf Ihrem Arduino auszuprobieren. Deshalb gibt es hier noch vor anderen wichtigen Informationen eine Schnellstartanleitung und ein paar Beispiele.&lt;/p&gt;</description></item><item><title>Der Kalender-Wettbewerb 2015: Sensoren im Internet Of Things</title><link>https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/</link><pubDate>Mon, 09 Nov 2015 19:00:57 +0100</pubDate><guid>https://neu.fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/</guid><description>&lt;h4 id="zur-liste-mit-allen-beiträgen"&gt;&lt;a href="https://neu.fkainka.de/alle-beitraege-zum-adventskalender-wettbewerb-2015"&gt;Zur Liste mit allen Beiträgen&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Entwickeln Sie ein eigenes Projekt mit den Bauteilen aus den &lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Kalender15.html"&gt;Elektronik-Kalender 2015&lt;/a&gt; und dem &lt;a href="https://neu.fkainka.de/der-conrad-adventskalender-internet-of-things/"&gt;Internet of Things Kalender&lt;/a&gt; in Verbindung mit dem NanoESP-Board (im IoT-Kalender enthalten) und nehmen Sie am Wettbewerb teil! Falls Sie den Kalender nicht haben, können Sie trotzdem teilnehmen, denn die Bauteile sind leicht zu besorgen. Der NanoESP wird ab Anfang Dezember ebenfalls im Einzelverkauf erhältlich sein. Der Aufbau kann gesteckt oder gelötet sein, ganz egal wie. Einsendeschluss ist der 31.01.2016. Aber Sie können jetzt schon loslegen und Ihren Beitrag einsenden oder selbst auf &lt;a href="http://www.instructables.com/"&gt;Instructables.com&lt;/a&gt; veröffentlichen.&lt;/p&gt;</description></item><item><title>Der Conrad Adventskalender: Internet of Things</title><link>https://neu.fkainka.de/der-conrad-adventskalender-internet-of-things/</link><pubDate>Sun, 01 Nov 2015 10:42:55 +0100</pubDate><guid>https://neu.fkainka.de/der-conrad-adventskalender-internet-of-things/</guid><description>&lt;p&gt;In den letzen Monaten war ich ziemlich eingespannt. Grund dafür war, dass Franzis am Anfang des Jahres zu mir gekommen ist mit dem Auftrag, einen Adventskalender mit dem Thema Internet of Things zu entwickeln. Eine spannende Aufgabe wie ich fand und habe mich gleich ans Werk gemacht. Heraus kam nicht nur ein Adventskalender, sondern auch ein Entwicklungsboard, dass ich NanoESP getauft habe (denn es besteht quasi aus einem Arduino Nano Replikat und einem ESP8266 WLAN Modul). Franzis verkauft ab Anfang Dezember das Board unter dem Namen Pretzelboard und Conrad wollte auch eine eigene Version, die den Namen C-Controll IoT WiFi Board trägt. Der Inhalt ist allerdings immer der selbe: eine WLAN fähiges, Arduino kompatibles Entwicklungsboard für einen moderaten Preis (Einzelverkaufspreis 29,95€).&lt;br&gt;
Zum Zeitpunkt, an dem ich den Artikel schreibe, ist das Board allerdings nur im Adventskalender zu bekommen. Dieser enthält neben dem Board noch einige praktische Bauteile. Welche genau wird an dieser Stelle noch nicht verraten. Details zum Board kann man aber auf der eigens für das Thema Internet of Things und NanoESP erstellten Webseite&lt;/p&gt;</description></item><item><title>Grafikdisplays programmieren</title><link>https://neu.fkainka.de/grafikdisplays-programmieren/</link><pubDate>Thu, 01 Oct 2015 21:10:58 +0200</pubDate><guid>https://neu.fkainka.de/grafikdisplays-programmieren/</guid><description>&lt;p&gt;In Zusammenarbeit mit &lt;a href="http://tiny.systems/"&gt;Thomas Baum&lt;/a&gt; ist ein spannendes und vielseitiges Lernpaket rund um das Thema Grafikdisplay programmieren entstanden. Hauptbestandteil des Pakets ist ein stromsparendes Display-Shield für Arduino Boards, auf dem sich zusätzlich noch zwei programmierbare Buttons befinden.&lt;/p&gt;
&lt;p&gt;Anhand von 20 praxisnahen Versuchen bekommt der Leser Schritt für Schritt die Grundlagen des Displayprogammierung vermittelt. Egal ob es um das einfach Darstellen von Text oder das Zeichnen von geometrischen Figuren geht, für jeden Anwendungsbereich gibt es ein praktisches Projekt. Egal ob handliches Oszilloskop für die schnelle Messung nebenbei oder grafische Statusmonitor eines SmartHomes, man bekommt immer gleich einen Eindruck für was das Gelernte gut sein könnte. Um das Paket abzurunden gibt es am Ende noch ein Spiel, nämlich das beliebte Flappy Birds. So kann man nach all dem neuen Wissen noch einmal richtig abschalten.&lt;/p&gt;</description></item><item><title>RGB Crossfade Library</title><link>https://neu.fkainka.de/rgb-crossfade-library/</link><pubDate>Sun, 19 Apr 2015 00:25:59 +0200</pubDate><guid>https://neu.fkainka.de/rgb-crossfade-library/</guid><description>&lt;p&gt;Die Crossfade-Library von Radek Wierzbicki ist aus einem Arduino Artikel zum Thema Crossfade entstanden. Sie ermöglicht es unter anderem Farben zu definieren, und zwar nach dem Schema:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RGBColor white = RGBColor(100, 100, 100);&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Die Werte werden in Prozent angegeben, das Maximum ist also 100.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quellen:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.radekw.com/blog/2011/01/08/arduino-remote-rgb-light/"&gt;Crossfade-Library&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/radekw/Arduino/tree/5f24ce7c8db9dfbb5252b59824c3217d851b3a3c"&gt;Auf Github in Unterordner Libraries/RGB-LED&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Diese Farben können dann per Crossfade-Befehl oder per setColor-Befehl ausgegeben werden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Funktionen der Library:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RGBLED(int redPin, int greenPin, int bluePin, int hold, int wait, int commonAnode);&lt;/li&gt;
&lt;li&gt;void crossfade(RGBColor &amp;amp;color);&lt;/li&gt;
&lt;li&gt;void setColor(RGBColor &amp;amp;color);&lt;/li&gt;
&lt;li&gt;void setIntensity(int intensity);&lt;/li&gt;
&lt;li&gt;void setCrossfadeWait(int wait);&lt;/li&gt;
&lt;li&gt;void setCrossfadeHold(int hold);&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In der Initialisierungsfunktion RGBLED werden in den &lt;strong&gt;ersten drei Parametern die einzelnen Pins&lt;/strong&gt; angegeben, an denen die Farben liegen. Danach folgen die Festlegung der &lt;strong&gt;Standartwere für Hold und Wait&lt;/strong&gt;. Zuletzt kann man noch festlegen ob die RGB-LED eine &lt;strong&gt;gemeinsame Anode (int = 1)  oder Kathode (int = 0)&lt;/strong&gt; hat. Dies ist wichtig, da bei einer gemeinsamen Anode die PWM-Werte umgekehrt werden müssen.&lt;/p&gt;</description></item><item><title>ESP8266 in der Arduino IDE</title><link>https://neu.fkainka.de/esp8266-in-der-arduino-ide/</link><pubDate>Wed, 01 Apr 2015 22:21:48 +0200</pubDate><guid>https://neu.fkainka.de/esp8266-in-der-arduino-ide/</guid><description>&lt;p&gt;Vor kurzem kam die Meldung bei verschiedenen Online-Magazinen, dass findige Entwickler nun eine eigene Arduino IDE mit integriertem Support für das WLAN-Modul ESP8266 entwickelt haben (&lt;a href="http://www.electronics-lab.com/blog/?p=33488"&gt;Beitrag auf Electronic-Lab&lt;/a&gt; ; &lt;a href="http://www.esp8266.com/viewforum.php?f=25"&gt;Link ESP8266.com&lt;/a&gt; ; &lt;a href="https://github.com/esp8266/arduino"&gt;Github mit Download)&lt;/a&gt;. Es handelt sich hierbei um eine angepasste Arduino IDE, die man alternativ zur eigentlichen IDE installieren kann. Beim stöbern im Forum habe ich aber auch eine Möglichkeit entdeckt, bei der die notwendigen Dateien einfach in die bestehende Arduino Version (ab 1.6) eingebunden werden können&lt;/p&gt;</description></item><item><title>Yun Projekt Universalfernbedienung</title><link>https://neu.fkainka.de/yun-projekt-universalfernbedienung/</link><pubDate>Mon, 16 Feb 2015 00:01:32 +0100</pubDate><guid>https://neu.fkainka.de/yun-projekt-universalfernbedienung/</guid><description>&lt;p&gt;Das Ziel dieses Arduino Yun Projekt war es, eine Art übers WLAN steuerbare Universalfernbedienung für sowohl Infrarot als auch Funksignale zu realisieren. Dabei kommen einige bereits vorgestellte Bauteile und Libraries zum Einsatz.&lt;/p&gt;
&lt;p&gt;Dieses Projekt ist eigentlich schon seid einiger Zeit fertig und im Einsatz, allerdings habe ich die Projektdateien nicht wiedergefunden. Nun sind sie aber wieder aufgetaucht und ich versuche mal alle Erkenntnisse zu rekonstruieren. Die Dokumentation ist deswegen allerdings nicht so ausführlich.&lt;/p&gt;</description></item><item><title>ESP8266 Arduino-Programm: setLED</title><link>https://neu.fkainka.de/esp8266-arduino-programm-setled/</link><pubDate>Mon, 02 Feb 2015 00:00:12 +0100</pubDate><guid>https://neu.fkainka.de/esp8266-arduino-programm-setled/</guid><description>&lt;p&gt;Dieses Programm ist mein erster Versuch, das &lt;a href="https://neu.fkainka.de/kurzinfos-zum-wlan-modul-esp8266-wi07c/" title="Kurzinfos zum WLAN-Modul ESP8266 (Wi07c)"&gt;WLAN Modul ESP8266&lt;/a&gt; über den Arduino Uno zu bändigen. Die Funktion des Programms erscheint recht simpel. Über &lt;strong&gt;Steuerbefehle&lt;/strong&gt; lässt sich di&lt;strong&gt;e L-Led (digital Pin13)&lt;/strong&gt;, die auf fast jedem Arduino Board vorhanden ist, &lt;strong&gt;Ein- und Ausschalten&lt;/strong&gt;. Es gibt zwei Varianten. Die erste Variante erlaubt &lt;strong&gt;über den Browser direkt durch Eingabe einer URL&lt;/strong&gt; die LED zu schalten. Die zweite Variante läuft &lt;strong&gt;über einen eigenen TCP-Client&lt;/strong&gt;, wie ich ihn z.B. in dem Artikel über &lt;a href="https://neu.fkainka.de/wlan-modul-esp8266-erste-schritte/" title="WLAN Modul ESP8266 – Erste Schritte"&gt;die ersten Schritte&lt;/a&gt; verwendet habe.&lt;/p&gt;</description></item><item><title>WLAN Modul ESP8266 und Arduino</title><link>https://neu.fkainka.de/wlan-modul-esp8266-und-arduino/</link><pubDate>Wed, 28 Jan 2015 17:25:55 +0100</pubDate><guid>https://neu.fkainka.de/wlan-modul-esp8266-und-arduino/</guid><description>&lt;p&gt;Der nächste Schritt ist nun, das ESP8266 Modul mit einem Arduino zu verbinden um das ganze portabler zu haben. Meine erste Wahl war ein &lt;strong&gt;Arduino Nano&lt;/strong&gt; Nachbau aus China**,** den ich ebenfalls mitbestellt habe. Dieser hat einen 3,3 V Pin so dass die Sache auf den ersten Blick ganz einfach aussah. Tatsächlich hat das Modul aber ähnlich reagiert, wie schon bei den ersten Versuchen mit der FTDI Platine. Das Modul startete nicht richtig. Nach einigem Suchen fand ich auch den Grund heraus.&lt;/p&gt;</description></item><item><title>Funksteckdosen Steuern</title><link>https://neu.fkainka.de/funksteckdosen-steuern/</link><pubDate>Thu, 10 Jul 2014 14:00:32 +0200</pubDate><guid>https://neu.fkainka.de/funksteckdosen-steuern/</guid><description>&lt;p&gt;Ich habe mir schon vor geraumer Zeit kleine 433MHz Sender- und Empfänger-Module bestellt, mit dem Ziel, meine kaputte Funksteckdosenfernbedienung zu ersetzen. Nun habe ich die Module wiederentdeckt und mich an einen neuen Versuch gewagt. Ich muss sagen ich war sehr überrascht, dass alles auf Anhieb funktioniert hat.&lt;br&gt;
Das von mir verwendetet Funkmodul trägt den Namen &lt;strong&gt;XD-FST&lt;/strong&gt; und ist besonders günstig. Auf dieser Seite sind die wenigen zu bekommenden Informationen zusammengengefasst:&lt;/p&gt;</description></item><item><title>Arduino als ISP Programmer</title><link>https://neu.fkainka.de/arduino-als-isp-programmer/</link><pubDate>Sat, 15 Mar 2014 12:19:09 +0100</pubDate><guid>https://neu.fkainka.de/arduino-als-isp-programmer/</guid><description>&lt;p&gt;Zurzeit spiele ich mit dem &lt;a href="http://arduino.cc/en/Main/ArduinoBoardEthernet"&gt;Arduino Ethernet Board&lt;/a&gt; rum. Dieses Board ist kein Shield, welches man auf einen anderen Arduino aufsteckt, sondern ein eigenständiges Board mit Controller, ähnlich dem Arduino Uno. Nachteil: Es gibt keinen integrierten USB-Controller, mit dem man das Board direkt über USB programmieren kann. Deswegen habe ich einen Arduino Uno als Programmer benutzt.&lt;/p&gt;
&lt;p&gt;Um einen Arduino als ISP-Progammer einsetzen zu können, sind nur wenige Schritte nötig:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Zuallererst mussder Arduino Uno mit dem ISP-Programm bespielt werden. Das Programm findet in unter den Beispielen.&lt;/li&gt;
&lt;li&gt;Nun kann man das Ethernet Board wie auf dem Bild gezeigt mit dem Arduino Uno verbinden:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/EthernetIPS31.jpg"&gt;&lt;img alt="EthernetIPS3" loading="lazy" src="http://wp.fkainka.de/wp-content/uploads/2015/01/EthernetIPS31-213x300.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Die automatisierte Küchenbeleuchtung</title><link>https://neu.fkainka.de/die-automatisierte-kuechenbeleuchtung/</link><pubDate>Sat, 11 Jan 2014 12:10:20 +0100</pubDate><guid>https://neu.fkainka.de/die-automatisierte-kuechenbeleuchtung/</guid><description>&lt;p&gt;Vor geraumer Zeit habe ich ja bereits meine automatisierte Küchenleuchte vorgestellt (&lt;a href="http://wp.fkainka.de/bewegungsmelder-fuer-die-kueche/" title="Bewegungsmelder für die Küche"&gt;Link&lt;/a&gt;). Diese war auch lange Zeit in Benutzung, aber nun war es doch an der Zeit, einen Mikrocontroller den Job übernehmen zu lassen. Der Grund ist vor allem, dass es leichter ist das Programm seinen Wünschen anzupassen. Insgesamt habe ich nämlich vor, die Automatisierung immer weiter zu verbessern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die derzeitige Konfiguration sieht so aus:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Die Hauptsteuereinheit ist hier ein Arduino Uno. Dieser steuert via PWM vier der &lt;a href="http://wp.fkainka.de/power-led-mini-shield/" title="RGB Strip Mini Shield"&gt;hier vorgestellten&lt;/a&gt; Power-MOSFETs an. An diese habe ich ein RGB-Stripe und eine &lt;a href="http://wp.fkainka.de/10-w-powerleds/" title="10-W-PowerLEDs"&gt;Power-LED&lt;/a&gt; angeschlossen. Als Auslöser dient folgendes Bewegungsmelder-Modul:&lt;/p&gt;</description></item><item><title>RGB Strip Mini Shield</title><link>https://neu.fkainka.de/power-led-mini-shield/</link><pubDate>Fri, 03 Jan 2014 11:47:01 +0100</pubDate><guid>https://neu.fkainka.de/power-led-mini-shield/</guid><description>&lt;p&gt;&lt;strong&gt;ACHTUNG&lt;/strong&gt;: Bei diesem Projekt ist leider ein Arduino Uno über den Jordan gegangen. Am Ende des Artikels steht mehr dazu, also vor dem Nachbau bitte lesen!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Viele werden das Problem mit Arduino kennen:  die Leistung an den Pins reicht einfach nicht aus um damit größere Lasten zu steuern. Bei mir ist das Problem aufgetreten, als ich meine Power-LED-Lampen und meine RGB-Stripes mit einem Arduino Uno steuern wollte. Die 40 mA und 5 V pro Pin reichen nicht mal annähernd um diese Dinge vernünftig ansteuern zu können. Die Lösung ist bekannt:  Leistungstreiber.&lt;/p&gt;</description></item><item><title>Die Arduino IR-Library</title><link>https://neu.fkainka.de/die-arduino-ir-library/</link><pubDate>Fri, 27 Dec 2013 12:31:57 +0100</pubDate><guid>https://neu.fkainka.de/die-arduino-ir-library/</guid><description>&lt;p&gt;Ich habe nach einer möglichst einfachen Art gesucht, Infrarot Fernbedienungen auszulesen. Wie für Arduino üblich habe ich auch nach kurzer Zeit eine passende Library gefunden:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html"&gt;http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Auf der Seite von Ken Shirriff kann man sich die Dateien runterladen, inlusive einiger Beispiele. Besonders geeignet: IRrecDemo um damit Signale direkt auszulesen oder IRrecDump um auch Informationen über das verwendete Protokoll zu bekommen. Alles was man dafür benötigt ist ein IR-Empfangs-Modul. Die Ausgabe erfolgt über das Terminal.&lt;/p&gt;</description></item><item><title>Befehlsliste Arduino</title><link>https://neu.fkainka.de/befehlsliste-arduino/</link><pubDate>Mon, 25 Nov 2013 12:36:49 +0100</pubDate><guid>https://neu.fkainka.de/befehlsliste-arduino/</guid><description>&lt;p&gt;Oft ist es so, dass man plötzlich vergisst, wie man jetzt gerade in dieser Programmiersprache einen Bestimmten Befehl formulieren muss. Deswegen steht hier eine Auflistung der wichtigsten Befehle. Benutzen Sie &lt;strong&gt;Stg+F um in der Seite nach etwas bestimmten zu suchen&lt;/strong&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Schreibweise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Grundlegendes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grundstruktur&lt;/td&gt;
&lt;td&gt;&lt;em&gt;void setup() {   }&lt;strong&gt;void loop()  {&lt;/strong&gt;}&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variable deklarieren (Typ Integer, Wert = 0)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int led  = 0;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Konstante deklarieren (Typ Integer, Wert = A0)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;const int analogInPin = A0;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Array deklarieren (Typ Integer, 6 Werte)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int Arrayname[6] = {2, 4, -8, 3, 2};&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin-Funktion festlegen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;pinMode(led, OUTPUT);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Library einbinden&lt;/td&gt;
&lt;td&gt;&lt;em&gt;#include &amp;lt;libX.h&amp;gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ausgaben/Eigaben&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin auf HIGH schalten&lt;/td&gt;
&lt;td&gt;&lt;em&gt;digitalWrite(led,HIGH);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWM-Pin auf maximal Wert setzen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;analogWrite(led, 255);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Digitalen Zustand von Pin &lt;em&gt;schalter&lt;/em&gt; lesen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;digitalRead(schalter)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Analog Pin A0 auslesen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;analogRead(A0)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ton Ausgabe an Pin8, Frequenz x, länge y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;tone(8, x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ton Ausgabe an Pin8 stoppen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;noTone(8)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Serielle Schnittstelle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serielle Schnittstelle initialisieren&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.begin(9600);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text seriell Ausgeben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.print(“Hallo”);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text seriell Ausgeben + neue Zeile&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.println(“Hallo”);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Byte seriell Ausgeben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.write(val)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Anzahl von auslesbaren Bytes&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.available()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: seriell Einlesen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.read();&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Text im Buffer finden (true/false)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.find(&amp;ldquo;TEXT&amp;rdquo;)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Text i. Buffer finden bis Endetext&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.findUntil(“TEXT“,“ENDE TEXT“)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speichert Anzahl Bytes in Buffer&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.readBytes(buffer, length)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speichert Bytes in Buffern bis lenght oder Ende-chracter erreicht&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.readBytesUntil(character, buffer, length)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Findet nächste Integerzahl&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.parseInt()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prozedur aufgerufen wenn Daten vorhanden&lt;/td&gt;
&lt;td&gt;&lt;em&gt;void serialEvent()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A****bfragen/Schleifen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;If-Abfrage mit Else&lt;/td&gt;
&lt;td&gt;*if (button == HIGH){**}*&lt;em&gt;else{   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switch-Abfrage&lt;/td&gt;
&lt;td&gt;*switch (x) {**case 1:**case 2:*&lt;em&gt;default:&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wartezeit (500 ms)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;delay(500);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;For-Schleife&lt;/td&gt;
&lt;td&gt;&lt;em&gt;for (x = 2; x &amp;lt; 7; x++) {      }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;While-Schleife&lt;/td&gt;
&lt;td&gt;*while (schalter== HIGH) {**}***ODER:**&lt;em&gt;do{&lt;/em&gt;} while (schalter==HIGH);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schleife vorzeitig verlassen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;break;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Überspringt ausführbaren Quelltext in Schleife&lt;/td&gt;
&lt;td&gt;&lt;em&gt;continue;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mathematisches&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sinus, Cosinus, Tangens&lt;/td&gt;
&lt;td&gt;&lt;em&gt;sin(),cos(),tan()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wurzel aus X&lt;/td&gt;
&lt;td&gt;sqrt(x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X hoch Y : xy&lt;/td&gt;
&lt;td&gt;&lt;em&gt;pow(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Absolut Wert einer Zahl (Betrag von x)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;abs(x)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zufällige Zahl&lt;/td&gt;
&lt;td&gt;&lt;em&gt;random()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vergleiche&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;==&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ungleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;!=&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;größer, kleiner&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;lt;, &amp;gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Größer oder gleich, kleiner oder gleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;lt;= , &amp;gt;=&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: kleinere Zahl von x und y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;min(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: größere Zahl von x und y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;max(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Boolsche Operatoren&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Und&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;amp;&amp;amp;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oder&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nicht&lt;/td&gt;
&lt;td&gt;&lt;em&gt;!&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Datentypen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Boolean; char; unsigned char; byte; int; unsigned int; word; long; unsigned long; short; float; double; string; String;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Datentypkonvertierungen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;char(); byte(); int(); word(); long(); float()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interrupts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupts verbieten&lt;/td&gt;
&lt;td&gt;&lt;em&gt;noInterrupts()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupts erlauben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;nterrupts()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupt an Pin mit Funktion verknüpfen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;attachInterrupt(interrupt, function, mode)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupt Verbindung aufheben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;detachInterrupt(interrupt)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sonstiges&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kommentar eine Zeile&lt;/td&gt;
&lt;td&gt;&lt;em&gt;//&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kommentar längerer Bereich&lt;/td&gt;
&lt;td&gt;/*                &lt;em&gt;*/&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Array definieren&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Wertebereich transformieren (z.B. 10bit Sensor auf 8bit PWM)&lt;/td&gt;
&lt;td&gt;map(sensorWert, 0, 1024, 0, 255);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion Wertgrenzen bestimmen(alles darüber/darunter wird abgeschnitten)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;constrain(sensorWert, 0, 255);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bein Funktionen: Wert zurückgeben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;return x;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zum Sprungpunk &lt;em&gt;hier&lt;/em&gt; springen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;goto hier;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prozedur&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Void Prozedurname() {   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion mit Integer-Rückgabewert und Byte-Parameter&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int Funktionsname (byte Parameter) {&lt;strong&gt;return 13;&lt;/strong&gt;}&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Eine komplette Befehlsliste auf Englisch und mit erweiterten Erklärungen finden Sie auch unter &lt;a href="http://arduino.cc/en/Reference/HomePage"&gt;http://arduino.cc/en/Reference/HomePage&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Die neue Steckboardplatine als Arduino Shield</title><link>https://neu.fkainka.de/die-neue-steckboardplatine-als-arduino-shield-2/</link><pubDate>Fri, 08 Nov 2013 21:10:32 +0100</pubDate><guid>https://neu.fkainka.de/die-neue-steckboardplatine-als-arduino-shield-2/</guid><description>&lt;p&gt;&lt;a href="http://www.ak-modul-bus.de/stat/steckboardplatine.html"&gt;Modul Bus hat eine neue Platine rausgebracht, die einem Steckboard nachempfunden ist&lt;/a&gt;. Dadurch ist es noch einfacher, seine Prototypen auf eine dauerhafte Platine zu übertragen. Ich hab ein bisschen mit der Platine rumgespielt und bemerkt, dass man daraus auch schnell mal ein Arduino-Shield basteln kann.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu.fkainka.de/images/2015/01/Steckpl1.jpg"&gt;&lt;img alt="Steckpl1" loading="lazy" src="https://neu.fkainka.de/images/2015/01/Steckpl1.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Im Grund ist der Aufbau sehr einfach. Die beiden LEDs sorgen dafür, dass das Board genügend Abstand zum Arduino hat und nicht so hin und her wackelt. Zusätzliche Stabilität verleiht der Stecker in der Mitte des Boards. Er wird einfach auf die beiden äußeren Kontakte des ISP-Steckers gesteckt. Damit liegt die Platine solide auf und verrutsch nicht. Man könnte auch an dem einen Pin des ISP-Steckers die 5-V-Versorgungsspannung der Controller abgreifen, hierbei ist aber Vorsicht geboten. Die beiden Drähte legen die Versorgungsleitungen +5V und GND auf die beiden äußeren Leitungsbahnen, sodass der Zugriff dauerhaft erleichtert wird.&lt;/p&gt;</description></item><item><title>Strommessen an der Solaranlage</title><link>https://neu.fkainka.de/strommessen-der-solaranlage/</link><pubDate>Mon, 22 Jul 2013 12:22:14 +0200</pubDate><guid>https://neu.fkainka.de/strommessen-der-solaranlage/</guid><description>&lt;p&gt;Eine Solaranlage an meinem Fenster sorgt dafür, dass ein Bleiakku immer geladen wird. Allerdings fehlte mir eine Übersicht über den aktuellen Ladestrom. Jedes Mal ein Messgerät in Reihe zu schalten ist mir zu aufwändig, also habe ich nach einer anderen Lösung gesucht.&lt;/p&gt;
&lt;p&gt;Der einfachste Weg den aktuellen Strom zu ermitteln ist in der Regel die Spannung an einen bekannten Widerstand zu messen und daraus den Strom zu berechnen. Ein solcher Widerstand sollte wärmeresistent und recht klein sein, um Verluste gering zu halten. Dafür gibt es spezielle Widerstände, die für Strommessungen entwickelt wurden.&lt;/p&gt;</description></item><item><title>Blitzduino - Blitzwarner</title><link>https://neu.fkainka.de/blitzduino-blitzwarner/</link><pubDate>Fri, 21 Jun 2013 12:31:09 +0200</pubDate><guid>https://neu.fkainka.de/blitzduino-blitzwarner/</guid><description>&lt;p&gt;Bei der ersten Version des Blitzwarners habe ich einen Arduino-Uno benutzt – das Programm und das Shield sollten aber auf jedem Board funktionieren.&lt;/p&gt;
&lt;p&gt;Dieses Shield ist gleichzeitig Empfänger und Anzeige. Sollte sich das Gewitter noch in großer Entfernung befinden, blinkt die weiße LED selten, da nur nicht alle Entladungen empfangen werden. Je näher das Gewitter kommt, desto häufiger blinkt auch die weiße LED, bis schließlich die erste Warnstufe erreicht ist, die durch die grüne LED angezeigt wird. Sollten sich die gemessenen Blitze noch weiter häufen, zeigt die rote LED die erhöhte Warnstufe an.&lt;/p&gt;</description></item><item><title>Schnellstart Arduino Leonardo</title><link>https://neu.fkainka.de/schnellstart-arduino-leonardo/</link><pubDate>Fri, 21 Dec 2012 13:04:24 +0100</pubDate><guid>https://neu.fkainka.de/schnellstart-arduino-leonardo/</guid><description>&lt;p&gt;Jeder der sich, auch wenn vielleicht nur oberflächlich, mit der Mikrokontroller -Programmierung befasst, wird einem Schlagwort nicht mehr ausweichen können: Arduino. Die Frage ob der Hype um dieses System wirklich berechtigt ist steht natürlich im Raum. Für ausgefuchste Programmierer ist dies vielleicht nicht mehr als ein lustiges Spielzeug. Für den Ottonormal-Menschen aber eine Möglichkeit auch große Projekte auf schnellem Wege zu realisieren. Man kann sicher Tage damit verbringen die vielen ausgefallenen und spannenden Projekte im Internet zu erforschen und kommt auch nicht drum herum sich selbst so seine Gedanken zu machen. Deshalb soll es an dieser Stelle mal einen kleinen Einstieg für diejenigen unter Ihnen geben, die sich noch nicht so intensiv mit der Mikrocontroller Programmierung befasst haben.&lt;/p&gt;</description></item></channel></rss>