Étape 1: Faire la base
La base est la partie la plus facile à construire, mais a été une douleur au fil...
Vous remarquerez peut-être que j’ai utilisé une base pour la NRF24L01 sur la photo, cela a été utilisé pour augmenter la stabilité du Conseil d’administration. Ils sont très sensibles aux variations de tension faible, c’est juste une précaution ajoutée lors d’un essai.
Pour connecter le NRF24L01 à la YUN, il faut faire usage de trois des broches mâles ICSP indiquées sur le schéma, utilisez le digramme de goupille de NRF24L01 et le tableau ci-dessous au fil:)
NRF24L01 : Fonction : YUN Pin
1: GND : GND
2: SCR: 3.5V
3: CE: D9
4: CSN : D10
5: SCK : SCK
6: MOSI : MOSI
7: MISO : MISO
8: IRQ :
Veuillez trouver ci-dessous le code utilisé pour l’émetteur. Il y a trois fichiers nécessaires, une fois que vous avez généré le fichier de .ino arduino, localisez-le et sauver les autres dans le même dossier.
Arduino Code ***
#include
#include
#include
#include
#include
#include
#include « TembooAccount.h » / / contient les informations de compte Temboo
/ *** REMPLACER VOS VALEURS CI-DESSOUS: *** /
Notez que pour une sécurité supplémentaire et la réutilisabilité, vous pourriez
Utilisez les instructions #define pour spécifier ces valeurs dans un fichier .h.
const String TWITTER_ACCESS_TOKEN = « Insérez votre Token » ;
const String TWITTER_ACCESS_TOKEN_SECRET = « Insérez votre Token » ;
const String TWITTER_API_KEY = « Insérez votre Token » ;
const String TWITTER_API_SECRET = « Insérez votre Token » ;
int numRuns = 1 ; comte d’exécution, donc cela ne fonctionne pas pour toujours
int maxRuns = 10 ; le nombre maximum de fois que la HomeTimeline Choreo Twitter devrait fonctionner
int msg [1] ;
RF24 radio(9,10) ;
String dumessage = "" ;
char incomingByte = 0 ;
const uint64_t tuyau = 0xE8E8F0F0E1LL ;
void setup() {}
Serial.Begin(9600) ;
Pour le débogage, attendre une console série est connectée.
Delay(4000) ;
while (!. Série) ;
Bridge.Begin() ;
radio.Begin() ;
radio.openWritingPipe(pipe) ;
}
void loop()
{
alors que nous n’avons pas atteint le nombre maximum de pistes...
Si (numRuns < = maxRuns) {}
Serial.println (« Running ReadATweet - # exécution » + String(numRuns++)) ;
TembooChoreo HomeTimelineChoreo ;
invoquer le client Temboo.
Notez que le client doit être reviennent et repeuplé par
les arguments appropriés, chaque fois que sa méthode run() est appelée.
HomeTimelineChoreo.begin() ;
définir les informations d’identification du compte Temboo
HomeTimelineChoreo.setAccountName(TEMBOO_ACCOUNT) ;
HomeTimelineChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME) ;
HomeTimelineChoreo.setAppKey(TEMBOO_APP_KEY) ;
dire au client de Temboo quel Choreo à courir (Twitter > calendriers > HomeTimeline)
HomeTimelineChoreo.setChoreo("/Library/Twitter/Timelines/HomeTimeline") ;
définir les intrants requis choreo
Voir https://www.temboo.com/library/Library/Twitter/Ti...
Pour plus de détails sur les intrants pour cette Choreo
HomeTimelineChoreo.addInput ("Count", « 1 ») ; le nombre maximum de Tweets à retourner à partir de chaque demande
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) ;
Ensuite, nous allons définir deux filtres de sortie qui nous permettent de spécifier la
éléments de la réponse de Twitter que nous voulons recevoir.
Voir les exemples à http://www.temboo.com/arduino
Pour plus d’informations sur l’utilisation de filtres de sortie
Nous voulons que le texte du tweet
HomeTimelineChoreo.addOutputFilter (« tweet », "/ [1] / text", « Réponse ») ;
et le nom de l’auteur
HomeTimelineChoreo.addOutputFilter (« author », "/ [1] / utilisateur/screen_name", « Réponse ») ;
dire le processus de courir et d’attendre les résultats. Le
renvoyer le code nous dira si le client Temboo
a été en mesure d’envoyer notre demande aux serveurs Temboo
unsigned int returnCode = HomeTimelineChoreo.run() ;
un code de réponse de 0 signifie succès ; imprimer la réponse de l’API
if(returnCode == 0) {}
Auteur de chaîne ; une chaîne contenant le nom de l’auteur du tweet
Tweet de chaîne ; une chaîne contenant le texte du tweet
Choreo sorties sont retournés sous forme de paires clé/valeur, délimitées par des
sauts de ligne et enregistrement/champ terminator caractères, par exemple :
Name1\n\x1F
Value1\n\x1E
Name2\n\x1F
Value2\n\x1E
Voir les exemples à http://www.temboo.com/arduino pour plus de détails
Nous pouvons lire ce format en variables distinctes, comme suit :
{while(HomeTimelineChoreo.available())}
lire le nom de l’élément de sortie
String nom = HomeTimelineChoreo.readStringUntil('\x1F') ;
Name.Trim() ;
lire la valeur de l’élément de sortie
Chaîne de données = HomeTimelineChoreo.readStringUntil('\x1E') ;
Data.Trim() ;
assignez la valeur à la chaîne appropriée
Si (nom == « tweet ») {}
Tweet = données ;
} ElseIf (nom == « auteur ») {}
auteur = données ;
}
}
Serial.println ("+ auteur + «-» + tweet) ;
Chaîne de steve = ("+ auteur + « - » + tweet) ;
int messageSize = steve.length() ;
pour (int i = 0; i < messageSize; i ++) {}
int charToSend [1] ;
charToSend [0] = steve.charAt(i) ;
radio.Write(charToSend,1) ;
}
msg [0] = 2 ;
radio.Write(MSG,1) ;
} else {}
Il y a une erreur
imprimer la sortie brute de la choreo
{while(HomeTimelineChoreo.available())}
char c = HomeTimelineChoreo.read() ;
Serial.Print(c) ;
}
}
HomeTimelineChoreo.close() ;
}
Serial.println("Waiting...") ;
Delay(90000) ; attendre 90 secondes entre les appels HomeTimeline
}
RF24_config.h***
/*
Copyright (C) 2011 J. Coliz
Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou
modifier selon les termes de la GNU General Public License
version 2 telle que publiée par la Free Software Foundation.
*/
#ifndef __RF24_CONFIG_H__
#define __RF24_CONFIG_H__
#if ARDUINO < 100
#include
#else
#include
#endif
#include
Ce qui est normalement fourni par 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
Éviter les fausses avertissements
#if 1
#if ! défini (natif) & & défini (ARDUINO)
#undef PROGMEM
#define PROGMEM __attribute__ ((section(".progmem.data")))
#undef PSTR
#define PSTR(s) (__extension__ ({public static const char [__c] PROGMEM = (s); & __c [0];}))
#endif
#endif
Progmem est axée sur l’Arduino
#ifdef ARDUINO
#include
#define PRIPSTR « %S »
#else
typedef char const de 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 : IA : cin:sts = 2 sw = 2pi = RPC
TembooAccount.h***
#define TEMBOO_ACCOUNT "" / / nom de compte de votre Temboo
#define TEMBOO_APP_KEY_NAME "" / / nom de clé de votre app Temboo
#define TEMBOO_APP_KEY "" / / votre Temboo app keyblink
****
Une fois que tout le code est chargé, connecter l’arduino YUN à une alimentation et à internet, ouvrez le moniteur série, donnez-lui quelques instants pour se connecter et le haut de la page tweet de l’aliment choisi doit apparaître.