Embedded Javascript (IoT)

Embedded Javascript (IoT)

#20 Meet.js Katowice

Cf602cd6b9b92a62146c7746ad06890f?s=128

Kamil Karczmarczyk

July 06, 2016
Tweet

Transcript

  1. Embedded Javascript (IoT) Kamil Karczmarczyk meet.js Katowice #20 06.07.2016

  2. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Agenda

    • O mnie • Krótkie wprowadzenie do embedded electronics / IoT • Arduino-like vs. Raspberry Pi-like • johnny-five • cylon.js • Przykładowe projekty •Linki, Q & A
  3. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 O

    mnie • Full stack ninja @ rspective • Drone technologist / UAV operator @ idztam.pl • R&D freelancer ♥ Node.js ♥ MongoDB ♥ elektronika cyfrowa ♥ robotyka ♥ ♥ drony ♥ kryptografia ♥ Arduino ♥ IoT ♥
  4. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Czym

    jest arduino? • Platforma do prototypowania układów elektronicznych • Open Hardware + Open Source • IDE (oparte na processing.org) • Biblioteki (oparte na wiring.org) • Arduino Bootloader (optiboot)
  5. None
  6. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Rodzaje

    płytek arduino • Uno, Leonardo - 16Mhz, Flash: 32Kb, SRAM 2Kb, EEPROM 1Kb • Arduino mini, pro mini, nano, micro, LilyPad • Arduino MEGA 1280, 2560, ADK - Flash:128/256Kb, SRAM: 8Kb, EEPROM:4Kb • Arduino DUE (32-bit ARM Cortex) - 3.3v, 84Mhz, Flash:512Kb, SRAM:96Kb • Arduino Yun (uno + openWRT) • Arduino 101, Primo, Otto, M0, Zero, (…), Arduino Tre
  7. None
  8. None
  9. None
  10. None
  11. None
  12. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Inne

    komputery jednopłytkowe • Raspberry Pi 1,2,3 - node.js, wiringPi • Intel Galileo, Intel Edison - node.js, arduino lang • NodeMCU / ESP8266 - LUA, arduino lang • Tessel, Tessel 2 - node.js (natywnie!) • NetDuino 1,2,3
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Czujniki

    / shieldy • Ethernet shield, Wi-Fi shield, BT shield • GSM shield, GPS shield • Motor shield • Wave (audio) shield, SD card shield • Touchscreen LCD schield • Joystick shield • Video experimenter • etc… • Temperatury, Wilgotności • Ciśnienia, Światła • Akcelerometr, Żyroskop, Magnetometr • Odległości (sonic/IR) • Przepływu wody • Prądu • Wagi / nacisku, Zgięcia • Pola magnetycznego • Gazów, • etc…
  20. None
  21. None
  22. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 IDE

    • Oficjalne (Processing) • arduino.cc • Oficjalne Web IDE (beta) • create.arduino.cc • Visual Micro (Visual Studio / Atmel Studio) • +debugger tools • visualmicro.com • PlatformIO • Arduino, WiringPi, mbed, Simba • platformio.org • Intel XDK IoT edition (atom) • Intel Edison, Intel Galileo
  23. None
  24. None
  25. DEMO?

  26. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Arduino-like

    vs RaspberryPi-like • 8-bit AVR, 32-bit ARM • niskopoziomowe • mało Ramu, mało flash, mało GPU • Assembler, C, C++, „arduino lang” • szybkie GPIO • ograniczony wybór IDE • Kod NodeJS na PC -> Firmata •32-bit ARM, x86, Linux Kernel • wysokopoziomowe • wydajniejsze (ram, dysk, itp.) • C/C++, python, node.js, etc • wolne GPIO • większy wybór IDE • Kod NodeJS na urządzeniu
  27. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Johnny-five

    „The Javascript Robotic & IoT platform” 4 sposoby działania: • Host (node.js) -> USB / Serial / ethernet • Arduino (+compatible) • Host (node.js) -> Wifi • Electric Imp, Particle Photon, Spark Core • Host (node.js) -> Bluetooth • blendMicro, LightBlue Bean • Bezpośrednio na urządzeniu • Galileo, Edison, Lininio, PcDuino, BeagleBone, RaspberryPi, Tessel 2 + pluginIO
  28. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Johnny-five

    # npm install johnny-five
  29. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016

  30. DEMO?

  31. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Johnny-five

    • http://johnny-five.io/ • https://github.com/rwaldron/johnny-five • Nodeschool.io -> npm install -g nodebot-workshop
  32. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Cylon.js

    Ardrone Arduino Arduino Yun Audio Beaglebone Bebop BLE Crazyflie Digispark Imp Intel Galileo Intel Edison Intel IoT Analytics Joystick Keyboard Leap Motion M2X MiP MQTT Nest Neurosky Mindwave Octoblu OpenCV Particle Pebble Phillips Hue Pinoccio PowerUp Rapiro Raspberry Pi Salesforce Sphero Sphero BLE Speech Tessel Wiced Sense „Next generation robotics framework with support for 43 different platforms”
  33. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Cylon.js

  34. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Cylon.js

    MQTT + Firmata
  35. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Projekt

    – lokalizator beaconów •Intel Edison •Linux -> node.js • Bluetooth LE • Wifi Beacon • Ultra Low power •Bluetooth LE +
  36. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016

  37. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Projekt

    – lokalizator beaconów # opkg install bluez5-dev # rfkill unblock bluetooth # systemctl disable bluetooth # hciconfig hci0 up # npm install bleno
  38. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Projekt

    – lokalizator beaconów var noble = require('noble'); noble.on('stateChange', function(state) { if (state === 'poweredOn') { noble.startScanning([...]); } else { noble.stopScanning(); } }); noble.on('discover', function(peripheral) { var advertisement = peripheral.advertisement; var localName = advertisement.localName; var txPowerLevel = advertisement.txPowerLevel; var manufacturerData = advertisement.manufacturerData; var serviceData = advertisement.serviceData; var serviceUuids = advertisement.serviceUuids; ... });
  39. MQTT Broker (node.js - mosca) MongoDB MySQL Backend app +

    (Website, admin, API) +PushServer
  40. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Projekt

    – lokalizator beaconów
  41. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 MQTT

    • „Message Queuing Telemetry Transport” • Ekstremalnie prosty i lekki protokół transmisji danych • stworzony z myślą o machine-to-machine (IoT) •stos TCP/IP • Wzorzec Publish / Subscribe •Facebook Messanger
  42. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 MQTT

    broker • mosca.io - node.js module :) • mosquitto.org – own hosting, open source • cloudmqtt.com – SaaS, free/paid (AWS hosting) • hivemq.com – SaaS, paid (enterprise) • Message Broker for AWS IoT – SaaS, free/paid
  43. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Projekt

    – Crazy Cart Leaderboard +
  44. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Projekt

    – Crazy Cart Leaderboard Node.js backend app Firebase Leaderboard (bootstrap + FireAngular) NodeMCU (esp8266) + + Czytnik RFID (RDM6300) Cyfrowy czujnik odległości (IR) (E18-D80NK)
  45. Kamil Karczmarczyk | Embedded Javascript| meet.js Katowice | 06.07.2016 Linki

    – Sklepy & kursy/fora • nettigo.pl • botland.com.pl • Iteadstudio.com • Sparkfun.com • Seeedstudio.com • Ebay.com / allegro.pl • Aliexpress.com • dx.com • goodluckbuy.com • banggood.com • Arduino.cc • Arduino.org • Starterkit.nettigo.pl • Majsterkowo.pl • Forum.nettigo.pl • Forbot.pl • Forum.atnel.pl • Adafruit.com • thingiverse.com
  46. e-mail: kkarczmarczyk@gmail.com twitter: @karczmarczyk facebook: /kamil.karczmarczyk linked.in: /kkarczmarczyk Dziękuję za

    uwagę! Q&A?