democratizing the internet of things

17
+ Democratizing IoT Internet of Things Development for Every Developer

Upload: adam-englander

Post on 22-Jan-2017

129 views

Category:

Technology


0 download

TRANSCRIPT

+

Democratizing IoT

Internet of Things Development for Every Developer

+Historical PerspectiveHow I came up with the hair-brained idea that everyone could do IoT development

+

NoDEbotS DayPut on by Suz Hinton and Pawel Szymczykowski

+

The LexicutionerDesigned a built using SumoBot Jr. (Pawelbot) by Adam Englander and Lexi Glazer

+

Physical Access SystemComprised of Raspberry Pi B, power converter, electronic door latch, inline switch. Software is Raspbian with Python 2.7 and Twisted.

+IoT Starter KitRaspberry Pi for the Win

+Starter Kit Hardware

Raspberry Pi Micro USB with AC converter for power Cat 5 network cable USB Keyboard HDMI cable HDMI capable display – not shown 3.3V LED with (2) female to female

connectors

+Starter Kit Software

Raspbian Pre-installed on SD card Download installer (requires SD card

reader): https://www.raspberrypi.org/downloads/

+Accessing GPIO From Linux Based SystemsIt’s so easy you won’t believe it

+General Purpose Input/Output (GPIO)

A generic pin on an integrated circuit (IC) whose behavior is controlled at runtime

Use to control and transfer data to and from external devices to the IC

Available on all general purpose IC boards

+ It’s All In The File System

Linux GPIO Sysfs Interface for Userspace

Root directory is at /sys/class/gpio Control Interfaces Pin Interfaces

+Control Interface

“export” creates a node to expose a GPIO port to the user space “echo 18 > /sys/class/gpio/export”

will create a gpio18 node at “/sys/class/gpio/gpio18”

“unexport” removes the node for a GPIO port from the user space “echo 18 >

/sys/class/gpio/unexport” removes the gpio18 node

+GPIO Signals

“direction” determines the direction of a pin. Valid values are “in” and “out”. “in” is used for interrupts “echo out > /sys/class/gpio/gpio18/direction”

will set GPIO pin 18 ’s direction as out “value” is the value of a pin. It reads a “0” or

“1”. Any on-zero value written will be interpreted as “1”. When reading the value ”high” evaluates to ”1” and “low” evaluates to “0” unless overridden by “active_low” “echo 1 > /sys/class/gpio/gpio18/value” sets

the value of GPIO 18 to “1” and closes the circuit

“cat /sys/class/gpio/gpio18/value” would return “1” after the statement above

+GPIO Signals Continued

“edge” is used to tell the GPIO when to write to ”value” when “direction” is “in”. Valid values are “none”, “rising”, ”falling”, and “both”. “echo both >

sys/class/gpio/gpio18/edge” will trigger an interrupt when voltage increases or decreases

“active_low” is used to invert the effect of “edge” of “value”. Valid values are “1`” and “0”. “1” inverts and “0” sets standard. “echo 1>

sys/class/gpio/gpio18/active_low” will invert the values of high and low

+Demo Time

+Contact Info

@adam_englander on Twitter [email protected] aenglander on Freenode aenglander on GitHub adamenglander on Linkedn