Internet of Things with Python
Table of Contents
Internet of Things with Python
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
eBooks, discount offers, and more
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Understanding and Setting up the Base IoT Hardware
Understanding the Intel Galileo Gen 2 board and its components
Recognizing the Input/Output and the Arduino 1.0 pinout
Recognizing additional expansion and connectivity capabilities
Understanding the buttons and the LEDs
Checking and upgrading the board's firmware
Test your knowledge
Summary
2. Working with Python on Intel Galileo Gen 2
Setting up the board to work with Python as the programming language
Retrieving the board's assigned IP address
Connecting to the board's operating system
Installing and upgrading the necessary libraries to interact with the board
Installing pip and additional libraries
Invoking the Python interpreter
Test your knowledge
Summary
3. Interacting with Digital Outputs with Python
Turning on and off an onboard component
Prototyping with breadboards
Working with schematics to wire digital outputs
Counting from 1 to 9 with LEDs, Python code and the mraa library
Taking advantage of object-oriented code to control digital outputs
Improving our object-oriented code to provide new features
Isolating the pin numbers to improve wirings
Controlling digital outputs with the wiring-x86 library
Test your knowledge
Summary
4. Working with a RESTful API and Pulse Width Modulation
Printing numbers in LEDs with a RESTful API
Composing and sending HTTP requests
Wiring pins with PWM capabilities
Using PWM to generate analog values
Generating analog values via HTTP requests
Preparing the RESTful API for Web application requirements
Using PWM plus a RESTful API to set colors for an RGB LED
Controlling PWM with the wiring-x86 library
Test your knowledge
Summary
5. Working with Digital Inputs, Polling and Interrupts
Understanding pushbuttons and pullup resistors
Wiring digital input pins with pushbuttons
Reading pushbutton statuses with digital inputs and the mraa library
Reading pushbutton statuses and running a RESTful API
Reading digital inputs with the wiring-x86 library
Using interrupts to detect pressed pushbuttons
Test your knowledge
Summary
6. Working with Analog Inputs and Local Storage
Understanding the analog inputs
Wiring an analog input pin with a voltage source
Measuring voltage with analog inputs and the mraa library
Wiring a photoresistor to an analog input pin
Determining the darkness level with analog inputs and the mraa library
Firing actions when the environment light changes
Controlling analog inputs with the wiring-x86 library
Logging to files in the local storage
Working with USB attached storage
Test your knowledge
Summary
7. Retrieving Data from the Real World with Sensors
Understanding sensors and their connection types
Working with accelerometers
Wiring an analog accelerometer to the analog input pins
Measuring three axis acceleration with an analog accelerometer
Wiring a digital accelerometer to the I2C bus
Measuring three axis acceleration with a digital accelerometer
Using the I2C bus to control a digital accelerometer with the mraa library
Wiring an analog temperature sensor
Measuring ambient temperature with an analog sensor
Wiring a digital temperature and humidity sensor to the I2C bus
Measuring temperature and humidity with a digital sensor
Test your knowledge
Summary
8. Displaying Information and Performing Actions
Understanding LCD displays and their connection types
Wiring an LCD RGB backlight to the I2C bus
Displaying text on an LCD display
Wiring an OLED dot matrix to the I2C bus
Displaying text on an OLED display
Wiring a servo motor
Positioning a shaft to indicate a value with a servo motor
Test your knowledge
Summary
9. Working with the Cloud
Publishing data to the cloud with dweepy
Building a web-based dashboard with Freeboard
Sending and receiving data in real-time through Internet with PubNub
Publishing messages with commands through the PubNub cloud
Working with bi-directional communications
Publishing messages to the cloud with a Python PubNub client
Using MQTT with Mosquitto and Eclipse Paho
Publishing messages to a Mosquitto broker with a Python client
Test your knowledge
Summary
10. Analyzing Huge Amounts of Data with Cloud-based IoT Analytics
Understanding the relationship between Internet of Things and Big Data
Understanding the Intel IoT Analytics structure
Setting up devices in Intel IoT Analytics
Setting up components in Intel IoT Analytics
Collecting sensor data with Intel IoT Analytics
Analyzing sensor data with Intel IoT Analytics
Triggering alerts with rules in Intel IoT Analytics
Test your knowledge
Summary
A. Exercise Answers
Chapter 1, Understanding and Setting up the Base IoT Hardware
Chapter 2, Working with Python on Intel Galileo Gen 2
Chapter 3, Interacting with Digital Outputs with Python
Chapter 4, Working with a RESTful API and Pulse Width Modulation
Chapter 5, Working with Digital Inputs, Polling and Interrupts
Chapter 6, Working with Analog Inputs and Local Storage
Chapter 7, Retrieving Data from the Real World with Sensors
Chapter 8, Displaying Information and Performing Actions
Chapter 9, Working with the Cloud
Chapter 10, Analyzing Huge Amounts of Data with Cloud-based IoT Analytics
Index
Internet of Things with Python
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: May 2016
Production reference: 1170516
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78588-138-1
www.packtpub.com
Author
GastĂłn C. Hillar
Reviewer
Navin Bhaskar
Commissioning Editor
Kartikey Pandey
Acquisition Editor
Reshma Raman
Content Development Editor
Divij Kotian
Technical Editor
Nirant Carvalho
Copy Editor
Sneha Singh
Project Coordinator
Nikhil Nair
Proofreader
Safis Editing
Indexer
Hemangini Bari
Graphics
GastĂłn C. Hillar
Jason Monteiro
Production Coordinator
Shanta...