plante quit witte
Post on 27-Nov-2015
39 Views
Preview:
DESCRIPTION
TRANSCRIPT
Application : Faire « twitter » une plante quand elle a soif
Principe : Un modem UNB est connecté à une sonde d’humidité installée dans le pot qui accueille la
plante. Lorsque la terre est sèche, le modem émet un message qui est relayé sur Twitter.
Coté sonde d’humidité :
Pour la sonde :
Vous pouvez utiliser des sondes capacitives du commerce (1) ou la fabriquer vous meme avec
un dipole sur circuit imprimé (2) ou deux simples lames conductrices (3) dont la distance sera
à adapter selon le milieu dans laquelle elle devra fonctionner. Cette sonde sera plongée en
terre dans le pot de votre plante préférée. Associé à un petit montage simple, vous pouvez le
relier au modem UNB afin de transmettre l'information de manque d'humidité.
(4) La batterie doit supporter un appel en courant de 60mA pendant 1s et doit être couplée à une
capacité tampon en parallèle.
Un schéma d'un détecteur d'humidité :
Pour le coté modem :
Les informations « manque d'humidité » ainsi que « retour à un taux d'humidité normal »
seront détectées par le modem qui fera une émission avec ce changement d'état du capteur.
Ainsi, vous connaitrez le dernier statut d'humidité de votre plante.
Coté applicatif :
Prérequis:
Posséder un compte sur la backend SigFox : http://backend.sigfox.com
Posséder un serveur PHP accessible depuis internet
Posséder un compte Twitter : http://www.twitter.com
Note: un serveur SQL n'est pas nécessaire dans le cadre de notre exemple.
1/ Configurer le backend SigFox pour router les messages reçus vers votre serveur PHP
Rendez-vous sur la page du « device type » correspondant au modem que vous
souhaitez router : http://backend.sigfox.com/devicetype/
Dans la zone "Callbacks", choisissez les options suivantes:
o Type: DATA
o Channel: URL
o Send duplicate: décochée
o Url pattern: http://mon_serveur/twitter?id={device}&t={time}&data={data}
Cliquez sur le bounton "Add" puis "Ok" du formulaire
A partir de maintenant, tous les messages provenant des modems appartenant à ce « device
type » seront envoyés vers votre serveur PHP.
2/ Ecrire un script PHP pour transmettre les messages reçus vers votre compte Twitter
Commencez par télécharger une API PHP pour se connecter à Twitter
ex: https://github.com/abraham/twitteroauth/downloads
Dézippez l'archive sur votre serveur dans votre dossier web "www".
Nommez votre dossier "oauth".
Vous devez avoir l'arborescence suivante :
o www
oauth
callback.php
clearsessions.php
config.php
config.php~
connect.php
DOCUMENTATION
html.inc
images
index.php
LICENSE
README
redirect.php
test.php
twitteroauth
Créer un fichier "index.php" juste à côté du dossier "oauth" dont voici le code :
<?php /* Chargement des libs php */ require_once('oauth/config.php'); require_once('oauth/twitteroauth/twitteroauth.php'); /* Fonction pour obtenir une connection à l'API de Twitter */ function getConnectionWithAccessToken($oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $oauth_token_secret); return $connection; } /* Demande de la connexion Twitter avec les tokens d'authentification */ $connection = getConnectionWithAccessToken("your_oauth_token", "your_oauth_token_secret"); /* Création du tweet à poster */
$content = "La plante ".$_REQUEST["id"]." a envoyé le message ".$_REQUEST["data"]." à ".date("d/m/Y H:i:s",$_REQUEST["t"]) ; /* Envoi du tweet */ $result = $connection->post('statuses/update', array( "status" => $content )); ?>
Vous devez bien évidemment remplacer "your_oauth_token" et "your_oauth_token_secret"
par vos propres tokens.
Pour ce faire, Vous devez créer vos identifiants Twitter en suivant les instructions qui se
trouvent à l'adresse suivante : https://dev.twitter.com/docs/auth/tokens-devtwittercom et en
vous rendant sur votre espace développeur : https://dev.twitter.com/apps
N'oubliez pas de configurer le fichier "oauth/config.php" avec vos propres identifiants : <?php /** * @file * A single location to store configuration. */ define('CONSUMER_KEY', 'your_consumer_key'); define('CONSUMER_SECRET', 'your_cusomer_secret'); define('OAUTH_CALLBACK', ''); ?>
top related