Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Embedded Javascript (IoT)

Embedded Javascript (IoT)

#20 Meet.js Katowice

Kamil Karczmarczyk

July 06, 2016
Tweet

Other Decks in Programming

Transcript

  1. 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
  2. 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 ♥
  3. 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)
  4. 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
  5. 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
  6. 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…
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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”
  12. 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 +
  13. 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
  14. 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; ... });
  15. 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
  16. 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
  17. 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)
  18. 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