5 december 2011: In een wanhopige daad om een prachtige surprise voor m'n moeder te maken, heb ik bij toeval een simpele, maar goed werkende standalone RSS notifier ontwikkeld.
Benodigheden:
-Arduino
-Ethernetshield voor Arduino
-Internetserver met php
-RSS feed (bijv. van social media)
-speakertje
Overview
Het systeem werkt als volgt: Een RSS feed wordt geupdated; via php is deze rssfeed uit te lezen. De output van het phpscript genereert slechts één ding: de datum van de meest recente feed. De arduino geconfigureerd als internetclient leest ca elke 5 seconden het phpscript, en vergelijkt steeds de ontvangen datum met de ontvangen datum van de check daarvoor. Als er een verschil is, wordt de nieuwe datum opgeslagen en een geluidssignaal gegeven. Dit geluidssignaal wordt gegeven via een speakertje verbonden met digital pin 2.
php code:
$xml = simplexml_load_file('URLVANFEED');
echo $xml->channel->item[0]->pubDate;
arduino code:
#include <Tone.h>; #include <SPI.h> #include <Ethernet.h> Tone tone1; String output; String newest; // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,39 }; byte gateway[] = { 192,168,1,254 }; byte subnet[] = { 255,255,255,0 }; byte client023_server[] = { 123,456,78,90 }; // The ip of the server/domain // Initialize the Ethernet client library // with the IP address and port of the server // that you want to connect to (port 80 is default for HTTP): Client client(client023_server, 80); void setup() { // start the Ethernet connection: Ethernet.begin(mac, ip, gateway); // give the Ethernet shield a second to initialize: delay(1000); tone1.begin(2); //initialize tone at digital pin 2 tone1.play(NOTE_CS4); //play fancy startup tones delay(150); tone1.play(NOTE_AS4); delay(150); tone1.stop(); } void loop() { if (client.connect()) { // Make a HTTP request: client.println("GET /RSSREADSCRIPT.php"); //url php script after the domain client.println(" HTTP/1.1"); client.println("Host: RSSread"); client.println("User-Agent: MyArduino"); delay(2000); } // if there are incoming bytes available // from the server, read them and print them: if (client.available()) { char c = client.read(); output=output+c; } // if the server's disconnected, stop the client: if (!client.connected()) { client.stop(); if (newest==output) //NO NEW POST { output=""; } else //NEW POST { newest=output; //RESET DATE output=""; tone1.play(NOTE_CS4); //PLAY SOUND delay(150); tone1.play(NOTE_FS4); delay(150); tone1.play(NOTE_AS4); delay(150); tone1.play(NOTE_CS5); delay(250); tone1.stop(); delay(50); tone1.play(NOTE_AS4); delay(150); tone1.play(NOTE_CS5); delay(800); tone1.stop(); } } }
Met droefheid deel ik u allen mede dat op dinsdag 11 oktober jongstleden ons verlaten heeft:
Volkswagen Transporter (Wit)
Beginnend aan een tweede leven in Roemenië, heeft ze na bijna 10 jaar trouwe dienst een compleet gezin immobiel achtergelaten.
Dankbaar voor alle mooie en spannende momenten, mogen we nog vaak terug denken aan haar amicale, natuurlijke en bovenal pure rij-ervaring. Een collage.
De laatste tijd ben ik vaak te vinden in m’n ‘homestudio’; hier experimenteer ik met nieuwe gitaargeluiden en een mix van vele geluidseffecten. Resultaten zijn op deze site te vinden: