Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Internet of Things with Python

You're reading from   Internet of Things with Python Create exciting IoT solutions

Arrow left icon
Product type Paperback
Published in May 2016
Publisher Packt
ISBN-13 9781785881381
Length 388 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Gaston C. Hillar Gaston C. Hillar
Author Profile Icon Gaston C. Hillar
Gaston C. Hillar
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Understanding and Setting up the Base IoT Hardware FREE CHAPTER 2. Working with Python on Intel Galileo Gen 2 3. Interacting with Digital Outputs with Python 4. Working with a RESTful API and Pulse Width Modulation 5. Working with Digital Inputs, Polling and Interrupts 6. Working with Analog Inputs and Local Storage 7. Retrieving Data from the Real World with Sensors 8. Displaying Information and Performing Actions 9. Working with the Cloud 10. Analyzing Huge Amounts of Data with Cloud-based IoT Analytics A. Exercise Answers Index

Reading pushbutton statuses with digital inputs and the mraa library


We will create a new PushButton class to represent a pushbutton connected to our board that can use either a pull-up or a pull-down resistor. The following lines show the code for the new PushButton class that works with the mraa library. The code file for the sample is iot_python_chapter_05_01.py.

import mraa
import time
from datetime import date

class PushButton:
    def __init__(self, pin, pull_up=True):
        self.pin = pin
        self.pull_up = pull_up
        self.gpio = mraa.Gpio(pin)
        self.gpio.dir(mraa.DIR_IN)

    @property
    def is_pressed(self):
        push_button_status = self.gpio.read()
        if self.pull_up:
            # Pull-up resistor connected
            return push_button_status == 0
        else:
            # Pull-down resistor connected
            return push_button_status == 1

    @property
    def is_released(self):
        return not self.is_pressed

We have to specify the pin...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image