Gebruik van twitter en weer om te posten van notities en temperatuur aan office deur


Synopsis
========
Het doel van dit project is om een Twitter-account te verzenden
toelichting op de deur van uw kantoor, die is uitgerust met een 20 x 4 LCD
(weergeven). Dit project vormt in principe een implementatie van
het idee besproken in dit artikel IEEE Spectrum:
http://spectrum.IEEE.org/Geek-Life/hands-on/Send-a-tweet-to-your-Office-door
Als toebehoren toont het ook de huidige temperatuur (Lees in
uit weather.gov) op een bepaalde locatie. De implementatie is gebaseerd op
de combinatie van een Arduino Uno-board met een Arduino Ethernet
Schild. De totale kosten is ongeveer $120. Er wordt van uitgegaan dat u
zijn vertrouwd met Arduino tools.

Hardware en software
=====================

Hardware
--------
$45.95 - Arduino Ethernet Shield: http://www.sparkfun.com/products/9026
$29.95 - Arduino Uno: http://www.sparkfun.com/products/9950
$14.95 - 20 x 4 LCD wit op blauw: http://www.hacktronics.com/LCDs/20-x-4-LCD-White-on-Blue/flypage.tpl.html (kon krijgen van de sparkfun.com te minimaliseren verzendkosten vergelijkbaar)
$11,95 - Arduino Project behuizing: http://www.sparkfun.com/products/10088 (host voor zowel de Raad van bestuur en het schild)
$3.95 - USB-kabel A naar B - 6 voet: http://www.sparkfun.com/products/512 (optioneel; u moet al een hebt)
$2.99 - 9 6FT dirigent 24 AWG strandde afgeschermd: http://www.frys.com/product/3550794?site=sr:SEARCH:MAIN_RSLT_PG (om hook-up de LCD display aan de Raad)
$2.99 - 3 FT CAT6 patchkabel: http://www.frys.com/product/5979924?site=sr:SEARCH:MAIN_RSLT_PG (om hook-up het bord naar uw Internet-router)
$1.90 - 6 pin rechte hoek vrouwelijke Header: http://www.sparkfun.com/products/9429 (twee van hen, voor aansluiting van de LCD)
$1.90 - vak van het project: http://www.futurlec.com/ProjectBoxes.shtml (voor weergave)
--------------
$116.53 - TOTAAL

Software
--------
--Arduino sketch: opgenomen aan het einde van dit instructable. De schets
moet worden gewijzigd om te voldoen aan uw individuele specificaties. Het bevat
opmerkingen met een beschrijving van elke wijziging en hoe het kan worden gedaan.
--U zult moeten compileren en laden de schets op het bord met Arduino tools: http://arduino.cc/en/Main/Software
Om te kunnen om het te compileren moet u ook de volgende bibliotheken voor uw Arduino tools:
--Arduino EthernetDHCP: http://gkaindl.com/software/arduino-ethernet/dhcp
--Tekst Finder bibliotheek: http://www.arduino.cc/playground/Code/TextFinder

Arduino schets: bzdoor2lcd.pde
------------------------------

Get "geselecteerd" laatste tweet van Twitter-account "BZDoor" en weer te geven op de
LCD vertoning, die ik op de deur van mijn kantoor vast heb. Door geselecteerd ik bedoel dat tweets
begin met de toets "BZD" alleen. Ik gebruik de Twitter-account om notities posten op mijn
deur van de Office over kantooruren, wordt uit voor koffie, etc. :-)
//
Het circuit:
LCD 1,3,5,16 aan digitale pin van de Arduino GND pinnen
LCD pin 2 naar digitale pin van de Arduino + 5V
LCD pin 15 via weerstand 330 Ohm digitale pin van de Arduino + 5V
LCD pin 14 tot en met Arduino digitale pin 2
LCD pin 13 tot en met Arduino digitale pin 3
LCD pin 12 aan Arduino digitale pin 4
LCD pin 11 tot en met Arduino digitale pin 5
LCD pin 4 tot en met Arduino digitale pin 9
LCD pin 6 tot en met Arduino digitale pin 8

#include < SPI.h >
#include < Ethernet.h >
#include < EthernetDHCP.h >
#include < TextFinder.h >
#include < LiquidCrystal.h >

LiquidCrystal lcd (9, 8, 5, 4, 3, 2);

byte mac [] = {0x90, 0xA2, 0xDA, 0x00, 0x4F, 0x8A};
byte ip [] = {192,168,1,177};
byte server [] = {199,59,148,10}; Twitter.com
byte server_weather [] {140,90,113,200} =; Weather.gov

#define NUM_CHAR_USERNAME 7 / / "BZDoor:" is gebruikersnaam met 6 tekens +:
#define TWEET_OFFSET NUM_CHAR_USERNAME + 5 / / nuttige info van tweet moet worden weergegeven, verschijnt na "BZDoor: BZD"
char tweet [NUM_CHAR_USERNAME + 140]; 147 = "BZDoor:" + 140 voor werkelijke tweet
char [old_tweet] = {"BZDoor: BZD geen updates. Een prettige dag! Huidige temperaturen: nb Cris "};
char temperatuur [8];

Cliënt (server, 80);
TextFinder finder(client);
Client client_weather (server_weather, 80);
TextFinder finder_weather(client_weather);

VOID Setup
{
LCD.begin(4,20);
LCD.Clear();
LCD.Print("BZDoor2LCD");
Serial.begin(9600);
Serial.println("BZDoor2LCD");
Ethernet.begin (mac, ip);
}

void loop
{
(1) Controleer of nieuwe tweet aanwezig in BZDoor account is;
check_for_new_valid_tweet();
(2) het selectievakje voor temperatuur; ook weergeven handtekening;
check_for_new_temperature();
(3) opruimen;
client.stop();
client.Flush();
client_weather.stop();
client_weather.Flush();
(4) ook duidelijk de opslagarray "tweet"; anders als laatste tweet is korter
dan de vorige, zal restanten van de vorige deel uitmaken van de laatste;
for (int i = 0; ik < NUM_CHAR_USERNAME + 140; i ++) tweet [i] = ' ';
(5) vertraging 2 minuten voordat de volgende update;
delay(120000);
}

ongeldig check_for_new_valid_tweet() {}
belast met het 1ste en 2de rijen van 4 x 20 LCD;
verbinden met Twitter (RSS van gebruiker BZDoor: 316663659) en krijg de laatste tweet;
deze controle zal gebeuren elke andere 2 minuten, dus als meer tweets zijn geboekt
zijn geboekt binnen deze 2 minuten die alleen de laatste tweet worden verwerkt;
Als (client.connect()) {}
client.println ("GET http://www.twitter.com/statuses/user_timeline/316663659.rss HTTP/1.0"); BZDoor;
client.println();
} else {}
lcd.setCursor(0,0); LCD.Print ("Twitter connectie");
lcd.setCursor(0,1); LCD.Print ("mislukt!");
Serial.println ("Twitter connection failed.");
}
Als (client.connected()) {}
de laatste tweet in BZDoor de rekening krijgen door simpelweg het ontleden van het item en titel tags;
Als ((finder.find ("< opdracht >") & & (finder.getString ("< title >", "</title >", tweet, 140)! = 0))) {}
alleen tweets die beginnen met de drie tekens "BZD" wordt weergegeven
op de LCD display op de deur van het kantoor; alle anderen zal alleen op worden afgedrukt
van de Arduino seriële monitor
Serial.println(Tweet);
een gewone tweet in de BZDoor-account is altijd in een van twee formaten:
1) "BZDoor: dit is een Hallo wereld! Tweet! ", die niet wordt weergegeven op de LCD;
2) "BZDoor: BZD wat update", die wordt weergegeven op de LCD omdat begint met sleutel BZD;
Als (tweet [8] == "B" & & tweet [9] == 'Z' & & tweet [10] == had') {}
Dit is een tweet dat een uit BZDoor update moet worden weergegeven op de deur van het kantoor;
display_tweet(Tweet);
ook deze nieuwste twit te kopiëren naar old_tweet array;
strncpy (old_tweet, tweet, 80 + TWEET_OFFSET);
} else {}
display_tweet(old_tweet); eerst dit zegt geen nieuwe updates;
}
} else {}
lcd.setCursor(0,0); LCD.Print kan ("niet vinden item');
lcd.setCursor(0,1); LCD.Print ("veld in laatste twit");
Serial.println kan ("veld niet vinden item in laatste twit");
}
} else {}
lcd.setCursor(0,0); LCD.Print ("verbroken van");
lcd.setCursor(0,1); LCD.Print ("twitter");
Serial.println ("verbroken van twitter");
}
}

VOID display_tweet (char msg[]) {}
slechts 40 tekens weergegeven op de eerste twee rijen van de
20 x 4 LCD-display; de derde en vierde rij worden gebruikt voor
weergave van temperatuur en handtekening;
LCD.Clear();
tweet de eerste 40 tekens; weergeven
lcd.setCursor(0,0);
for (int i = TWEET_OFFSET; ik < TWEET_OFFSET + 20; i ++) {}
Als (msg [i]! = 0) lcd.print(msg[i]);
anders lcd.print(' ');
}
lcd.setCursor(0,1);
for (int i = TWEET_OFFSET + 20; ik < TWEET_OFFSET + 40; i ++) {}
Als (msg [i]! = 0) lcd.print(msg[i]);
anders lcd.print(' ');
}
ook afdrukken op seriële monitor;
char buffer_row [20];
strncpy (buffer_row, msg + TWEET_OFFSET, 20); buffer_row [20] = '\0';
Serial.println(buffer_row);
strncpy (buffer_row, msg, TWEET_OFFSET + 20, 20); buffer_row [20] = '\0';
Serial.println(buffer_row);
}

ongeldig check_for_new_temperature() {}
belast met het 3e en 4e rijen van 4 x 20 LCD;
verbinden met www.weather.gov en temperatuur voor Fargo Luchthaven;
Als (client_weather.connect()) {}
client_weather.println ("GET /xml/current_obs/KFAR.xml HTTP/1.0");
client_weather.println();
} else {}
lcd.setCursor(0,2); LCD.Print ("weer connectie");
lcd.setCursor(0,3); LCD.Print ("mislukt!");
Serial.println ("weer verbinding mislukt.");
}
Als (client_weather.connected()) {}
Als ((finder_weather.getString ("< temp_f >","</temp_f >", temperatuur, 8)! = 0)) {}
lcd.setCursor(0,2);
LCD.Print ("huidige temp:"); LCD.Print(Temperature); LCD.Print ("F");
lcd.setCursor(0,3); LCD.Print ("Cris");
ook afdrukken op seriële monitor
Serial.println ("huidige temp:"); Serial.println(Temperature); Serial.println ("F");
Serial.println ("Cris");
} else {}
lcd.setCursor(0,2); LCD.Print ("huidige temperaturen: NA");
lcd.setCursor(0,3); LCD.Print ("Cris");
Serial.println kon niet ("vinden temp_f in weer stroom");
}
} else {}
lcd.setCursor(0,2); LCD.Print ("huidige temperaturen: NA");
lcd.setCursor(0,3); LCD.Print ("Cris");
Serial.println ("verbroken van weer");
}
}

Gerelateerde Artikelen

Configureren van de MIG 7 serie IP-voor het gebruik van de DDR-geheugen aan boord van de Digilent Nexys 4

Configureren van de MIG 7 serie IP-voor het gebruik van de DDR-geheugen aan boord van de Digilent Nexys 4

Deze tutorial is het tweede deel van een driedelige serie die zich bezighoudt met het opzetten van de MIG IP geboden door Xilinx te gebruiken van de DDR-geheugen aan boord van de Nexys4 Raad van bestuur en het met de AXI TFT-IP interface om de VGA-po
Van Arduino en perfboard aan PCB met standalone MCU

Van Arduino en perfboard aan PCB met standalone MCU

Dit Instructable is een directe opvolger van deze. Aan het eind van deze opbouw, mijn draaitafel PROJECT bijna voltooid is (eindelijk).Het doel is het ontwikkelen van een goed kijken en werken PCB met SMD elektronische met een werkende ATtiny85 + sof
10 stappen om uw eigen logo in Inkscape (gratis) en het gebruik van creatieve Market voor dummies mij

10 stappen om uw eigen logo in Inkscape (gratis) en het gebruik van creatieve Market voor dummies mij

HalloSorry voor de lange titel. Ik heb ook een paar bekentenissen. Ten eerste, mijn tekenen en ontwerpen vaardigheden zijn niet zelfs equivalent van een vinger-schilder. Ten tweede, ik niet het maken van geld, dus ik heb altijd dingen die kunnen word
Gebruik van keuken- en etensresten biogasinstallatie

Gebruik van keuken- en etensresten biogasinstallatie

Lang terug heb ik gepost een instructable op hoe de bouw van de prototype van een biogasinstallatie, met behulp van tank van 50 liter capaciteit als digester, die u hier kunt zien:Dat was mijn eerste instructable mensen zijn nog steeds commentaar en
IoT Jar kroonluchter, fysieke Gmail Twitter Facebook & weer Notifier

IoT Jar kroonluchter, fysieke Gmail Twitter Facebook & weer Notifier

Dit is mijn tweede instrueren over kroonluchter, die ik zeer favoriete en wilde het meer en meer om perfect te maken.Ik ben een full time werken met computers, maar ik heb niet veel tijd om te controleren op nieuwe berichten van sociale netwerken zoa
Het gebruik van IRC (Internet Relay Chat)

Het gebruik van IRC (Internet Relay Chat)

[bewerken] Dit is een Instructable bedoeld als een starter voor degenen die nog niet Internet Relay Chat of IRC begrijpen. Dit project is niet bedoeld ter dekking van het volledige bereik van IRC en mogelijkheden van elke individuele klant, maar is g
Het gebruik van Snapchat effectief

Het gebruik van Snapchat effectief

Dit Instructable leert u hoe te het effectief gebruik van snapchat. Met snapchat is een van de meest gebruikte sociale media vandaag, eigenschappen van deze app maakt het soort moeilijk te gebruiken.Stap 1: Download de appDe eerste stap op het effect
Het gebruik van een LED-Array Module

Het gebruik van een LED-Array Module

met een enkele LED kun je de staat van iets: in- of uitschakelen. Dat zou een beetje saai. Met een array van LEDs kunt u tekens of zelfs sommige eenvoudige hoekig afbeeldingen weergeven. Dat zou een beetje pizzaz toevoegen aan een kleine microcontrol
Het gebruik van de aankomende wachtrij op Neatorama.com

Het gebruik van de aankomende wachtrij op Neatorama.com

In dit instructable zal ik schetsen de stappen aan de slag met behulp van de aankomende wachtrij samen met enkele veel voorkomende fouten die uw post te houden van het bereiken van de voorpagina.Als u niet zeker bent wat ik over spreek, en meer wilt
Project Snooze: HOW TO BUILD een eenvoudig BED SWING gebruik van TERUGGEWONNEN hout.

Project Snooze: HOW TO BUILD een eenvoudig BED SWING gebruik van TERUGGEWONNEN hout.

Dit is mijn eerste Bed Swing te bouwen en ik veel geleerd van het en dus kan je.Een verschil maken in deze wereld bij het kiezen van de manier om dingen te doen als het gaat om bouwen. We kunnen kiezen uit te gewoon kopen alle nieuwe materialen voor
Het gebruik van de Instructables Editor

Het gebruik van de Instructables Editor

In onze voortdurende inspanningen om de Instructables editor gemakkelijk te gebruiken, hebben we een nieuwe ronde van updates. Hier is een kort en krachtig voor het gebruik van de editor van start tot finish.Stap 1: Start een nieuwe Instructable Om t
3DOF bal over het gebruik van de plaat gesloten lus stappenmotoren

3DOF bal over het gebruik van de plaat gesloten lus stappenmotoren

De bal op plaat probleem bestaat uit een vlakke plaat waaraan een bal moet worden geplaatst. Bal positionering wordt alleen bereikt door unstable evenwicht waar elke kleine veranderingen in de hoek van de plaat in de continue versnelling van de bal r
Het gebruik van de Instructables IRC Chatroom!

Het gebruik van de Instructables IRC Chatroom!

Vóór de implementatie van de Meebo Chatroom, die de meesten van u zijn, of van gehoord, Instructables had een IRC chatroom.De kamer meebo heeft ons goede diensten bewezen, maar het is beperkt, heeft vele gebreken en venen neer meeste gemiddelde compu
Gebruik van een Xbox 360-Controller als een muis

Gebruik van een Xbox 360-Controller als een muis

kocht ik in eerste instantie een Xbox 360-controller te gebruiken met emulators. Ik heb ontdekt dat niet alleen worden uitgevoerd met de taak van het nabootsen van een SNES-controller bewonderenswaardig, maar met een gratis programma u het in plaats