Mastering Arduino A project-based approach to electronics, circuits, and programming Jon Hoffman BIRMINGHAM - MUMBAI Mastering Arduino Copyright © 2018 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 or its dealers and distributors, will be held liable for any damages caused or alleged to have been 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. Acquisition Editor: Ben Renow-Clarke, Suresh Jain Project Editor: Radhika Atitkar Content Development Editor: Alex Sorentinho Technical Editor: Gaurav Gavas Proofreader: Safis Editing Indexer: Tejal Daruwale Soni Graphics: Tom Scaria Production Coordinator: Sandip Tadge First published: September 2018 Production reference: 1270918 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78883-058-4 www.packt.com I would like to thank my wife, Kim; without her support none of my books would have been possible. I would also like to thank my two daughters who have both been my inspiration and driving force since the days they were born. -Jon Hoffman Packt Upsell mapt.io Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website. Why subscribe? Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals Improve your learning with Skill Plans built especially for you Get a free eBook or video every month Mapt is fully searchable Copy and paste, print, and bookmark content packt.com Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks. Contributors About the author Jon Hoffman has over 25 years of experience in the field of Information Technology. Over those years, Jon worked in the areas of System Administration, Network Administration, Network Security, Application Development, and Architecture. Currently, Jon works as an Enterprise Software Manager for Syntech Systems. Jon has developed extensively for the iOS platform since 2008. This includes several apps that he has published in App Store, apps that he wrote for third parties and numerous enterprise applications. What really drives Jon is the challenges in the Information Technology field, and there is nothing more exciting to him than overcoming a challenge. Some of Jon’s other interests are baseball and basketball. Jon also really enjoys TaeKwonDo, where he and his oldest daughter earned their Black Belts together early in 2014. Kim (his wife) earned her Black Belt at the end of 2014. About the reviewers Dr. Pratik Desai is a computer scientist and an engineering leader. His fields of expertise include the Internet of Things, Artificial Intelligence, and Connected Cars. He is a pioneer researcher in IoT and the published author of Python Programming for Arduino. In his spare time, Pratik likes tinkering with sensors and working on Python projects. Ejike is a developer with a serious love of sharing his skills and knowledge with his fellow developers and beginners in the industry. He has spent his few years as a lead instructor in computer programming and has enjoyed the most part of his life doing live trainings with over hundreds of students. Ejike derives joy in building the next generation of software and hardware developers who do amazing things in the industry today. He led the team of developers who participated in Forbes' Under 30 Change the World Challenge, judged by a panel of professionals at the Wharton school of the university of Pennsylvania in 2015. His love for computer programming in his early stage in life got Ejike into Java, C, C#, C++, Python, MikroC, Arduino, and lots of other programming languages and embedded system designs. He began to think that he is crazy until I started developing advance projects for clients and getting amazing job offers from reputable companies across America, Asia, and Africa. The worst part of Ejike’s life as a software developer is seeing himself coding always in his dreams. The best part of his life as a developer is NOT building advanced and complicated projects with different programming languages combine together, but, building the next generation of developers and seeing them excel in the industry like him and other senior developers around him. He is always happy each time his students get across to him to tell him how they successfully got employed by one reputable firm or the other, and how they pick up fast in their respective companies to become senior developers with mouth-watering salaries! Ejike’s courses are one of the most comprehensive ones in the market today! Packt is searching for authors like you If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.