Étape 3: Le travail incorporé
Premier ordre du jour en apportant la touche à la vie est devient l’Imp à interface correctement avec les voyants et bouton, puis lui faire parler à l’Internet.
Si vous avez une expérience avec Arduino ou autres microcontrôleurs, cette étape serait normalement :
- tirant vers le haut de votre IDE préféré (environnement de développement intégré, ou les logiciels que vous écrivez du code dans un fournit des fonctionnalités supplémentaires comme la vérification de votre syntaxe, colorier votre code pour lire plus facilement et autres)
- écrire un programme qui met en place des goupilles sur votre microcontrôleur comme entrées pour le bouton et sorties pour les LEDs, puis logique le contrôleur utilise pour prendre des séquences d’événements (pousse le bouton) pour conduire ses actionneurs (couleurs claires et séquences, envoi de messages à internet)
- chargement de ce programme sur votre microcontrôleur avec une sorte de câble de communication (souvent USB)
Toutefois, l’Imp électrique utilise un IDE en ligne. Cela signifie que vous écrivez votre programme dans un navigateur web sur le site de l’Imp, puis appuyer sur un bouton qu’automagiquement pousse le programme à l’Imp sur Wifi. A l’avantage de n’ayant ne pas besoin d’installer un IDE sur tous les ordinateurs que vous souhaitez programmer de, mais aussi de protéger votre code dans les nuages de la PMI.
Par Imp électrique développeur wiki a beaucoup d’exemples sur comment programmer en écureuil pour obtenir l’Imp de faire ce que vous voulez.
Si vous êtes familier avec Arduino, la syntaxe de l’écureuil est relativement similaire (semblable à C et Java), mais est plus dynamiques comme Python. Les différences majeures, que vous devez encapsuler autour de votre tête :
- Il n’y a pas une fonction de boucle en écureuil. Au lieu de cela le code s’exécute de bout en bout, exécuter des fonctions en cours d’exécution en eux. Récurrents de code fonctionnel (comme une fonction de boucle) peut être créée comme suit. Si vous avez une fonction testFunction, vous utilisez imp.wakeup (X, testFunction) à la fin de la définition de testFunction. IMP.Wakeup raconte l’Imp d’appeler testFunction nouveau dans X secondes. Donc chaque fois que testFunction est appelée, il se déroulera à nouveau dans X secondes. Comme une boucle où, au lieu de courir aussi vite que possible, vous pouvez définir le temps entre les courses.
- Si votre code est exécuté par des événements qui ne nécessitent pas une boucle (par exemple les entrées sur le web), définissez les classes d’entrée à l’Imp, qui lui dire quelles fonctions d’appel lorsque cette entrée particulière est détectée.
- Enfin, il y a des classes de sortie, qui sont utilisées pour envoyer des données vers les ports de sortie dans le module électrique Imp.
- Définir les ports d’entrée et de sortie permet de brancher des blocs fonctionnels (comme les requêtes HTTP) dans le planificateur pour que vos périphériques interagir avec internet
Quel cheminement logique voulons-nous ? Vraiment simple.
- Contrôles d’interruption matériel lorsque le bouton est enfoncé.
- Lorsque le bouton est enfoncé, actionner la classe de sortie d’impServerOut (qui nous seront ordonnées pour une requête HTTP pour dire notre serveur que la touche)
- En outre, il y a un ordinateur d’état simple qui conserve ou non le bouton est en Mode danse et anime la lumière lorsqu’il est.
Le danceButtonSimple.txt code ci-joint, ainsi que la configuration du planificateur, est tous que nous avons besoin du côté du microcontrôleur. Lorsque le bouton est enfoncé, le planificateur envoie une demande HTTP POST au serveur, lequel garder trace de l’époque des demandes il peut mettre à jour ses pages Web en conséquence. Maintenant sur le serveur !