Étape 1: Concept : Arduino {traitement / Python} Twitter
L’idée générale : vous avez une LED générant une lueur paisible, vélo à travers un bouquet de couleurs et Pendant ce temps vous avez eu traitement ou Python écoute de Twitter pour n’importe quelle mention de lorsqu’il détecte un statut Twitter avec elle écrit à Arduino au fil de la série et Arduino modifie la LED de lueur paisible pour alerte.
Le circuit imprimé (étape 6) comporte deux boutons : réinitialisation et envoyer. Le bouton reset modifie la LED de « alert » retour à la « lueur paisible. » Le bouton d’envoi envoie une mise à jour du statut de Twitter à votre couche de traitement ou de Python et de là jusqu'à Twitter. Lorsque vous appuyez sur le bouton envoyer, maintenez-le enfoncé jusqu'à ce que vous voyiez le flash de lumière blanche (environ 1 seconde.) Cela confirme que la poussée de bouton a été lu par Arduino.
Il y a une certaine confusion sur Les limites de fréquence Twitter . La limite de fréquence est le nombre de fois que Twitter vous permettra de frapper ses serveurs par heure, actuellement 350 visites par heure. Passer ce nombre et Twitter vous bloquera. J’ai fait la même disposition pour cela en traitement et en Python : attendre 15 secondes entre les visites. Dans le traitement, en void draw() , voir delay(15000); . En Python, dans la clause while , voir time.sleep(15). Cela n’affecte pas le moment de n’importe quel bouton pousser ou appels séries.
Le code de l’Arduino est la même pour traitement et Python sauf quand Arduino écoute de la série. Traitement et Python passe une valeur entière de 1 (arduino.write(1) ) mais Arduino reçoit une valeur différente (numérique / ascii) de chacun, c’est pourquoi vous verrez ces deux lignes dans le code de l’Arduino :
Si (serialMsg == 1) Etat = « mention » ; traitement
Si (serialMsg == 49) Etat = « mention » ; python
C’est parce que je ne sais pas comment passer une valeur de chaîne de "parler " au fil de la série en Python. Il n’est pas critique, donc je vais laisser travailler comme ci-dessus, mais si quelqu'un a une solution pour l’envoi d’une chaîne (arduino.write("mention") ), en particulier en Python, s’il vous plaît poster dans les commentaires ci-dessous.
Le centre de ce projet est la fonction getMentions() . Il est intéressant de comparer leur apparence en traitement et en Python.
Traitement (java)
recherche de n’importe quelle mention de
void getMention() {}
La liste des mentions = null ;
try {}
mentionne = twitter.getMentions() ;
}
{} catch (TwitterException e)
println ("Exception:" + e + «; » statusCode: "+ e.getStatusCode()) ;
}
Statut = (Status)mentions.get(0) ;
Chaîne de newID = str(status.getId()) ;
Si (oldID.equals(newID) == false) {}
oldID = newID ;
println(Status.GetText() + ", par
Arduino.Write(1) ; Arduino gagne 1
}
}
# Python
# Recherchez n’importe quelle mention de
def getMention() :
statut = api. GetReplies()
newID = str(status[0].id)
oldID global
Si (newID! = oldID) :
oldID = newID
imprimer le statut [0] .text + ", par
Arduino.Write(1) # arduino obtient 49
Dans les deux cas, la valeur de l’id reçue est au format « long ». En convertissant de « long » à « string » avec str(), nous sommes en mesure de comparer la valeur et agir sur elle. J’ai eu du mal à faire cela en format long.