Gut vérifier un Tweeting et Facebooking frigo (3 / 7 étapes)

Étape 3: Arduino Code

Le code est construit avec « SimpleClient » comme point de départ à partir de code des asynclabs.
Tout d’abord je vais vous montrer tout le code et puis le décomposer.
(J’ai remplacé les infos importantes de mon routeur avec XXXXXXs, juste pour info)

=====================================================
/*
* Un simple croquis qui utilise WiServer pour servir une page web
*/
int fsrAnalogPin = 0 ; FSR est connecté à 0 analogique
int fsrReading ; l’analogue de lecture à partir du diviseur de résistance FSR
hasOpened booléen = false ;
hasClosed booléen = false ;
isOpen boolean = false ;

#include < WiServer.h >

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

Paramètres de configuration sans fil---
unsigned char local_ip [] = {192 168, X, X} ; Adresse IP de WiShield
unsigned char gateway_ip [] = {192 168, X, X} ; adresse IP routeur ou passerelle
unsigned char masque_sous [] = {255,255,255,0} ; masque de sous-réseau pour le réseau local
const prog_char ssid [] PROGMEM = {"XXXXXXXXX"} ; Max 32 octets

unsigned char security_type = 1 ; 0 - ouvert ; 1 - WEP ; 2 - WPA ; 3 - WPA2

Phrase de passe WPA/WPA2
const prog_char security_passphrase [] PROGMEM = {"XXXXXXX"} ; Max 64 caractères

Clés WEP 128 bits
exemple de clés HEX
prog_uchar wep_keys [] PROGMEM = {0xXX 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX} ;

configurer le mode sans fil
infrastructure - se connecter au point d’accès
adhoc - se connecter à un autre périphérique WiFi
unsigned char wireless_mode = WIRELESS_MODE_INFRA ;

unsigned char ssid_len ;
unsigned char security_passphrase_len ;
Fin des paramètres de configuration sans fil---

Fonction qui imprime les données depuis le serveur
{} void printData (données char *, int len)

Les données retournées par le serveur d’impression
Notez que les données n’est pas terminée par null, peut être divisé en paquets plus petits, et
inclut l’en-tête HTTP.
tandis que (len--> 0) {}
Serial.Print(*(Data++)) ;
}
}

UInt8 ip2 [] = {XXX, XXX, XXX, XXX} ;
Une demande qui obtient les dernières données météorologiques METAR pour LAX
GETrequest getOpened (ip2, 80, « XXXXXX.com », "/ gutcheck/opened.php") ;

void setup() {}
Initialiser le WiServer (nous allons passer NULL pour le service fonction car il ne faut pas servir des pages web des pages)
WiServer.init(NULL) ;

Activez la sortie série et demander WiServer pour générer des messages de journal (facultatif)
Serial.Begin(57600) ;
WiServer.enableVerboseMode(true) ;

Ont la fonction de processData appelée lorsque les données sont renvoyées par le serveur
getOpened.setReturnFunc(printData) ;

}

void loop() {}

fsrReading = analogRead(fsrAnalogPin) ;
Serial.Print(fsrReading) ;
Serial.Print("\n") ;

Si {(fsrReading > 200)
isOpen = false ;
} else {}
isOpen = true ;
}

Si (! hasOpened & & isOpen) {}
hasOpened = true ;
hasClosed = false ;
Serial.Print("OPENED\n") ;
getOpened.submit() ;
}
else if (! hasClosed & &! isOpen)
{
hasClosed = true ;
hasOpened = false ;
Serial.Print("CLOSED\n") ;
}

WiServer.server_task() ;
Delay(100) ;
}

===============================================

Maintenant la ventilation

=========
int fsrAnalogPin = 0 ; FSR est connecté à 0 analogique
int fsrReading ; l’analogue de lecture à partir du diviseur de résistance FSR
hasOpened booléen = false ;
hasClosed booléen = false ;
isOpen boolean = false ;
=========

fsrAnalogPin définit les valeurs de l’arduino lire la résistance de pression, il doit être raccordé à une broche analogique
fsrReading est pour la lecture de la valeur plus tard.
Les variables booléennes servira dans la fonction loop() pour suivre lorsque la porte est ouverte et fermée.

=========
#include < WiServer.h >

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

Paramètres de configuration sans fil---
unsigned char local_ip [] = {192 168, X, X} ; Adresse IP de WiShield
unsigned char gateway_ip [] = {192 168, X, X} ; adresse IP routeur ou passerelle
unsigned char masque_sous [] = {255,255,255,0} ; masque de sous-réseau pour le réseau local
const prog_char ssid [] PROGMEM = {"XXXXXXXXX"} ; Max 32 octets

unsigned char security_type = 1 ; 0 - ouvert ; 1 - WEP ; 2 - WPA ; 3 - WPA2

Phrase de passe WPA/WPA2
const prog_char security_passphrase [] PROGMEM = {"XXXXXXX"} ; Max 64 caractères

Clés WEP 128 bits
exemple de clés HEX
prog_uchar wep_keys [] PROGMEM = {0xXX 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX} ;

configurer le mode sans fil
infrastructure - se connecter au point d’accès
adhoc - se connecter à un autre périphérique WiFi
unsigned char wireless_mode = WIRELESS_MODE_INFRA ;

unsigned char ssid_len ;
unsigned char security_passphrase_len ;
Fin des paramètres de configuration sans fil---
=========

La partie la plus difficile pour moi a faire fonctionner avec mon routeur, j’ai un linksys e2000 protégés par WEP 64 bits, et il n’était pas trop d’instructions sur la façon de l’obtenir pour travailler. C’est une question de savoir quelles informations il est allé quel domaine.

[local_ip] est l’adresse ip qui est réglée sur l’arduino, trouver une adresse ip qui n’est pas utilisée par le routeur et définissez-la sur qui. Mon routeur est assez bien à des adresses non contradictoires.

[gateway_ip] est généralement l’adresse IP que vous permet de configurer les paramètres de votre routeur via un navigateur web.

[masque_sous] ce qui est déjà défini est assez typique de ce que j’ai vu, mais vérifiez les paramètres de votre routeur juste au cas où.

SSID [] est ce que vous appeliez votre connexion, ce que vous voyez lorsque vous souhaitez accéder au routeur sans fil dans la liste des connexions sans fil disponibles avec un ordinateur ou un téléphone.

security_type est le genre de sécurité que vous avez là-dessus, j’utilise 1 - WEP
Par défaut, le code de WiShield utilise le cryptage 128 bits. Donc au lieu d’essayer de modifier le code de WiShield, j’ai changé mon routeur à chiffrement de 128 bits aussi bien. Il semble plus sûre en tout cas, lol.
Il y a des informations dans les forums et le wiki sur la façon de le changer.
Et lors de l’édition dans vous êtes clé de 128 bits, vous devez pénétrer les valeurs paires donc par exemple :

Votre clé : 4F45EEF232...
Dans le code de l’arduino : 0x4F, 0 x 45, 0xEE, 0xF2, 0 x 32,...
(Vous verrez ce que je veux dire si vous utilisez un routeur protégé)

unsigned char wireless_mode = WIRELESS_MODE_INFRA ;
fait en sorte, qu'il se connecte au point d’accès (routeur) comme un nouveau périphérique afin qu’elle puisse accéder à internet.

Tout le reste est juste définition des variables pour la WiShield à utiliser.

Le wiki et le Forum à asynclabs est un excellent endroit pour regarder pour commencer à obtenir votre WiShield de travailler.

=========
Fonction qui imprime les données depuis le serveur
{} void printData (données char *, int len)

Les données retournées par le serveur d’impression
Notez que les données n’est pas terminée par null, peut être divisé en paquets plus petits, et
inclut l’en-tête HTTP.
tandis que (len--> 0) {}
Serial.Print(*(Data++)) ;
}
}
=========

Cette fonction écrit des informations dans le Serial Monitor dans l’IDE Arduino, utile pour le débogage.

=========
UInt8 ip2 [] = {XXX, XXX, XXX, XXX} ;
Une demande qui obtient les dernières données météorologiques METAR pour LAX
GETrequest getOpened (ip2, 80, « XXXXXX.com », "/ gutcheck/opened.php") ;
=========

Cela met en place les fichiers php qui communiquera au réfrigérateur. Le fichier PHP réagissent à la communication de l’Arduino pour publier sur Facebook ou Twitter. Elles seront détaillées plus tard.

=========
void setup() {}
Initialiser le WiServer (nous allons passer NULL pour le service fonction car il ne faut pas servir des pages web des pages)
WiServer.init(NULL) ;

Activez la sortie série et demander WiServer pour générer des messages de journal (facultatif)
Serial.Begin(57600) ;
WiServer.enableVerboseMode(true) ;

Ont la fonction de processData appelée lorsque les données sont renvoyées par le serveur
getOpened.setReturnFunc(printData) ;

}
=========

La fonction setup() définit tous la variable nécessaire pour la résistance et de la communication WiShield.

=========
void loop() {}

fsrReading = analogRead(fsrAnalogPin) ;
Serial.Print(fsrReading) ;
Serial.Print("\n") ;

Si {(fsrReading > 200)
isOpen = false ;
} else {}
isOpen = true ;
}

Si (! hasOpened & & isOpen) {}
hasOpened = true ;
hasClosed = false ;
Serial.Print("OPENED\n") ;
getOpened.submit() ;
}
else if (! hasClosed & &! isOpen)
{
hasClosed = true ;
hasOpened = false ;
Serial.Print("CLOSED\n") ;
}

WiServer.server_task() ;
Delay(100) ;
}
========

Il s’agit de la fonction loop() qui gère tout.
fsrReading = analogRead(fsrAnalogPin) ; Obtient la valeur actuelle de la résistance de pression.
Il vérifie ensuite si la valeur est haute ou basse assez pour savoir si le réfrigérateur est ouvert ou fermé.
La prochaine série d’instructions conditionnelles de contrôle pour voir si l’état du frigo a changé depuis la dernière boucle.
Si elle a changé, il enverra soit le getOpened vers le fichier PHP il y a lieu.

Le code WiShield file d’attente les demandes de page si vous ouvrez et fermez le réfrigérateur rapidement et à plusieurs reprises, mais il n’est pas nécessairement pare-balles. Il suffit donc gardez cela à l’esprit.

En outre, dans un premier temps, j’ai eu le compare fsrReading à 0. Mais puisque la résistance est collée vers le bas, il y avait une petite presse résiduel gauche quand la porte ouverte. Il est bon d’ouvrir l’affichage en série et voir si vous devez régler cela par vous-même.

Articles Liés

Comment trouver votre identifiant facebook

Comment trouver votre identifiant facebook

Ok, il y a quelques années, vous pourriez trouver l'URL de votre photo de profil pour obtenir votre identifiant de facebook. Mais facebook qui a changé, et ceux qui ont changé leur nom d'utilisateur (http://www.facebook.com/USERNAME) Impossible de tr
Aimant de réfrigérateur Arduino

Aimant de réfrigérateur Arduino

Avez-vous l'habitude de laisser des notes sur le frigo, maintenant considérer numérique et y ajouter un Arduino.Dans ce instructable je vais vous montrer comment faire exactement cela. Tout ce dont vous avez besoin est un Arduino, un écran LCD et un
Comment faire la ligne de pêche hors de votre équipement de paracord

Comment faire la ligne de pêche hors de votre équipement de paracord

ce qui est de 10 pieds de paracord va faire pour moi dans une situation de survie ? Bien que se passe-t-il si on pouvait tourner que 10 pieds en 80 pi, ou même de 200 pieds. Eh bien, vous le pouvez. En utilisant les brins intérieurs de votre paracord
Comment nettoyer les bijoux argent et coutellerie

Comment nettoyer les bijoux argent et coutellerie

La semaine dernière nous avons effectué une expérience dans la classe de chimie engageant les réactions d'oxydo-réduction (pour ceux qui ne connaissent pas le terme, je vais vous expliquer brièvement, mais il y a également une explication dans Wikipe
Nixie Watch Prototype_A

Nixie Watch Prototype_A

Bonjour.Permettez-moi de vous présenter mon travail de 2 ans.Nixie Watch Prototype_A.Tout le monde ont déjà vu horloge nixie, mais regardez nixie est plus petit. Permettez-moi de me présenter à vous montre de petits 4-tubes-Cas laiton.-Bracelet en cu
Emploies Photobooth à l’aide d’un ipad

Emploies Photobooth à l’aide d’un ipad

Se marier ou avoir un événement et veulent s'amuser un photomaton à votre événement ? Photomatons sont beaucoup d'argent, mais vous pouvez le faire à bon compte et ont quelque chose d'encore mieux ! Que diriez-vous une photo booth ou selfie machine q
Tutoriel de brassards en cuir texture bois

Tutoriel de brassards en cuir texture bois

Vous souhaitez faire cette manchette bois génial ? Voici un tutoriel sur comment faire le morceau parfait que votre costume était manquant ou cet accessoire cosplay qui auront des gens qui parlent. Être une nymphe de bois ou un guerrier de la nature
Fourrure véritable trousseau de queue

Fourrure véritable trousseau de queue

Porte-clés de la queue sont devenus très populaires ces dernières années, non seulement comme un moyen de garder vos clés à portée de main, mais aussi comme un costume ou l'accessoires de mode. N'importe quel type de tannée queue animale peut être ut
Polymer Clay Dragon Scale collier

Polymer Clay Dragon Scale collier

DRAGONS ! Qui n'aime pas les dragons ? Eh bien, bon, peut-être que mec là-bas et le chien plus là-bas. Et elle m'a dit l'autre jour, qu'elle ne comprend pas ce que la grande affaire est tout au sujet. Moi ? Je t'aime dragons ! Voici comment j'ai fait
Comment faire : une fée dans un flacon Night Light (Zelda)

Comment faire : une fée dans un flacon Night Light (Zelda)

idéal pour les enfants ou n'importe quel fan de Zelda ! Il s'agissait d'une version vraiment facile, surtout si vous avez les bons outils. Si vous avez des questions laissez un commentaire ou envoyez-moi un courriel à orange-espionMusique par Julian
T-bar pour la voiture

T-bar pour la voiture

Nothing supprime l'illusion de la masculinité comme au sommet exposée d'une lanière...Cela vous permettra de prendre les durs hors véhicule de quiconque. Fonctionne particulièrement bien sur un camion de travail...Étape 1: Vous aurez besoin Vous devr
Toilettes Flush Gamification - Bureau Black Opps survivant Astuce

Toilettes Flush Gamification - Bureau Black Opps survivant Astuce

quel est le problème?Eh bien, je dois admettre que je suis une de ces personnes qui aiment prendre un pipi dans un endroit propre. Toutefois, les urinoirs publics bureaux sont très souvent utilisés par des gens si pressés pour consulter leur compte t
Robot conduit Pride Parade de papier

Robot conduit Pride Parade de papier

l'an dernier j'ai fabriqués à la main un héros de papier Robot à Bozeman, MT. J'ai utilisé le comique et le costume pour promouvoir les bonnes actions et les causes humanitaires dans la communauté. La base du projet était de montrer à quel point vous
Comment faire passer BESS (blocage wesites)

Comment faire passer BESS (blocage wesites)

cette volonté instructable alow vous permet d'obtenir passé BESS l'ennuyeux petit chien qui verrouille vous des sites Web la plupart du temps vous avez besoin pour l'école mais parfois pour vérifier votre myspace ou facebook... (c'était un temps inte