Twitter aktiverad Text till tal (3 / 5 steg)

Steg 3: Ta emot Tweets från Twitter



The Arduino Ethernet Shield kan du begära data från internet och tolka det med Arduino. Om du aldrig har använt Arduino Ethernet Shield innan eller vill lära dig mer om hur det fungerar, rekommenderar jag att läsa Randofo's Ethernet Shield handledning. Den följande kodsnutt läser inkommande meddelanden från en twitter feed, kontroller för att se om tweet är nya (olika från senaste tweet sparas i den Arduino minne), och om det är nya, skickar tweet till TTS256/SpeakJet.

SpeakJet och TTS256 med Twitter
Amanda Ghassaei 2012

delar av denna kod är hämtade från följande två bitar av kod:

TTS256 Speakjet gränssnitt Chip Demo skiss
Skrivet av Ryan Owens
SparkFun elektronik

/*
Twitter-klient med strängar

Denna skiss ansluter till Twitter med hjälp av en Ethernet shield. Analyserar det XML
återvänt, och ser detta är en tweet för < text > < / text >

skapad 21 maj 2011
av Tom Igoe

Denna kod är i public domain.
*/

inkludera bibliotek för ethernet-anslutning
#include < SPI.h >
#include < Ethernet.h >

ställa in en SoftwareSerial port för Speakjet sköld
#include < SoftwareSerial.h >
#define txPin 2
SoftwareSerial speakjet = SoftwareSerial (0, txPin);

#define RDY 5
#define SPK 3

Ange en MAC-adress och IP-adressen för din controller nedan.
IP-adressen kommer att bero på ditt lokala nätverk:
byte [mac] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x01};
IP-adress ip(192,168,22,112); <<< Ange din IP-adress här!!!

initiera bibliotek instans:
EthernetClient klient;

CONST int requestInterval = 10000; fördröjning mellan begäranden 10000ms = 10 SEK

char servernamn [] = "api.twitter.com"; Twitter URL
String twitterName = "GET /1/statuses/user_timeline.xml?screen_name=instructables & count = 1 HTTP/1.1";//"GET /1/statuses/user_timeline.xml?screen_name=[YOUR här} & count = 1 HTTP/1.1";

Boolean efterfrågades; Om du har gjort en begäran sedan ansluter
lång lastAttemptTime = 0; förra gången du ansluten till servern, i millisekunder

String currentLine = ""; sträng till texten från servern
Sträng tweet = ""; sträng att hålla tweet
String prevTweet = ""; lagring för föregående tweet-jämför om senaste tweet är olika
booleska readingTweet = false; Om du läser för närvarande tweet

void setup() {

initiera den seriell kommunikationen med SpeakJet-TTS256
pinMode (txPin, produktionen);
speakjet.BEGIN(9600); / / set datahastigheten för SoftwareSerial port

PIN-kod som låter oss veta att SpeakJet är upptagen pratar
pinMode (SPK, indata);

Konfigurera redo PIN-koden som en input-lets oss vet SpeakJet är redo för mer data
pinMode (RDY, indata);

speakjet.println ("speakjet är redo"); speakjet berättar att det är gjort inträffade
fördröjning (2000), //let speakjet finish talar

boka plats för strängarna:
currentLine.reserve(256);
Tweet.Reserve(150);

initiera följetong:
Serial.BEGIN(9600);
försök en DHCP-anslutning:
IF (!. Ethernet.BEGIN(Mac)) {
om DHCP misslyckas, börja med en hårdkodad adress:
Ethernet.BEGIN (mac, ip);
}
ansluta till Twitter:
initialConnectToServer();

}

void loop() {
getTwitterData();
}

void getTwitterData() {

om (client.connected()) {
om (client.available()) {
Läs inkommande byte:
char inChar = client.read();

Lägg till inkommande byte till slutet av raden:
currentLine += inChar;

Om du får en ny rad, avmarkera raden:
om (inChar == "\n") {
currentLine = "";
}
om den aktuella raden avslutas med < text >, kommer det att
följas av tweet:
om (currentLine.endsWith ("< text >")) {
tweet börjar. Rensa tweet strängen:
readingTweet = sant;
Tweet = "";
}
Om du läser för närvarande byten i en tweet,
lägga till dem i tweet sträng:
om (readingTweet) {
om (inChar! = ' <') {
om (inChar! = ' >') {
Tweet += inChar;
}
}
annat {
Om du fick en "<" karaktär,
du har kommit till slutet av tweet:
readingTweet = false;

Kontrollera om tweet är nya
om (tweet! = prevTweet) {
speakjet.println(tweet);
prevTweet = tweet;
}

stänga anslutningen till servern:
client.stop();
}
}
}
}
annars om (millis() - lastAttemptTime > requestInterval) {
Om du inte är ansluten, och två minuter har gått sedan
din sista anslutning, sedan försök att ansluta igen:
connectToServer();
}
}

void connectToServer() {
försök att ansluta, och vänta en millisekund:
Serial.println ("ansluter till server...");
om (client.connect (servernamn, 80)) {
Serial.println ("att göra HTTP-begäran...");
göra HTTP GET begära Twitter:
client.println(twitterName);
client.println ("HOST: api.twitter.com");
client.println();
}
Obs tiden för detta Anslut försök:
lastAttemptTime = millis();
}

void initialConnectToServer() {
försök att ansluta, och vänta en millisekund:
speakjet.println ("ansluter till server");
Delay(1000);
om (client.connect (servernamn, 80)) {
speakjet.println ("connected, att göra Rumpsteken tee tee pee request");//speakjet.println ("anslutna, göra HTTP request...")
Delay(4000);
göra HTTP GET begära Twitter:
client.println(twitterName);
client.println ("HOST: api.twitter.com");
client.println();
speakjet.println ("klar för tweets"), //initialization fungerade, redo för tweets
}
annat {
speakjet.println kunde ("inte ansluta");
Delay(1000);
}
Obs tiden för detta Anslut försök:
lastAttemptTime = millis();
}

Installationen av maskinvara har ändrats något från det sista steget att göra plats för Ethernet-shield anslutningar. En full Schematisk ges i figur 2. De nya pin-anslutningarna är följande:

Digital Pin 2 ansluten till pin 18 0f TTS256
Digital Pin 3 ansluten till pin 16 av SpeakJet
Digital Pin 5 ansluten till pin 17 av SpeakJet

Dessa Stifttilldelningar kan ändras genom att redigera följande rader av firmware:

#define txPin 2
#define RDY 5
#define SPK 3

Det finns två linjer som du vill ändra för att anpassa denna Twitter setup. Först är IP-adressrad:

IP-adress ip(192,168,22,112); <<< Ange din IP-adress här!!!

Du måste ta reda på din IP-adress och sätter dessa siffrorna inom parentes i stället för vad jag skrivit. Den andra raden ändra är adressraden Twitter-flöde:

String twitterName = "GET /1/statuses/user_timeline.xml?screen_name=instructables & count = 1 HTTP/1.1";

Som det är skrivet här, denna firmware kommer att alltid titta på instructables foder, så ändrar du det till ett annat foder detta format:

"GET /1/statuses/user_timeline.xml?screen_name=[YOUR TWITTER namn här} & count = 1 HTTP/1.1"

När du laddar upp den fasta programvaran du hör SpeakJet säga "Ready" och sedan "SpeakJet är redo" när det är gjort inträffade. Om detta händer då vet du din hårdvara anslutningar till SpeakJet är bra. Sedan hör du SpeakJet säger "ansluter till server" om det står "kunde inte ansluta" då din ethernet shield är att ha problem med att ansluta till internet. Kontrollera att du har rätt IP-adress i firmware. Om allt är ok, du kommer att höra "ansluten, att göra HTTP-begäran" och "redo för tweets" när initiering av ethernet-anslutningen är klar. Sedan kommer SpeakJet Läs av senaste tweet från din twitter feed val. Arduinoen kommer hålla ansluta till Twitter var 10 sekunder att kontrollera om Twitter-flöde har uppdaterats och det kommer att läsa alla nya tweets högt.

Se Steg
Relaterade Ämnen

Text till tal kommandoprogrammet

som jag lovade tidigare, jag har gjort detta instructable. Detta är del av en uppsättning instructables jag gör som fokuserar kring en av de ursprungliga funktionerna i min Mega_Menu V 2.4 kommandofil. Jag har en annan, tidigare gjort instructable på...

Text till tal med VBS

Hej killar och ännu en gång Välkommen till min instructable. Idag ska jag visa dig hur man gör en verkligen lätt att använda text till tal-program. Låter komma igång :DSteg 1: Steg 1: öppna Notepad och klistra in koden Öppet anteckningsblock och klis...

Linkit en Text till tal

Även om tekniken förbättras varje dag, så vi alla kan bero på talsyntes på våra smarta telefon, som speciellt under körning (GPS System). Men hur vore det om du kan göra den Linkit en talar, låter cool rätt. I detta instructable jag ska visa dig hur...

Hur konvertera universitetet i phoenix online E-böcker Text till tal

Detta instructable kommer att visa dig hur man konvertera texten i din university of phoenix online E-böcker till talVad du behöverUniversity of Phoenix Online E-bokEn PDF läsa program som Adobe AcrobatEn Text till tal-program(Jag behövde inte en men...

Text till tal med linux.

Någonsin velat få datorn att prata. Detta kan vara riktigt viktiga i en nödsituation om du inte kan prata. Det är så lätt att göra detta.Uppdatering: Lagt till ett avsnitt för att läsa en textfil.Obs: Det finns en gui för festivalen, men jag har inte...

Text till tal MegaFon

detta är det enklaste sättet jag har hittat för att göra en effektiv talsyntes MegaFon för en vän som är döv. Orsak, du vet, det gör dem ännu mer rad.Det är inte ett särskilt tillfredsställande eller pedagogiska bygga projekt, och det kräver att du k...

Hur man gör ett Text till tal-System

Detta är ett mycket enkelt projekt är det också kortSteg 1: Vad du behöverdu behöver en anständig kod redigeringsprogramför detta använder jag notepad ++Steg 2: KodenDetta är all kod du behöver dess mycket kortDim meddelande, sapimeddelande = InputBo...

Text till tal i VB.NET

Steg 1: Gör en ny WindowsFormApplication gör ett nytt projekt och kalla den vad du vill.Steg 2: Lägga till en textruta och en knapp Hålla textrutan tom. Ändra texten i knappen till "Say The Text".Steg 3: kod dubbelklicka på knappen. placera kode...

Gör din egen text till tal-Program!

Detta lär du dig att koda en fil så att det står vad du skriver!Steg 1: Koden 1: gör en ny fil i anteckningar2: klistra in kod3: spara som "Talk.bat"Kod:utanförCON cols = 55 rader = 10titeln talarfärg A: stECHO Skriv vad du vill att programmet s...

Konvertera text till ljud anteckningar

denna instuctable visar dig hur du konverterar text till ljud anteckningarSteg 1: Steg 1: öppna Notepad gå till start-menyn och öppna notepadSteg 2: Steg 2: kopiera och klistra in koden nedan Dim msg, sapiMSG = InputBox ("Ange din text för omvandling...

Automatisk Braille: Engelsk text till punktskrift mekanism

Detta projekt utförs av en grupp studenter från Singapore Polytechnic, skola av el och elektronik Engineering. Vi har totalt 5 medlemmar i vår grupp, Siti "Frida Bte Mohd Raba'i, Nurridzuan Bin Supardi, Chen system, Toh Lee Ting och Yang Shi Xiang. V...

Arduino Text till Morse code

Hej!Detta är min första instractableJag har skrivit ett litet program i Arduino att konvertera text till morsekod och Visa den med hjälp av lettSummern kan också läggas ganska lätt...

Hur till tala fikonspråk

denna tutorial lär du dig att tala och skriva i den gamla koden, fikonspråk. Njut!Steg 1: material: • Papper• Penna• En vän att träna medSteg 2: Att välja ett ord jag valde ordet, hund. I fikonspråk, skulle hund vara ogday. Låt mig berätta du hur til...

Hur till tala till någon som använder Ham Radio

Amatörradio är cool, men det kan vara mycket nervslitande för att prata med någon som använder den. Prata med någon som använder amatörradio är känd som en "QSO" eller en "kontakt". Även om det kan verka riktigt skrämmande i början, du...

Chay' tlhingan jatlh (hur till tala Klingon)

jag inte bara jävlas med dig. Jag har enkla ramar som jag kan lära dig.Steg 1: artiklarA = jiHJag = "ejden = pa "sedan = vajVarför = toHNär = ghorghSteg 2: Meningar (enkel) Tommy såg en röd buss = tommy legh lupwl' petaQJag åt äpple ='epll nahHn...

RabbitPi - Alexa aktiverad IFTTT ansluten, örat-vickar IoT assistent

Detta är en föråldrad 2005 Nabaztag "smart kanin" som jag har byggts om till en modern IoT assistent med en Raspberry Pi 3 och en Adafruit Motor hatt, med en webbkamera mikrofon och en Philips Soundshooter högtalare som finns i det söta ursprung...

RabbitPi - den Alexa aktiverad IFTTT ansluten, örat-vickar IoT assistenten

detta är en föråldrad 2005 Nabaztag "smart kanin" som jag har byggts om till en modern IoT assistent med hjälp av en Raspberry Pi 3 och en Adafruit Motor hatt, med en webbkamera mikrofon och en Philips Soundshooter högtalare som finns i det söta...

Android kontrollerade Robot för nybörjare (A till Z)

Gillar du robotar? Är du ny i robotteknik? Har du tänker bygga en Robot från grunden? Om ja, är detta instructables för dig. I detta instructables jag visar dig hur du kan bygga en robot från början, jag också visa dig hur du kan kontrollera du robot...

Använda den MaKey MaKey för att göra DIY hjälpmedel för tillgång till dator

i detta Instructable kommer vi att titta på hur man använder en innovativ produkt som kallas den MaKey MaKey för att skapa anpassade, låg kostnad, DIY dator tillgång gränssnitt för användare med funktionshinder.Vad är en dator tillgång gränssnitt?En...