Arduino baserade twitter feed armband (1 / 2 steg)
Steg 1: Att göra basen
Basen är den enklaste delen att bygga, men var en smärta tråd...
Du kanske märker att jag har använt en bas för NRF24L01 i bilden, detta användes för att öka stabiliteten i styrelsen. De är mycket känsliga för liten spänning variationer, detta var bara en försiktighetsåtgärd läggs under ett test.
För att tråd NRF24L01 till YUN måste du göra använda av tre ICSP manliga stift visas i diagrammet, använda NRF24L01 pin digram och tabellen nedan tråd :)
NRF24L01: Fungera: YUN Pin
1: GND: GND
2: VCC: 3.5v
3: CE: D9
4: CSN: D10
5: SCK: SCK
6: MOSI: MOSI
7: MISO: MISO
8: IRQ:
Nedan hittar du koden som används för sändaren. Det finns tre filer som behövs, när du har genererat arduino .ino filen, lokalisera det och spara de andra i samma mapp.
Arduino kod ***
#include
#include
#include
#include
#include
#include
#include "TembooAccount.h" / / innehåller information om Temboo
/ *** ERSÄTTA DIN NEDANSTÅENDE VÄRDEN: *** /
Observera att för extra säkerhet och återanvändbarhet, du kunde
använda #define uttalanden för att ange dessa värden i en .h fil.
const String TWITTER_ACCESS_TOKEN = "Infoga din Token";
const String TWITTER_ACCESS_TOKEN_SECRET = "Infoga din Token";
const String TWITTER_API_KEY = "Infoga din Token";
const String TWITTER_API_SECRET = "Infoga din Token";
int numRuns = 1; utförande räkna, så detta inte köra för evigt
int maxRuns = 10; max antal gånger Twitter HomeTimeline koreografiska ska köras
int msg [1].
RF24 radio(9,10);
String theMessage = "";
char incomingByte = 0;
CONST uint64_t pipe = 0xE8E8F0F0E1LL;
void setup() {
Serial.BEGIN(9600);
För felsökning, vänta tills en seriekonsoll är ansluten.
Delay(4000);
tag (!. Seriell);
Bridge.BEGIN();
radio.BEGIN();
radio.openWritingPipe(pipe);
}
void loop()
{
medan vi inte har nått max antal körningar...
om (numRuns < = maxRuns) {
Serial.println ("Kör ReadATweet - kör #" + String(numRuns++));
TembooChoreo HomeTimelineChoreo;
anropa Temboo klienten.
Observera att klienten måste vara reinvoked, och nyinsatta med
lämpliga argument, varje tid kallas dess run()-metoden.
HomeTimelineChoreo.begin();
Ange Temboo kontoautentiseringsuppgifter
HomeTimelineChoreo.setAccountName(TEMBOO_ACCOUNT);
HomeTimelineChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
HomeTimelineChoreo.setAppKey(TEMBOO_APP_KEY);
berätta Temboo klienten vilka koreografiska att köra (Twitter > tidslinjer > HomeTimeline)
HomeTimelineChoreo.setChoreo("/Library/Twitter/Timelines/HomeTimeline");
Ange insatsvarorna som krävs koreografiska
se https://www.temboo.com/library/Library/Twitter/Ti...
för fullständig information om ingångar för denna koreografiska
HomeTimelineChoreo.addInput ("räkna", "1"); max antal Tweets att återvända från varje begäran
HomeTimelineChoreo.addInput ("AccessToken", TWITTER_ACCESS_TOKEN);
HomeTimelineChoreo.addInput ("AccessTokenSecret", TWITTER_ACCESS_TOKEN_SECRET);
HomeTimelineChoreo.addInput ("ConsumerKey", TWITTER_API_KEY);
HomeTimelineChoreo.addInput ("ConsumerSecret", TWITTER_API_SECRET);
Nästa, vi ska definiera två utdatafilter som låt oss ange den
delar av svaret från Twitter som vi vill ta emot.
se exempel på http://www.temboo.com/arduino
för mer information om hur du använder filter för utgående trafik
Vi vill ha texten till tweet
HomeTimelineChoreo.addOutputFilter ("tweet", "/ [1] / text", "Svar");
och namnet på författaren
HomeTimelineChoreo.addOutputFilter ("författare", "/ [1] / user/screen_name", "Svar");
tala om processen för att köra och vänta på resultaten. Den
returnera koden berättar om Temboo klienten
kunde skicka vår begäran till Temboo servrar
unsigned int returkod = HomeTimelineChoreo.run();
en svarskod 0 betyder framgång; skrivas ut API
IF(returnCode == 0) {
String författare; en sträng att hålla tweet författarens namn
Sträng tweet; en sträng att hålla texten till tweet
koreografiska utgångar returneras som nyckel/värde-par, avgränsade med
newlines och post/fältet terminator tecken, till exempel:
Name1\n\x1F
Value1\n\x1E
Name2\n\x1F
Value2\n\x1E
se exempel på http://www.temboo.com/arduino för mer information
Vi kan läsa det formatet i separata variabler, enligt följande:
While(HomeTimelineChoreo.available()) {
läsa namnet på artikeln som produktionen
String namn = HomeTimelineChoreo.readStringUntil('\x1F');
Name.trim();
Läs värdet av den produktion
Sträng data = HomeTimelineChoreo.readStringUntil('\x1E');
data.trim();
tilldela lämpliga strängen värdet
om (namn == "tweet") {
Tweet = data;
} else om (namn == "författare") {
författare = data;
}
}
Serial.println ("+ författare +"-"+ tweet);
Sträng steve = ("+ författare +"-"+ tweet);
int meddelandestorlek = steve.length();
för (int jag = 0; jag < meddelandestorlek; i ++) {
int charToSend [1].
charToSend [0] = steve.charAt(i);
radio.write(charToSend,1);
}
MSG [0] = 2;
radio.write(MSG,1);
} annat {
ett fel uppstod
skriva ut det som raw från koreografiska
While(HomeTimelineChoreo.available()) {
char c = HomeTimelineChoreo.read();
Serial.Print(c);
}
}
HomeTimelineChoreo.close();
}
Serial.println("Waiting...");
Delay(90000); vänta 90 sekunder mellan HomeTimeline samtal
}
RF24_config.h***
/*
Copyright (C) 2011 J. Coliz
Detta program är fri programvara; Du kan vidaredistribuera det och/eller
ändra den enligt villkoren i GNU General Public License
version 2 som offentliggörs av Free Software Foundation.
*/
#ifndef __RF24_CONFIG_H__
#define __RF24_CONFIG_H__
#if ARDUINO < 100
#include
#else
#include
#endif
#include
Saker som normalt tillhandahålls av Arduino
#ifdef ARDUINO
#include
#else
#include
#include
#include
extern HardwareSPI SPI;
#define _BV(x) (1 << (x))
#endif
#undef SERIAL_DEBUG
#ifdef SERIAL_DEBUG
#define IF_SERIAL_DEBUG(x) ({x ;})
#else
#define IF_SERIAL_DEBUG(x)
#endif
Undvika falska varningar
#if 1
#if! definierade (inbyggt) & & definieras (ARDUINO)
#undef PROGMEM
#define PROGMEM __attribute__ ((section(".progmem.data")))
#undef PSTR
#define PSTR(s) (__extension__ ({statisk const char __c [] PROGMEM = (s); & __c [0] ;}))
#endif
#endif
Progmem är specifikt för Arduino
#ifdef ARDUINO
#include
#define PRIPSTR "%S"
#else
TypeDef char const char;
TypeDef uint16_t prog_uint16_t;
#define PSTR(x) (x)
#define printf_P printf
#define strlen_P strlen
#define PROGMEM
#define pgm_read_word(p) (*(p))
#define PRIPSTR "%s"
#endif
#endif / / __RF24_CONFIG_H__
vim: ai: cin:sts = 2 sw = 2 ft = cpp
TembooAccount.h***
#define TEMBOO_ACCOUNT "" / / din Temboo kontonamn
#define TEMBOO_APP_KEY_NAME "" / / appen Temboo nyckel namn
#define TEMBOO_APP_KEY "" / / din Temboo app keyblink
****
När alla koden läses in, ansluta arduino YUN till en strömkälla och internet, öppna seriell bildskärmen, ge det en stund för att ansluta och topp tweet från valda foder ska visas.