Table des matières:

Bouton de porte virtuelle utilisant Mongoose OS et XinaBox : 10 étapes
Bouton de porte virtuelle utilisant Mongoose OS et XinaBox : 10 étapes

Vidéo: Bouton de porte virtuelle utilisant Mongoose OS et XinaBox : 10 étapes

Vidéo: Bouton de porte virtuelle utilisant Mongoose OS et XinaBox : 10 étapes
Vidéo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Novembre
Anonim
Bouton de porte virtuelle utilisant Mongoose OS et XinaBox
Bouton de porte virtuelle utilisant Mongoose OS et XinaBox

En utilisant Mongoose et quelques xChips, nous avons créé un bouton de porte virtuel. Au lieu d'un bouton physique pour appeler le personnel, ils peuvent désormais le faire eux-mêmes.

Étape 1: Éléments utilisés dans ce projet

Composants matériels

  • XinaBox CW02 x 1 Vous pouvez utiliser le CW01 à la place
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Vous pouvez simplement utiliser l'IP01 pour l'alimentation, si vous n'avez pas l'intention de programmer plus de modules.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 La "colle" qui fait tout fonctionner !

Applications logicielles et services en ligne

Mongoose OS Outil de développement IoT vraiment génial et facile… et gratuit

Étape 2: Histoire

Dans notre réception, notre personnel avait besoin d'être appelé, nous avons donc décidé de prendre notre propre médicament et de créer un bouton virtuel. Ce code vous permet d'envoyer un RPC (Remote Procedure Call), qui ressemble à un appel HTTP normal depuis n'importe quel navigateur. Nous avons utilisé Mongoose, car il est vraiment facile et rapide à utiliser et sa mise à jour de code OTA (Over The Air) intégrée, signifie que nous pourrions installer notre technologie et mettre à niveau le firmware au fil du temps, sans le dissimuler pour la reprogrammation.

Étape 3: Préparation

  • Installez Mongoose-OS: Simplement, suivez ces étapes très simples pour votre système d'exploitation ici:
  • Cliquez l'IP01 et le CW02 ensemble à l'aide d'un connecteur XC10. Voir image ci-dessous:
Image
Image
  • Insérez l'IP01 dans votre port USB
  • Assurez-vous que les commutateurs IP01 sont en position B et DCE.
  • Flashez le Mongoose-OS sur CW02 à partir de votre ligne de commande. Comme ça:

CD

export MOS_PORT= bin/mos flash esp32

Vous pouvez également simplement entrer dans la console et faire le plus à partir de là, mais ici, nous le faisons à partir de la ligne de commande, donc le travail est rapidement fait. Pour entrer dans la console:

CD

poubelle/mois

Étape 4: Configuration

Bien que ces étapes puissent être effectuées en une seule longue déclaration, nous avons décidé de les séparer, et puisque vous les copieriez et les colleriez de toute façon, simplifions les choses:

Définissez les broches I2C sur la norme xChips:

ensemble de configuration bin/mos i2c.scl_gpio=14 i2c.sda_gpio=2

Connectez votre CW02 à votre WiFi:

poubelle/mos wifi

Déconnectez le WiFi en mode AP et configurez un nom de domaine afin de pouvoir vous connecter au CW01 par nom d'hôte au lieu de trouver la bonne adresse IP. Cela ne fonctionnera que si:

  • Vous déconnectez le WiFi en mode AP comme nous le faisons ci-dessous.
  • Utilisez un Mac ou installez Bonjour sur votre machine Windows.

bin/mos call Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'

bin/mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos call Config. Set '{"config": {"dns_sd": {"host- nom": "xinabox_switch"}}}

Et enfin il faut rebooter le CW02 pour que la config fonctionne

bin/mos call Config. Save '{"reboot": true}'

Très rapidement après cela, vous devriez pouvoir envoyer un ping à xinabox_switch.local

Étape 5: Installation

Débranchez l'IP01 de votre ordinateur et assemblez un circuit selon l'image du haut.

Branchez le PU01 (ou si vous avez décidé de vous en tenir à l'IP01) sur une source d'alimentation USB. Connectez les fils en parallèle de votre interrupteur existant (laissez-le, juste au cas où) à l'OC03 (la polarité n'a pas d'importance). Voir dessin Fritzing.

Une fois sous tension et pour voir que vous parlez réellement à votre xCW02, qu'en est-il du scan du BUS, alias le bus I2C:

bin/mos --port ws://xinabox_switch.local/rpc appeler I2C. Scan

Si tout fonctionne et que votre xOC03 est installé correctement, vous devriez voir un nombre '56' être renvoyé. C'est l'adresse I2C de l'OC03 en décimal (en hexadécimal c'est 0x38).

Étape 6: Programmation

  • Ouvrez maintenant le Mongoose en mode console, voir ci-dessus. Il devrait s'ouvrir avec une fenêtre où il demande un numéro de port, entrez:ws://xinabox_switch.local/rpc
  • Il communiquera avec le CW02 et se rendra compte que l'unité est déjà flashée et connectée au WiFi, il ne donnera donc que 3 coches. Fermez la fenêtre et actualisez la liste des fichiers
  • Copiez et collez le code ci-dessous dans init.js, et cliquez sur enregistrer + redémarrer
  • Votre circuit est maintenant programmé.

Étape 7: Testez

Vous avez maintenant implémenté un autre appel RPC, vous pouvez donc depuis votre terminal saisir:

bin/mos --port ws://xinabox_switch.local/rpc commutateur d'appel

… et votre buzzer devrait sonner 2 sec. Vous pouvez également le faire à partir de - presque - n'importe quel navigateur:

xinabox_switch.local/rpc/Switch

… avec le même effet.

Étape 8: Étape suivante

Vous pouvez utiliser n'importe quel outil capable de déclencher une URL. Je le fais à partir d'une application Apple appelée Workflow, qui me permet de le faire à partir de mon téléphone ou en tant que complication de mon Apple Watch, mais il existe de nombreuses autres options. Voici mon script Workflow, mais avec une adresse IP codée en dur: Enjoy !

Image
Image

App Apple: Workflow - ici avec une adresse IP codée en dur

Étape 9: Schémas

Circuit du buzzer Installez l'OC03 en parallèle avec le bouton poussoir existant.

Télécharger les ici.

Circuit OC03 Installer le OC03 en parallèle avec le bouton poussoir existant.

Télécharger les ici.

Image
Image

Étape 10: Coder

init.js JavaScript Votre code principal et unique pour ce projet.

load('api_config.js');

load('api_gpio.js'); load('api_i2c.js'); load('api_net.js'); load('api_sys.js'); load('api_timer.js'); load("api_rpc.js"); let led = Cfg.get('pins.led'); soit adr = 0x38; laissez bus = I2C.get(); I2C.writeRegB(bus, adr, 3, 0); I2C.writeRegB(bus, adr, 1, 0); /* désactiver juste pour être sûr */ let delay = 2000; GPIO.set_mode(led, GPIO. MODE_OUTPUT); RPC.addHandler('Switch', function(args) { GPIO.toggle(led); I2C.writeRegB(bus, adr, 3, 0); /* au cas où l'OC03 serait reconnecté */ I2C.writeRegB(bus, adr, 1, 1); Timer.set(delay, false, function() { GPIO.toggle(led); I2C.writeRegB(bus, adr, 1, 0); }, null); return true; });

Conseillé: