Twitter Watcher, the #twatch (4 / 6 steg)
Steg 4: Firmware
TCP/IP stack och base nätfunktioner
Mikrochips "fria" TCP/IP stack tillhandahåller nätfunktioner vi behöver finns i ett hemnätverk och ta data från Twitter. Stacken är open source och free-som-i-öl, men mikrochip licensen förbjuder distribution. På grund av licensproblem, vi bara sätta vår public domain källkod i projektet Google kod SVN, lära sig att hämta och sammanställa källan här.
Stacken har en Dynamic Host Configuration Protocol klient som automatiskt konfigurerar nätverksinställningar med hjälp av DHCP-servern i det lokala nätverket. #twatch kräver en DHCP-server, men de allra flesta av nätverk och routrar har detta aktiverat. Den IP-adress, mask, gateway och första DNS-servern visas på LCD-skärmen tills giltiga Twitter data är tillgängliga.
Stacken har även mikrochips meddela server. När IP-adressen är uppköpta av DHCP, meddelar #twatch dess IP-adress med en broadcast-paket till alla datorer i det lokala nätverket. Använd verktyget MCHPDetect.exe i projektet arkivet för att visa dessa paket.
Slutligen har vi inkluderat en ping (IMCP)-server. Använd ping klienter för att kontrollera om #twatch lefver i nätverket.
Twitter TCP client
Twitter trend efter programmet är en enkel TCP client, liknar en webbläsare, som hämtar data från webbservrar. Twitter API ger oss data i olika format. Vi använde lätt JSON-formatet eftersom det är lättast för lågenergi-PIC chip att avkoda, kolla in JSONView om du använder Firefox.
Efter #twatch automatiskt konfigurerar nätverksinställningar, Twitter TCP klienten tar kontroll och tar tag i den aktuella trender ämnen. Den söker igenom denna JSON datafeed och ser för "namn" tag. Upp till 10 trender ämnen kopieras till en 225 byte buffert. En separat array lagrar slutposition för varje ämne i bufferten så vi kan hämta ämnena i nästa steg.
Nästa, den #twatch sökningar Twitter för 2 tweets för varje ämne. Det lägger varje ämne i slutet av Twitter JSON Sök url, speciella tecken som blanksteg och skiljetecken är URL-kodade.
TCP klienten tolkar genom sökresultaten och söker tweets som följer taggen "text". Tweets har flera lager av kodning. Vi avkodar HTML reserverade tecken som et-tecken (&) och citationstecken (") Eftersom LCD-skärmen kan visa dem. Vi tar bort UTF8 internationella tecken eftersom LCD HD44780 inte har dem i sin teckenuppsättning.
Analyserad, avkodade tweets lagras i en buffert av 2100 byte, en ytterligare array markerar början och slutet av varje tweet i bufferten. RAM-minne utrymme var ett stort problem på 18F67J60 chip, den har bara om 4000bytes totala, men 2100 byte bufferten verkar stor nog att hantera 20 medelstor tweets. Vi tog särskild omsorg att skydda mot ur minnesproblem, och vi testade klienten reducerade RAM villkor att se till att det misslyckas graciöst under fel.
Twitter är väl känt för sin tillfälliga stillestånd. Om #twatch inte kan ansluta till Twitter, visas ett meddelande om anslutning och försök två gånger. Om det inte kan ansluta efter tre försök, väntar det fem minuter innan du försöker igen. Detta ger Twitter en chans att fixa sina problem utan att Klubbad av #twatch frågor.
#twatch tar tag i färsk trend och tweet fodrar var femte minut. Twitter sätter en gräns på antalet frågor en klient kan göra, så var försiktig om hur du uppdaterar oftare. Twitter gör 150 trend ämne uppdateringar per timme och "betydligt mer" sökfrågor.
LCD ryggsäck läge TCP nätverksserver
#twatch kan också visa information om systemstatus från program som LCD Smartie. #twatch har en TCP-server på port 1337 som accepterar Matrix Orbital formaterade kommandon. Detta ger också kontroll över LCD bakgrundsbelysning. Vi ska visa dig hur du omdirigerar LCD Smartie från en COM-port till #twatch TCP server i del två av vår #twatch artikel.