SmartBox drivs av BeagleBone (5 / 7 steg)
Steg 5: programvara
1) visning tweets hämtas enligt hashtags anges av användaren förväg.
2) meddela användaren om det finns en ny e-post i deras gmail-inkorg och Visa föremål på skärmen
3) Visa tid på skärmen om användaren trycker på knappen på frontpanelen
Jag skrev alla koder i java. För att hämta tweets använde jag Twitter4j API. Och ansluta till gmail, används Java Mail API. Tidsinformation hämtas också från internet. Relaterade paket och min källa koden bifogas nedan. Alla dessa koder är skrivna för beaglebone sida. Jag skrev alla java-kod i Eclipse i min dator, då jag överfört kompilerade java klassas till min beaglebone som att skriva java koder direkt i beaglebone konsolen är mycket svårt och irriterande jobb.
Det finns en sak till att överföra programmet till det, Arduino. Arduino ansvarar lyssnande seriell port för kommandona Visa tweets, gmail anmälningar och aktuell tid. Om det blir något kommando från Beaglebone via serieport, visar det mottagna information på panelen rullning. Du kan också ändra vilken information du vill se genom att trycka på knappen på frontpanelen. Arduino även koder för teckenuppsättningar, och koden för rörledningar tecken i två SKIFT register som är anslutna till matrisskrivare paneler.
Jag möter många olika frågor som jag utvecklar koden för min arduino och beaglebone. Första frågan var att Arduino hade inte tillräckligt med minne i SRAM att lagra alla tecken anges. Jag löste problemet genom att lagra teckenuppsättning i flash-minnet genom att använda PROGMEM identifierare i Arduino. Kan vara triviala men det tog mina dagar att identifiera problemet :) det var första gången för mig att nå gränsen för Arduino (:
Andra problem är mer hög nivå problem jämfört med en jag möter i Arduino. Hur vet man att BeagleBone vilka hashtags den bör använda? Först installerade jag en server med hjälp av python som presenterar användaren textbox och vill komma in en hashtag. Men vi behöver veta IP nummer för beaglebone att nå beaglebone som kan vara problematiskt om IP inte är statisk. Sen hittade jag en annan lösning, med gratis webservices på nätet, som ger användare grundläggande API för att skicka in och begära information på deras server. GUBB.net är en av dem. De ger dig en API-nyckel och använder detta API-nyckel kan du lagra listan som strukturell information på deras server. SmartBox användare kan skicka in önskad hashtags på den sidan, då BeagleBone kommer att hämta hashtag data med hjälp av API-nyckel.
För att kommunicera med Arduino, måste BeagleBone skicka seriella kommandon. Bryta ut stiften på BeagleBone kan användas för olika utlovat. Om du vill använda dem som seriell port, måste du ange MUX inställningar innan handen. Här är kort handledning om hur man gör det: http://www.gigamegablog.com/2012/01/22/beaglebone-coding-101-using-the-serial-and-analog-pins/
Och den sista delen ansluter BeagleBone till internet. Det finns många möjligheter att göra det: du kan antingen använda LAN-kabel eller trådlöst modem. Eller finns det ännu mer elegant lösning som använder 3G-modem. Jag använder 3G-modem för att ansluta internet så jag inte behöver ansluta SmartBox till några tjocka LAN-kabel och jag behöver inte heller Skapa trådlöst nätverk. Med 3G kan modem i din beaglebone inte vara en trivial jobb men fortsätter att försöka :) och fråga mig om du behöver hjälp :)