Étape 4: Code
Code :
Branchez le câble micro usb à votre microprocesseur et l’ordinateur portable (le câble vous n’a pas détruit - le chef masculin vous soudé sert pour alimenter uniquement). J’ai programmé tout sur arduino. Notez que vous pouvez également programmer en lua et certaines alternatives de javascript. Personnellement, je préfère l’arduino et trouve qu’il est plus facile. Ci-dessous et ci-joint, vous trouverez le code que j’ai utilisé avec commentaires. Si vous avez des questions, s’il vous plaît écrire dans les commentaires.
0) si vous êtes nouveau sur arduino, ne soyez pas intimidé. Il suffit de télécharger la dernière version de arduino.cc et installer. Puis suivez les étapes ci-dessous. Vous avez seulement besoin de logique de base en pensant à comprendre le code et pas de cerveau du tout à télécharger mon code.
J’ai utilisé deux bibliothèques :
1) Billy bibliothèque, version la plus récente recherche sur http://www.blynk.cc/getting-started/
2) Bibliothèque elapsedMillis, https://github.com/pfeerick/elapsedMillis
Notez également que vous devrez installer votre planche. Si vous avez utilisé le mini de d1 wemos comme je le faisais, accédez à http://www.wemos.cc/tutorial/get_started_in_arduino.html. Sélectionnez votre version de la carte et suivez les instructions d’installations. Je recommande l’installation automatique via le gestionnaire de carte arduino (c’est super rapide et facile). N’oubliez pas de sélectionner votre planche plus tard lors du téléchargement.
Sans la dernière version des bibliothèques et le réglage correct Conseil, votre code ne fonctionnera pas !
Important : le jeton d’autorisation dans le code est celui que vous trouvez dans votre téléphone ou comprimé dans l’application de Billy et envoyées par courriel à vous-même à l’étape précédente. Celui-ci est essentiel. Aussi, n’oubliez pas de changer le mot de passe wifi et le ssid.
Remarque : La disposition des broches de la mini wemos est différente de celui sur la norme ESP8266. Tenez-en compte lorsque vous travaillez avec wemos et Billy. Voir photo ci-jointe. Vert foncé est la disposition des broches dans Billy, dans l’arduino que vous il suffit d’utiliser le numéro pin marqué sur la carte précédée par « D ». Exemple: « digitalWrite (D1, faible); »
Le code :
Rédigé par Ruben Marc Speybrouck
Découvrez mon instructables pour des trucs beaucoup plus :
#define BLYNK_PRINT Serial / / commenter ceci dehors pour désactiver les tirages et économiser de l’espace #include #include
WidgetTerminal terminal(V1) ;
Vous devriez obtenir le jeton d’authentification dans le Blynk App. / / aller sur les paramètres du projet (icône de l’écrou). Char [auth] = "60b462d1df8c465bb4d7c7f9a21856a0";//
switchstate int = 0 ; int switchstate2 = 0 ; int relaystate = 0 ;
stocker les variables qui liront d’entrée.
#include elapsedMillis timeElapsed ; unsigned int intervalle = 1000 ; Attendez une seconde (1000 microsecondes) presses le bouton pour allumer ou éteindre à nouveau. Cela évitera les pépins et améliore la stabilité. Après beaucoup d’expérimentation, j’ai trouvé une seconde pour fonctionner au mieux. N’utilisez pas de retard pour cela car le retard sera également suspendre votre connexion wifi pendant une seconde, fabrication il réinitialise. timeElapsed fonctions permettent la boucle Sub continue de s’exécuter, à l’encontre du fonctionnement simple retard et sont donc les seuls qui doivent être utilisés lorsque vous utilisez des communications réseau
void setup() {Serial.begin(9600) ; Blynk.Begin (auth, « SSID », « Password ») ; Remplissez votre ssid (le nom de votre réseau wifi) et un mot de passe ici. Notez que les guillemets ont besoin de rester.
pinMode (D4, sortie) ; pinMode (D2, sortie) ; pinMode (D3, sortie) ; pinMode (D5, sortie) ; pinMode (D8, sortie) ;
digitalWrite (D4, élevé) ; digitalWrite (D2, élevé) ; digitalWrite (D3, élevé) ; digitalWrite (D5, élevé) ; digitalWrite (D8, élevé) ; Delay(1000) ;
digitalWrite (D4, faible) ; digitalWrite (D2, faible) ; digitalWrite (D3, faible) ; digitalWrite (D5, faible) ; digitalWrite (D8, faible) ;
J’ai trouvé que tout sous et hors tension de commutation au démarrage se débarrasse de l’électricité statique et autres irrégularités. Et un bonus supplémentaire de le faire, c’est que les clics du relais vous permettent de savoir exactement quand le périphérique est connecté à internet et initialisation complète
Delay(1000) ;
terminal.println (F ("Billy v « BLYNK_VERSION »: dispositif a commencé")) ; terminal.Flush() ; Ceci obtiendra le widget terminal de votre application de Billy a commencé}
void loop() {Blynk.run (); //initiate de connexion avec le serveur de Billy, pour votre application de téléphone unsigned long currentMillis = millis(); / / commence à compter les millisecondes pour les retards entre les touches
switchState = digitalRead(D3) ; switchstate2 = digitalRead(D5) ; D3 est étaient est votre bouton physique, le D5 est le bouton dans mon application de Billy je choisis. Notez que GPIO dans l’application de Billy ont des numéros différents. Serial.Print(switchState) ; Serial.Print ("---") ; Serial.Print(switchstate2) ; Serial.Print ("---") ; Serial.Print ("le relais est:") ; Serial.println(relaystate) ;
Pour le dépannage j’ai inclus serial imprimer. Cela ne fonctionne que grâce à l’usb de votre microprocesseur à votre ordinateur portable avec moniteur de série de l’arduino ouvert.
Si (relaystate == faible) {si (switchstate == haute || switchstate2 == HIGH) {//if le bouton physique ou dans l’app est actionné si (timeElapsed > intervalle) / / si plus d’une seconde s’est écoulé depuis la fois précédente un bouton a été activé, exécutez le code et modifier l’état du relais. {relaystate = terminal.println ; digitalWrite (D4, élevée); digitalWrite (D8, élevé), haute (« lumière de la chambre allumé"); terminal.flush() ; delay(5) ; timeElapsed = 0; / / remettre le compteur à 0, alors le décompte recommence...} }
else {delay(5); / / petit retard pour améliorer la stabilité}}
Si le relais est en position off (bas), allumez-le si vous appuyez sur la touche app de Billy ou la touche physique. Modifier l’état de la variable relaystate à on / / Print au Billy app terminal widget qui la lumière de la chambre à coucher se trouve maintenant sur.
ElseIf (relaystate == HIGH) {si (switchstate == haute || switchstate2 == HIGH) {si (timeElapsed > intervalle) / / si plus d’une seconde s’est écoulé depuis la fois précédente un bouton a été activé, exécutez le code et modifier l’état du relais.
{
relaystate = bas ; terminal.println (« lumière de la chambre à coucher éteinte") ; terminal.Flush() ; digitalWrite (D8, faible) ; digitalWrite (D4, faible) ; Delay(5) ; timeElapsed = 0 ; } }
else {delay(5);}}
Si le relais est en position sur, éteignez-le si vous appuyez sur la touche app de Billy ou la touche physique. Modifier l’état de la variable relaystate OFF / / Print pour le widget app terminal à Billy que la lumière de la chambre est maintenant éteint.
}
Le code est également fixé dans un fichier séparé, ne pas copier coller car il ruine la mise en page.
monawifiswitch.INO