Beginning Data Science, IoT, and AI on Single Board Computers.pdf

This preview shows page 1 out of 323 pages.

Unformatted text preview: TECHNOLOGY IN AC TION™ Beginning Data Science, IoT, and AI on Single Board Computers Core Skills and Real-World Application with the BBC micro:bit and XinaBox — Philip Meitiner Pradeeka Seneviratne Beginning Data Science, IoT, and AI on Single Board Computers Core Skills and Real-World Application with the BBC micro:bit and XinaBox Philip Meitiner Pradeeka Seneviratne Beginning Data Science, IoT, and AI on Single Board Computers: Core Skills and Real-World Application with the BBC micro:bit and XinaBox Philip Meitiner Yorkshire, UK Pradeeka Seneviratne Udumulla, Mulleriyawa, Sri Lanka ISBN-13 (pbk): 978-1-4842-5765-4 ISBN-13 (electronic): 978-1-4842-5766-1 Copyright © 2020 by Philip Meitiner, Pradeeka Seneviratne This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Natalie Pao Development Editor: James Markham Coordinating Editor: Jessica Vakili Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit . Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit . apress.com/rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at . Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at 978-1-4842-5765-4. For more detailed information, please visit source-code. Printed on acid-free paper Table of Contents About the Authors��������������������������������������������������������������������������������ix Foreword���������������������������������������������������������������������������������������������xi Chapter 1: Introducing Data Science���������������������������������������������������1 1.1 Introducing Data Science��������������������������������������������������������������������������������2 1.2 Using Temperature������������������������������������������������������������������������������������������3 1.3 Measuring Temperature����������������������������������������������������������������������������������4 1.4 Controlling Data����������������������������������������������������������������������������������������������6 1.5 Understanding the Tools���������������������������������������������������������������������������������9 1.6 Data Quality���������������������������������������������������������������������������������������������������10 1.7 Data Capturing����������������������������������������������������������������������������������������������11 1.8 Experimenting with Temperature������������������������������������������������������������������14 1.9 Analyzing Our Results�����������������������������������������������������������������������������������16 1.10 Summary����������������������������������������������������������������������������������������������������21 Chapter 2: Data Science Goes Digital�������������������������������������������������23 2.1 Making It Digital��������������������������������������������������������������������������������������������23 2.2 Measuring Temperature Digitally������������������������������������������������������������������24 2.3 Building Digital Tools�������������������������������������������������������������������������������������26 2.4 Using the BBC micro:bit As a Thermometer��������������������������������������������������27 2.5 Coding Guidelines Used in This Book������������������������������������������������������������28 2.6 Using the micro:bit Code Editors�������������������������������������������������������������������28 iii Table of Contents 2.7 Using the “No-Code” Option�������������������������������������������������������������������������29 2.8 Coding the micro:bit Thermometer���������������������������������������������������������������29 2.9 Comparing Analog and Digital Thermometers����������������������������������������������33 2.10 Analysis�������������������������������������������������������������������������������������������������������35 2.11 Why the micro:bit?��������������������������������������������������������������������������������������37 2.12 What Kit Do We Need?��������������������������������������������������������������������������������39 2.13 Selecting Our Toolkit�����������������������������������������������������������������������������������41 2.14 Guide to Hardware Requirements���������������������������������������������������������������45 2.15 Summary����������������������������������������������������������������������������������������������������48 Chapter 3: Experimenting with Weather���������������������������������������������49 3.1 Introduction���������������������������������������������������������������������������������������������������49 3.2 Measuring Weather���������������������������������������������������������������������������������������50 3.3 Choosing the Data to Measure���������������������������������������������������������������������51 3.4 Experimenting with Weather�������������������������������������������������������������������������54 3.5 Building Our Weather Station Tool�����������������������������������������������������������������56 3.6 Coding Our Weather Station��������������������������������������������������������������������������59 3.7 Upgrading the Display�����������������������������������������������������������������������������������66 3.8 Experimental Design�������������������������������������������������������������������������������������68 3.9 Visualizing the Data We Collected�����������������������������������������������������������������69 3.10 Analyzing the Data We Collected�����������������������������������������������������������������74 3.11 Summary����������������������������������������������������������������������������������������������������77 Chapter 4: Working with Large Data Sets�������������������������������������������79 4.1 Experimental Design�������������������������������������������������������������������������������������80 4.2 Using the micro:bit As a File Storage Device������������������������������������������������81 4.3 Accessing Files on the micro:bit�������������������������������������������������������������������84 4.4 Transferring Files onto a Computer���������������������������������������������������������������85 iv Table of Contents 4.5 Hardware Requirements�������������������������������������������������������������������������������86 4.6 Storing Sensor Data in a File������������������������������������������������������������������������87 4.7 Measuring How Many Data Points We Can Store������������������������������������������91 4.8 Replicating the Weather Station Experiment with File Storage�������������������99 4.9 Addressing Memory Limitations�����������������������������������������������������������������102 4.10 Expanding Data Storage Capacity�������������������������������������������������������������103 4.11 Summary��������������������������������������������������������������������������������������������������103 Chapter 5: Introduction to Data Analysis������������������������������������������105 5.1 Expanding Our Analysis Tools���������������������������������������������������������������������105 5.2 Software for Data Analysis��������������������������������������������������������������������������106 5.3 Selecting a Spreadsheet Program��������������������������������������������������������������107 5.4 Measuring Correlation���������������������������������������������������������������������������������109 5.5 Calculating Correlation Scores��������������������������������������������������������������������111 5.6 Understanding a Correlation Coefficient/Score�������������������������������������������115 5.7 Calculating the Correlation Score for Weather Data�����������������������������������116 5.8 Using Other Analysis Functions�������������������������������������������������������������������118 5.9 Using Visualization Tools�����������������������������������������������������������������������������120 5.10 Reporting��������������������������������������������������������������������������������������������������122 5.11 Statistical Significance�����������������������������������������������������������������������������123 5.12 Summary��������������������������������������������������������������������������������������������������126 Chapter 6: Introducing IoT to Data Science�������������������������������������127 6.1 The Weakness in Our Data Science Toolkit�������������������������������������������������127 6.2 Internet of Things Overview������������������������������������������������������������������������128 6.3 Anatomy of the Cloud����������������������������������������������������������������������������������132 6.4 Transferring Data from a micro:bit��������������������������������������������������������������135 6.5 Wireless Communication Options for IoT����������������������������������������������������136 v Table of Contents 6.6 Transmitting Data Using a Serial Connection����������������������������������������������138 6.7 Summary����������������������������������������������������������������������������������������������������140 Chapter 7: Using Bluetooth for Data Science������������������������������������141 7.1 What Is Bluetooth?��������������������������������������������������������������������������������������141 7.2 Why Use Bluetooth?������������������������������������������������������������������������������������143 7.3 Using BLE on micro:bit��������������������������������������������������������������������������������144 7.4 Building a BLE Weather Station with Bluetooth UART���������������������������������146 7.5 Using the Serial Bluetooth Terminal App�����������������������������������������������������148 7.6 Coding the BLE Weather Station�����������������������������������������������������������������149 7.7 Other Options for BLE on micro:bit�������������������������������������������������������������153 7.8 Summary����������������������������������������������������������������������������������������������������153 Chapter 8: Investigating the micro:bit Radio������������������������������������155 8.1 Standards Are Important����������������������������������������������������������������������������155 8.2 Using Radio for Input/Output�����������������������������������������������������������������������156 8.3 Using Radio to Build a Network������������������������������������������������������������������157 8.4 Choosing MakeCode or MicroPython����������������������������������������������������������158 8.5 MakeCode Radio Groups�����������������������������������������������������������������������������159 8.6 Nodes and a Collector���������������������������������������������������������������������������������161 8.7 Building the Nodes��������������������������������������������������������������������������������������162 8.8 Building the Server/Collector����������������������������������������������������������������������166 8.9 Summary����������������������������������������������������������������������������������������������������174 Chapter 9: Using Wi-­Fi to Connect to the Internet����������������������������175 9.1 Defining Our IoT Weather Station����������������������������������������������������������������176 9.2 Building Our Wi-Fi Weather Station�������������������������������������������������������������176 9.3 Updating Firmware�������������������������������������������������������������������������������������179 9.4 Choosing an IoT Platform����������������������������������������������������������������������������180 vi Table of Contents 9.5 Setting Up the IoT Platform�������������������������������������������������������������������������184 9.6 Adding Our Weather Station to the IoT Platform�����������������������������������������186 9.7Visualizing Data in the IoT Platform�����������������������������������������������������������191 9.8 Coding Our Wi-Fi Weather Station���������������������������������������������������������������196 9.9 Powering and Running the Weather Station�����������������������������������������������204 9.10 Viewing the Data Visualizations����������������������������������������������������������������207 9.11 Summary��������������������������������������������������������������������������������������������������209 Chapter 10: Introduction to Machine Learning and Artificial Intelligence������������������������������������������������������������������������211 10.1 Artificial Intelligence���������������������������������������������������������������������������������212 10.2 AI/ML?�������������������������������������������������������������������������������������������������������214 10.3 ML/AI and Data Science����������������������������������������������������������������������������215 10.4 Thinking Like a Machine���������������������������������������������������������������������������218 10.5 Experimental Design���������������������������������������������������������������������������������218 10.6 Hardware Requirements���������������������������������������������������������������������������220 10.7 Software����������������������������������������������������������������������������������������������������223 10.8 Using  the Hardware����������������������������������������������������������������������������������224 10.9 Analyzing the Data������������������������������������������������������������������������������������226 10.10 Comparing  Humans and Machines���������������������������������������������������������230 10.11 Summary������������������������������������������������������������������������������������������������232 Chapter 11: Using ML Services���������������������������������������������������������233 11.1 Defining Our IoT Application����������������������������������������������������������������������233 11.2 Choosing an IoT Service Provider�������������������������������������������������������������234 11.3 Setting Up Microsoft Azure: Cloud Computing Services���������������������������235 11.4 Creating an IoT Hub Using Azure Portal����������������������������������������������������236 vii Table of Contents 11.5 Setting Up a Weather Prediction Model in Azure Machine Learning Studio�����������������������������������������������������������������������������������������242 11.6 Creating a Workflow Using Azure Logic Apps�������������������������������������������251 11.7 Setting Up the workflow���������������������������������������������������������������������������254 11.8 Testing the Workflow���������������������������������������������������������������������������������271 11.9 Summary��������������������������������������������������������������������������������������������������273 Chapter 12: Connecting an Edge Device to the IoT Application��������275 12.1 Choosing the Hardware�����������������������������������������������������������������������������275 12.2 The Role of the Edge Device���������������������������������������������������������������������277 12.3 Building the Edge Device��������������������������������������������������������������������������278 12.4 Coding the Edge Device����������������������������������������������������������������������������279 12.5 Using the Edge Device������������������������������������������������������������������������������284 12.6 Improving the Edge Device�����������������������������������������������������������������������285 12.7 Peering Under the Hood of the IoT Application�����������������������������������������285 12.8 Data Analysis��������������������������������������������������������������������������������������������290 12.9 Summary��������������������������������������������������������������������������������������������������292 Chapter 13: Consolidating our Learnings�����������������������������������������295 13.1 Am I a Data Scientist?�������������������������������������������������������������������������������295 13.2 Becoming a Data Scientist������������������������������������������������������������������������296 13.3 Debunking Some Myths����������������������������������������������������������������������������297 13.4 Extrapolating Learnings����������������������������������������������������������������������������300 13.5 Applying Our Knowledge to Different Builds���������������������������������������������304 13.6 Ethical Considerations������������������������������������������������������������������������������306 13.7 Summary��������������������������������������������������������������������������������������������������308 Index�������������������������������������������������������������������������������������������������309 viii About the Authors Philip Meitiner graduated from the University of Kwa-Zulu Natal with a social science degree and education diploma, and began his career teaching mathematics and lecturing psychology to tertiary level disadvantaged students. After three years in education he spent a decade in market research, and still talks about being THE authority on the intricacies of the washing powder market in South Africa in the 1990s. After a brief stint as a freelance programmer, he spent the 2000s as a project manager in web design agencies until twice being made redundant during the great crash. Philip then moved into consultancy, initially software development, until he was approached by the BBC and asked to be program manager on the BBC micro:bit project. After the successful delivery of this epi...
View Full Document

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture