Paso 1: Concepto: Arduino {procesamiento / Python} Twitter
La idea general: tienes una LED genera una luz tranquila, a través de un montón de colores y mientras tanto has conseguido procesamiento o Python escuchando Twitter por cualquier mención de cuando encuentra un estado de Twitter con él escribe a Arduino en serie y Arduino cambia el LED de resplandor tranquilo a alerta.
La placa de circuito (paso 6) tiene dos botones: reinicio y enviar. El botón cambia el LED de "alerta" a "resplandor tranquilo." El botón Enviar envía una actualización de estado de Twitter a la capa de procesamiento o Python y de allí en hasta Twitter. Al pulsar el botón de enviar, mantenga pulsado hasta que aparezca el flash de luz blanca (aprox. 1 segundo.) Esto confirma que el empuje del botón ha sido leído por Arduino.
Existe cierta confusión acerca De Twitter limites de velocidad . El límite de velocidad es el número de veces que Twitter te permitirá golpea sus servidores por hora, actualmente 350 golpes por hora. Pasar de ese número y Twitter te bloqueará. Hice la misma disposición para esto tanto en procesamiento como en Python: esperar 15 segundos entre golpes. En el proceso, en void draw() , ver delay(15000); . En Python, en la cláusula mientras , ver time.sleep(15). Esto no afecta el tiempo de llamadas Serial o cualquier botón de empujar.
El código de Arduino es el mismo para el procesamiento y Python excepto cuando escucha Arduino Serial. Procesamiento y Python pasa un valor entero de 1 (arduino.write(1) ) pero Arduino recibe un valor diferente (numérico / ascii) de cada uno, es por eso que verás estas dos líneas en el código de Arduino:
Si (serialMsg == 1) estado = "mención"; procesamiento de
Si (serialMsg == 49) estado = "mención"; Python
Esto es porque no sé cómo pasar un valor de cadena de "mencionar " en serie en Python. No es crítica, por lo que voy a dejar trabajar como arriba, pero si alguien tiene una solución para el envío de una cadena (arduino.write("mention") ), particularmente en Python, por favor lo publique en los comentarios.
El centro de este proyecto es la función de getMentions() . Es interesante comparar cómo se ven en el proceso y en Python.
Procesamiento (java)
buscar cualquier mención de
void getMention() {}
Menciones de la lista = null;
trate de {}
menciona = twitter.getMentions();
}
catch (TwitterException e) {}
println ("excepción:" + e + "; statusCode: "+ e.getStatusCode());
}
Estado = (Status)mentions.get(0);
Cadena de newID = str(status.getId());
Si (oldID.equals(newID) == false) {}
oldID = newID;
println(status.gettext() + ", por
Arduino.Write(1); Arduino es 1
}
}
# Python
# busca cualquier mención de
DEF getMention():
Estado = api. GetReplies()
newID = str(status[0].id)
oldID global
Si (newID! = oldID):
oldID = newID
imprimir estatus [0] .text + ", por
Arduino.Write(1) # arduino obtiene 49
En ambos casos el valor de id recibido es en formato "largo". Mediante la conversión de "tiempo" en "cadena" con str() somos capaces de comparar el valor y actuar en él. Tenía problemas para hacerlo en formato largo.