Conseils, services, ingénierie en informatique. Mise en place de solutions technologiques, et support, pour les entreprises.

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 

 

Nous sommes une communauté sympa d'informaticiens, de développeurs qui créent des programmes informatiques en javascript et qui se réunit pour discuter des nouvelles technologies qui ont vu le jour autour du langage de programmation javascript (mais pas que, on parle aussi de typescript). Les anciens y voient une sorte de "café-philo" en référence aux débats animés de Marc Sautet  au café des Phares, place de La Bastille à Paris. 

 

Merci à Mathieu Breton de nous accueillir ce soir chez JS Republic (UX JS Republic,, Javascript, IOT maker.), à Paris 11 rue de Rome, Gare St Lazare. Très belle salle bien éclairée, avec prises de courants, un grand écran, le top!  Comme nous l'annonce Mathieu, "Pour cette fin d'année, nous vous proposons de conclure avec un meetup ludique où nous parlerons pas seulement de JavaScript mais aussi d'IoT. Nous verrons au travers de deux talks, comment utiliser ce merveilleux langage autant sur les objets eux-même que sur les serveurs." Et un cadeau à gagner, le GrovePI+ StarterKit pour débuter en IOT et javascript. En attendant janvier il y aura un workshop Cassandra & NodeJS.

  

Une question? Posez-la ici

Aide au développement d'applications web mobile smartphone

 

 

 

Comment j'ai prototypé mon objet connecté en JavaScript ?

Par Hervé Chaissac

 

 Dans le monde IOT la semaine dernière, on parlait de la cafetière connectée pilotée en javascript grâce à Johnny5. Là il s'agit de Iot REX. On peut maintenant déployer javascript sur le front, le back, partout, et en IOT.

 

Hervé qui arrive avec un robot à roulettes qu'il a constuit.

 

iot javascript nodered nodejs johnny5

 

 

La 1ere version était 100% arduino, starter 46$, sensor shield, chassis et motor, arduino, motor shield dual H bridge

Niveau software, on codait sur l'arduino, sur la puce.

digitalWrite() pour faire clignoter une led

Faible consommation, 4 piles AA

Mais le chassis était trop petit, le moteur pas assez puissant, et l'arduino était limité à 32k, voir 30K, et il fallait dev en langage proche de C/C++

 

Version 2

Arduino Pi3+hat, 2 batteries

Stack Pi3-> Arduino

Software: comment piloter l'arduino depuis le pi3, si possible en JS?

Firmata sur l'arduino + NPM Johnny five (github 8400)

=NodeBot node.JS + robot

Ca permet de coder un robot en NodeJS cool!

Orange pi vers Arduino/Firmata, I2C.

 

Un petit hello World Johnny 5

var five require('Johnny-five') ...

 

Node-red, framework FBP basé sur Expressn intégré à Bluemix.

 

Demo: Node-red + Sensortag + Front chart

 

 node-red pour lancer le serveur

sur le localhost://1080 on a l'interface avec des inputs, websocket, des outputs, mqt, http, on peut coder à l'interieur, il  y a des fonctions. On a un package SensorTag. C'est visuel on drag'n drop les librairies et on crée des liens entre elles. BLE 4 Bluetooth

30 dollars de chez Texas instrument. C'est bourré de capteurs qui remontent des infos, humidité, pression, température, magnétometre, accéléromètre, gyroscope, luxomètre...

On relie le sensorTag au msg.payload, on deploie

 On récupère le sensorTag ID et les infos.

 

Node-red permet de prototyper rapidement.

 

Verson 3 du robot!

Hardware: V2+ camera sur tourelle 2 servomoteurs, chassis roues mecanum avec moteurs et un distance sensor

Un arduino à droite, avec la caméra, un rasberi PI donc 2 batteries.

Le robot est connecté au PC par le Wifi via le pi en session ssh.

Les roues mecanum permettent de bouger dans toutes les directions

Software: Idem V2, toujours sur node Red. On aune interface sur laquelle on peut pluguer des plugins API HTML5 Gamepad

Revue de code! Johnny five, comment piloter les moteurs

LA caméra filme avec MJPEG stramer, c'est une suite de JPEGs

Demo

Avec les flèches, le robot se déplace, filme, il tourne dans tous les sens. Nous voyons l'image et la vidéo à l'écran. L'inteface permet de bouger le robot indépendament de la caméra.

On peut faire clignoter la led sur le dessus du robot.

 

V4 à suivre... geolocalisation, où est le robot dans une pièce

 

  

Une question? Posez-la ici

Aide au développement d'applications 

 

Javascript, de l'objet au serveur

Par Pierre Jankowiez

 

 Nicolas Lopez qui nous fait une introduction: Nicolas qui est CTO chez @iot makers et a fait de la robotoque pendant 6 ans avant de basculer dans l'IOT. Projets signaletiques pour les centres commerciaux. Idée: créer une gamme d'objet pour rendre plus flexible la signalétique en faisant un focus sur une simple utilisation, simple à maintenir, simple à produire. Exemple de panneau suspendu avec des leds et des messages dynamiques avec des messages, et des girouettes qui tournent pour s'orienter en fonction des evenements. Controle de 5 à 10 panneaux leds

passerelle TP link 3G/Wifi à 20 euros intégrée , la met dans un faux plafond et elle est independante.

Pierre travaille dans les batiments connectés (Niagara, java...)

 

Contraintes de l'IOT

les objets devaient être industrialisés, avec un cyvle de vie à décrire.

Sécuriser le projet pour ne pas qu'un hacker puisse venir changer l'affichage et ce qu'il y a marqué à l'écran

Etre connécté et réactif client serveur

Il faut que l'environnement soit petit et robuste, soc, équivalent d'un mini ordiater embarqué.

 

Comment faire ça en JS?

 

L'arduino ne peut pas supporter le JS. Donc

Les écrans de led, 20 000 leds, ca fait 3 millions d'opérations par seconde. Librairie en C qui permet de gérer les panneaux de leds

utilisation de NodeJS, sur le runtime API V8 de Google qui est codé en C. On peut s'interfacer et faire tourner du C à partir de JS.

Mais à chaque version de NodeJS, l'API Change, d'où NAN, N-API pour apporter de la stabilité .

USB , srie, I2C pour gérer le moteur de la girouette, SPI, I/O écrans de leds pilotés par les E/S de la carte, 1Wire, on peut tout interfacer en JS. Librairies Rasbian

Vers le serveur...

La connection http prend beaucoup de ressource, les écrans s'éteignent! Que faire?

Tests avec Sigfox et Lora, qui sont des protocoles très basse consommation, très longue portée. Un objet en JS va consommer de la ressource. A étudier si la 3G n'est pas plus intéréssante?

Rest? Socket.io? MQTT.js publish/subscribe avec topics et broker Mosca, avec les modules de NodsJS, facile de faire du TCP.

Base de donnée MongoDB avec un seveur Express pour récupérer les données de MongoDB pour l'archivage, puis Nginx pour le load balancing.

 

Et la sécurité réseau dans tout ça?

 

Pour éviter qu'un hacker ne change les écrans et les textes,  il faut bien sécuriser la connexion. Communication sécurisée, on utilise TLS: authentification serveur, objets, personne qui utilise l'API, sécurité entre 2 objets. TLS est la derniere version de SSL, un des protocoles les plus surs de la sécurité, supporté par NodeJS. Chiffremen asymétrique.

TLS = intégrité + authentification.

 

Phase d'industrialisation

Penser à la maintenance, prévoir des logs, un topic par objet avec mqtt

PM2 permet de redémarrer si l'application plante

Ngninx permet de faire du load balancing.

Donc voilà, un IOT en JS c'est possible, avec du C en bas niveau quand meme.

 

  

Une question? Posez-la ici

Aide au développement d'applications web mobile smartphone

 

Voilà, j'espère que ça vous a plu. Vos commentaires/remarques sont les bienvenus

 

Ajouter un Commentaire

Ces commentaires reflète exclusivement l'opinion de leurs auteurs et n’engage en aucune façon Consultingit. L'icone à gauche du commentaire apparait si votre adresse email utilisée pour poster est la même que celle de votre compte gravatar: https://fr.gravatar.com Pour insérer une balise youtube: [youtube]IDENTIFIER[/youtube]

Code de sécurité
Rafraîchir