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.
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
Commentaires
S’abonner au flux RSS pour les commentaires de cet article.