& Internet Of Things (IoT) Introduction

Introduction to Internet of Things

Do cool stuff...

Presented by LB Corney / @lb_corney

The Internet of things (IoT) is the inter-networking 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.

Let's look at...

  • Useful Devices, to Fill a Need
  • Prototyping Hardware
  • Software
  • $$ Costs $$

Useful Devices

Fill a Need

We are stuck with technology when what we really want is just stuff that works. - Douglas Adams

    The Good 'Ol Days

  • Use a computer
  • Add an expensive ISA or PCI plugin card
  • Programming Language (C/C++, Basic)
  • Digital Input/Output (I/O)
  • Analog Input/Output (A->D, D->A)
  • Control Clock
  • Data Storage
  • Understanding of Electronics to Obtain Best Results

    Automotive Vacuum Tester Project, 1990

  • Old IBM 286 PC
  • I/O board (Keithly Metrobyte)
  • Keithly Metrabyte Data IO Board
IBM 286 Computer
  • I/O board had a clock, would store data in buffer
  • Push from buffer to Computer
  • Analyse Data on Computer
  • Software written in QBasic

    Understand Electronics

  • Pull up / pull down resistors for switch input
  • Voltage dividers to set range of A->D devices to maximize resolution or speed
  • Understand how LED's work
  • Understand power needs, current capacity, safety requirements

Hardware Related Stuff

    Prototype Hardware -- Microprocessors

  • Parallax Basic Stamp
  • Arduino
  • Intel Edison
  • ARM Processors
  • BeagleBone
  • Parallax Propellor 8 RISC CPU cores
  • 8266
  • Raspberry Pi
  • C.H.I.P.

    Inputs

  • Switches + Dials
  • Touch Screens
  • Microphone (Alexa)
  • Camera (OpenCV)
  • Digital Signal

    Outputs

  • LEDS
  • Video Screens & Content
  • Audio
  • Digital Output
  • Electronic Communications
  • Motor Controller, including Stepper, PWM

    Sensors

  • Temperature
  • Light Sensors
  • Pulse Counters
  • Voltage(Analog->Digital)
  • Microphone
  • Still/Video Camera
  • Radar/Proximity
  • Hall Effect
  • RFID
  • Pressure Sensors
  • Strain Gauge
  • Magnetometer
  • Global Positioning System
  • Accelerometer
  • Gas Analyser
  • Breathalyser

Software Related Stuff

    Languages

  • C/C++
  • Basic
  • OS Bash / Script Language
  • JavaScript / Node
  • Python
  • Java
  • Anything that produces binary machine code for the target processor.

    Operating System (based on CPU)

  • Different Flavor of Linux
  • Raspbian (Lots of Support)
  • Debian ARM
  • Arduino
  • Android / RT Android
  • Ubuntu Mate
  • NodeMCU/Lua (8266)

    Programming Interface / Integrated Development Environment

  • Obviously a lot depends on what device you are using
  • Traditional IDE's for compiled code
  • Visual Studio great choice with GDB
  • Processor support for different IDE's
  • Arduino provides its own IDE, creates sketches
  • You can also go CLI and compile on device

    Digital Communications Protocols SPI & I²C

  • These protocols are designed to communicate between integrated circuits.
  • I²C (for ‘Inter-Integrated Circuit’, protocol) originally from Phillips, 1982
  • SPI (for ‘Serial Peripheral Interface’), originally from Motorola, 1979.
  • These specs are pretty easy to understand, and they can be very handy for some I/O devices

An emerging tool of interest is Node-RED.

Drag and Drop, High integration into all things mobile, including social media input/output, sigh. Seems to be a tool we're going to all see again.

Node Red

Node Red

Some Ideas

Pi-Hole

PI-HOLE™: A black hole for internet advertisements. Performs Network-wide ad blocking.

PiHole Screen Shot

Shock Watch

Arm processor, Accellerometer, GPS Sensor and UBlox Mobile Phone Module used to monitor over the road trucking loads.

Shock Watch

TIG Controller for Handicapped Welder

Speech to Text (STT) analysis engine... Jasper, PocketSphinx, or one of the online versions... use voice to manage devices. Utilize bluetooth headset for voice input

TIG Controller Schematic

OpenCV application

Cameras work on Raspberry Pi, Edison devices...Self driving Model Car?

Self Driving Model Car

Pirate Radio

Raspberry Pirate Radio

The I/O response rate from a Raspberry Pi is fast enough to operate as a radio broadcast station. Check out this video.

Garage Door Monitor

Garage Door

Garage Door Monitor

Start small, this is perfect for an 8266 device. 32-bit RISC CPU: running at 80 MHz* 64 KB of instruction RAM, 96 KB of data RAM, 512 KB to 4 MB* flash memory with 802.11 b/g/n Wi-Fi built in, power amplifier, network WEP or WPA/WPA2 authentication, with 16 GPIO pins SPI, I²C, one 10bit A->D Cost: $5.87

Home Network Plex Server

All your movie, TV Show, music and photo collections at your fingertips, on the devices you love. Plex manages it all for you. Add a powered USB hard drive to a raspberry Pi and you are all set!

Plex 1
Plex 2

Dynamic Artwork

You can do some pretty amazing things with motors, servos, and LED's. Check out NeoPixels (WS2812 Integrated Light Source)!

Plex 1

Raspberry Pi Smart Mirror

Use a Raspberry Pi, with a see through mirror, with an old monitor behind the mirror. Raspberry Pi will broadcast weather, local news, items of interest...Check out this video.

Raspberry Pi Smart Mirror

Smart Mirror

Nintendo Emulator

RetroPie: RetroPie allows you to turn your Raspberry Pi into a retro-gaming machine. See also the github repository.

Super Nintendo

Nintendo One

RetroPie

Nintendo two

Lessons Learned...

  • Start small, learn in small steps.
  • Code base and hardware changes quickly.
  • Don't be surprised that stuff may not work the first time.
  • Analyse power needs carefully. Understand electrical loads.
  • Monitor CPU temperature!
  • Developers, enhance your potential: OpenCV, Audio STT & TTS, Node-RED
  • Have fun!

Links

Questions, Comments?

Reveal.JS presenter tool & documentation