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

EPF IoT class 2018

October 12, 2018

EPF IoT class 2018


October 12, 2018


  1. + +

  2. Preface: Ubiquitous Computing What’s IoT? How-To: IoT for Dummies IoT

    Hardware Guide Criticism and controversies Takeaways: The future of IoT Preparation of Hands-on: Android Things
  3. The most profound technologies are those that disappear. They weave

    themselves into the fabric of everyday life until they are indistinguishable from it. —— Mark Weiser, Xerox Parc, 1991 The Computer for the Twenty-First Century
  4. • Ubiquitous computing names the third wave in computing, just

    now beginning. First were mainframes, each shared by lots of people. Now we are in the personal computing era, person and machine staring uneasily at each other across the desktop. Next comes ubiquitous computing, or the age of calm technology, when technology recedes into the background of our lives.
  5. • The purpose of a computer is to help you

    do something else. • The best computer is a quiet, invisible servant. • The more you can do by intuition the smarter you are; the computer should extend your unconscious. • Technology should create calm.
  6. • Synonyms: Pervasive computing, Ambient Intelligence, physical computing, the Internet

    of Things, haptic computing, and "things that think” • Research topics: distributed computing, mobile computing, location computing, mobile networking, context-aware computing, sensor networks, human-computer interaction, and artificial intelligence.
  7. In·ter·net of Things The network of physical devices, vehicles, buildings

    and other items—embedded with electronics, software, sensors, actuators, and network connectivity that enable these objects to collect and exchange data.
  8. 2013 the Global Standards Initiative on Internet of Things (IoT-GSI)

    defined the IoT as "the infrastructure of the information society."
  9. How-To: IoT for dummies IoT Solution Life Cycle Edge computing

    & gateway device Connectivity Options M2M Data Protocols: MQTT, CoAP, XMPP IoT Cloud Solutions IoT & Big Data
  10. Edge Computing • Edge computing is a distributed computing paradigm

    in which computation is largely or completely performed on distributed device nodes known as smart devices or edge devices as opposed to primarily taking place in a centralized cloud environment. • Edge refers to the geographic distribution of computing nodes in the network as Internet of Things devices. Reference: https://en.wikipedia.org/wiki/Edge_computing
  11. Edge Computing: advantages • Privacy and security • Reduce data

    processing latency • Faster feedbacks • Offline capability • Reduce resource cost: only send and store useful data to the cloud Reference: https://en.wikipedia.org/wiki/Edge_computing
  12. Gateway Device A dedicated gateway device might be required if

    devices: • Don’t have routable connectivity to the Internet, for example, Bluetooth devices. • Don’t have processing capability needed for transport-layer security (TLS) and as such can't communicate with remote APIs • Don't have the electrical power to perform required network transmission.
  13. Gateway Device A gateway device might be used even when

    the participating devices are capable of communicating without one, in order to: • Condensing & cache data • Manage Timestamps • IPV6 to IPV4 translation • Ingesting and uploading other flat-file-based data • Firmware updates
  14. 3G 4G LPWAN / WAN *LPWAN: Low Power Wide Area

    Network *WAN: Wide Area Network
  15. • SIGFOX employs a cellular style system that enables remote

    devices to connect using ultra-narrow band (UNB) technology, the same used for submarine communications during World War I.
  16. • Machine to machine refers to direct communication between devices

    using any communications channel, including wired and wireless.
  17. • MQTT stands for MQ Telemetry Transport. • It is

    a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks.
  18. Temperature Sensor Laptop Smartphone MQTT Broker 25°C Publish Subscribe 25°C

    Publish Subscribe Publish Subscribe to topic “temperature” Publish to topic “temperature”
  19. • Low overhead • Low energy consumption • Based on

    TCP/IP • Support of WebSocket • Multiple implementations: Java/Python/C++ • Commercial and Open Source version
  20. • The Constrained Application Protocol (CoAP) is a specialized web

    transfer protocol for use with constrained nodes and constrained networks in the Internet of Things. • The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation. CoAP
  21. • Extensible Messaging and Presence Protocol (XMPP) is a communications

    protocol for message-oriented middleware based on XML (Extensible Markup Language). • It enables the near-real-time exchange of structured yet extensible data between any two or more network entities. Originally named Jabber.
  22. Protocol RESTful HTTP MQTT CoAP XMPP Transport TCP / IP

    TCP / IP UDP TCP / IP Messaging Request/Response Publish/Subscribe Request/Response Request/Response Publish/Subscribe Request/Response 2G, 3G, 4G Suitability (1000s nodes) Excellent Excellent Excellent Excellent LLN Suitability (1000s nodes) Fair Fair Excellent Fair Compute Resources 10Ks RAM/Flash 10Ks RAM/Flash 10Ks RAM/Flash 10Ks RAM/Flash Success Storied Smart Energy Profile 2 (premise energy management/home services) Extending enterprise messaging into IoT applications Utility Field Area Networks Remote management of consumer white goods Reference: http://blogs.cisco.com/digital/beyond-mqtt-a-cisco-view-on-iot-protocols
  23. Hardware Guide SoC (System on Chips) & SoM (System on

    Module) Electronic Components I/O Basics Hardware Ecosystem Android Things *Beacon Technology
  24. SoC: System on Chip • A System-on-a-Chip brings together all

    the necessary components of a computer into a single chip or integrated circuit.
  25. SoM: System on Module • System on module (SOM) is

    a type of single board computer that can be plugged into a carrier board/baseboard, or some motherboards. • Reduce the cost of the base board or the main PCB (Printed Circuit Boards) • Design-reuse, can be integrated into many embedded computer applications
  26. • Currents of 2 mA, 10 mA and 20 mA

    are common • Typically, the forward voltage of an LED is about 1.8–3.3 volts; it varies by the color of the LED. A RED LED typically drops 1.8 volts, but voltage drop normally rises as the light frequency increases, so a BLUE LED may drop around 3.3 volts. • To connect a LED to Arduino or Raspberry Pi: 5V - 2V / 0.02A = 150 ohm
  27. GPIO: General Purpose Input/Output • General Purpose Input/Output (GPIO) pins

    provide a programmable interface to read the state of a binary input device (such as a pushbutton switch) or control the on/off state of a binary output device (such as an LED).
  28. PCM: Pulse Code Modulation • Pulse-code modulation (PCM) is a

    method used to digitally represent sampled analog signals.
  29. PWM: Pulse Width Modulation • Pulse Width Modulation (PWM) is

    a common method used to apply a proportional control signal to an external device using a digital output pin. (e.g. servo motors, LCD display). It is a technique for getting analog results with digital means. • Frequency (expressed in Hz): describes how often the output pulse repeats. • Period is the time each cycle takes and is the inverse of frequency. • Duty cycle (expressed as a percentage) describes the width of the pulse within that frequency window.

  30. I2C: Inter-Integrated Circuit • The Inter-Integrated Circuit (IIC or I2C)

    bus connects simple peripheral devices with small data payloads. Sensors and actuators are common use cases for I2C. Examples include accelerometers, thermometers, LCD displays, and motor drivers. • I2C is a synchronous serial interface, relies on a shared clock signal to synchronize data transfer between devices. I2C devices connect using a 3-Wire interface consisting of: • SCL: Shared clock signal • SDA: Shared data line • GND: Common ground reference
  31. SPI: Serial Peripheral Interface • Serial Peripheral Interface (SPI) devices

    are typically found where fast data transfer rates are required. SPI is also a synchronous serial interface, it relies on a shared clock. • SPI supports full-duplex data transfer, meaning the master and slave can simultaneously exchange information. To support full-duplex transfer, the bus must provide the following separate signals, which makes SPI a minimum 4-Wire interface: • MOSI: Master Out Slave In • MISO: Master In Slave Out • CLK: Shared clock signal • GND: Common ground reference
  32. UART: Universal Asynchronous Receiver Transmitter • UART is a computer

    hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. • Complex peripheral devices such as GPS modules, LCD displays, and XBee radios typically use UART ports (often simply called serial ports) to communicate. • Unlike SPI and I2C, UART only supports point-to-point communication between two devices.
  33. • 3-Wire ports include data receive (RX), data transmit (TX),

    and ground reference (GND) signals. • 5-Wire ports add request to send (RTS) and clear to send (CTS) signals used for hardware flow control.
  34. Ideal for powerful, intelligent devices on the edge that need

    to be secure. Cameras
 HVAC Control
 Smart Meters Point of Sale
 Inventory Control
 Interactive Ads
 Vending Machines Security Systems
 Smart Doorbells
 Energy Monitors Asset Tracking
 Fleet Management
 Driver Assist
 Predictive Service
  35. Peripheral I/O APIs • APIs to communicate from your code

    with sensors and actuators, based on standard interfaces.
  36. Android Things Weather Station • A weather station that reads

    environmental temperature and pressure data from a BMP280 sensor, displays the latest reading on the Rainbow HAT, and send the data to a designated cloud service (Google Pub/Sub or AWS IoT). Reference: https://codelabs.developers.google.com/codelabs/androidthings-weatherstation/index.html