1st Edition

Smart Computing with Open Source Platforms

By Amartya Mukherjee, Nilanjan Dey Copyright 2019
    262 Pages 66 B/W Illustrations
    by CRC Press

    208 Pages
    by CRC Press

    Focuses on the concept of open source prototyping and product development and designing sensor networks and covers IoT base applications

    This book will serves as a single source of introductory material and reference for programming smart computing and Internet of Things (IoT) devices using Arduino with the use of Python

    It covers number of comprehensive DIY experiments through which the reader can design various intelligent systems

    Introduction

    Chapter 1: Introduction to Open Source Hardware

      1. Open source Hardware concept
      2. Arduino Ecosystem and types
      3. Feature of Arduino Hardware
      4. Feature of Arduino Software
      5. How to setup
      6. Arduino development community and social coding
      7. Concept covered in this chapter

    Chapter 2: Arduino Hardware

    2.1 System Architecture

    2.2 The Microcontrollers

    2.3 Arduino Interrupts

    2.4 Peripheral Device Interfacing

    2.5 Concept covered in this chapter

    Chapter3: Data types, Operators and Expressions

    3.1 Primitive data types

    3.2 User defined data types

    3.3 Declaration of variable

    3.4 Operators

    3.5 Precedence and Associativity

    3.6 Concept covered in this chapter

    Chapter 4: Functions in Arduino

    4.1 ‘setup ()’ and ‘loop ()’ functions

    4.2 user defined functions

    4.3 recursive function calls

    4.4 Library

    4.5 Concept covered in this chapter

    Chapter 5: Conditional statements

    5.1 ‘if-else’ conditional statements

    5.2 ‘switch-case’ statement

    5.3 Loops in Arduino

    5.4 while() and do-while()

    5.5 ‘loop()’ in Arduino

    5.6 Concept covered in this chapter

    Chapter 6: Arduino Input Systems

    6.1 ‘pinMode()’ function

    6.2 INPUT and INPUT_PULLUP configuration

    6.3 ‘digitalRead()’ function

    6.4 ‘analogRead()’ function

    6.5 Inputs for Firmata Library

    6.6 Input device interfacing

    6.7 Concept covered in this chapter

    Chapter 7: Arduino Output Systems

    7.1 ‘digitalWrite()’ function

    7.2 ‘analogWrite()’ function

    7.3 An Input Output example

    7.4 Concept Covered in this chapter

    Chapter 8: Arduino with Processing

    8.1 Overview of Processing Language

    8.2 Code Structure

    8.3 Libraries and Functions

    8.4 Visualization of LDR output

    8.5 Interaction with Arduino and Firmata

    8.6 Mouse handling in processing

    8.7 Colors in processing

    8.8 Concept covered in this chapter

    Chapter 9: Real life Code Examples

    9.1 Automated Rail Gate Control

    9.2 Arduino based heart rate monitoring system

    9.3 LPG Leakage Detectors

    9.4 Conclusion

    9.5 Concept covered in this chapter

    Chapter 10: Introduction to Python language

    10.1 Features of Python language

    10.2 Python Versions

        1. Python Installation
        2. Writing some basic programs
        3. Installation using pip

    10.6 Concept covered in this chapter

    Chapter 11: Operators, variable and expressions

    11.1 Operators in Python

    11.1.7 Assignment Operator

    11.2 Clearing the screen of console

    11.3 Concept covered in this chapter

    Chapter 12: Decision and control flow

    12.1 ‘if’ statement

    12.2 ‘if elif else’ ladder=

    12.3 Loops in Python

    12.4 Concept covered in this chapter

    Chapter 13: Functions in Python

    13.1 Standard rule of definition

    13.2 Function invocation

    13.3 Keyword argument concept

    13.4 Lambda function

    13.5 Modules in Python

    13.6 Package in Python

    13.7 reload(), global() and local()

    13.8 Concept covered in this chapter

    Chapter 14: More Examples on Modules and Functions with APIs

    14.1 Accessing .CSV file

    14.2 Parsing JSON data

    14.3 Working with MongoDB

    14.4 MongoDB client Management Tools

    14.5 Concept Covered in this chapter

    Chapter 15: Implementation of Data Structures

    15.1 List in Python

    15.2 Tuples in Python

    15.3 Dictionary structure

    15.4 Sorting of the data structure

    15.5 Date and Time in Python

    15.6 Strings in Python

    15.7 Concept covered in this chapter

    Chapter 16: Object Oriented Programming in Python

    16.1 Classes in Python

    16.2 Constructor

    16.3 Creation of methods in class

    16.4 Polymorphism in Python

    16.5 Inheritance concept

    16.6 Method overriding concept

    16.7 Concept covered in this chapter

    Chapter 17: Input and Output in Python

    17.1 Using input and raw_input function

    17.2 File input output

    17.3 attributes of file objects

    17.4 close() operation

    17.5 Reading and Writing a file

    17.6 the tell() method

    17.7 seek method

    17.8 Command line argument in Python

    17.9 Concept covered in this chapter

    Chapter 18: Exception Handling in Python

    18.1 Syntax error vs exception

    18.2 Handling Exception

    18.3 Concept covered in this chapter

    Chapter19: Graphical User Interface in Python

    19.1 Introduction to TkInter

    19.2 Core component classes

    19.3 Concept covered in this chapter

    Chapter20: Python API for Machine Learning and Arduino

    20.1 Installation of the packages

    20.2 SciPy and NumPy packages

    20.3 Introduction to Matplotlib

    20.4 Overview of SciPy

    20.5 Machine learning tools

    20.6 Arduino API for Python

    20.7 Concept covered in this chapter

    Chapter21: More on Machine Learning API

    21.1 Scikit Learn

    21.2 Deep learning tools

    21.3 Concept covered in this chapter

    Chapter 22: Conclusion

    22.1 Chapters 1 & 2 Illustration

    22.2 Chapter 3, 4 and 5 illustration

    22.3 Chapters 6 to 9

    22.4 Chapters 10 to 21

    22.5 Future scope and enhancement of the book

    Frequently Asked Questions

    References

    Biography

    Dr. Nilanjan Dey is an Assistant Professor in Department of Information Technology at Techno India College of Technology, Kolkata, India. He was an honorary visiting Scientist at Global Biomedical Technologies Inc., CA, USA and an associated Member of University of Reading, London, UK . He has authored/edited more than 40 books with Elsevier, Wiley, CRC Press and Springer etc., and published more than 300 research articles.  He is the Editor-in-Chief of International Journal of Ambient Computing and Intelligence, IGI Global, USA. He is the Series Co-Editor of Springer tracts in nature-inspired computing, Springer Nature, Advances in Ubiquitous Sensing Applications for Healthcare, Elsevier,  Intelligent Signal processing and data analysis, CRC Press. He is an Associated Editor of IEEE Access.

    His main research interests include Medical Imaging, machine learning, data mining etc.  Recently, he is awarded as one among the top 10 most published and cited academics in the field of Computer Science in India during the period of consideration 2015-17.

    Mr. Amartya Mukherjee, M.Tech, is an assistant professor at the Institute of Engineering and Management, Salt Lake, Kolkata, India. He holds a bachelor's degree in computer science and engineering from West Bengal University of Technology and a master's degree in computer science and engineering from the National Institute of Technology, Durgapur, West Bengal, India. His primary research interest is in embedded application development, including mobile ad hoc networking, aerial robotics, and Internet of Things and machine learning. He has written several research articles in the field of wireless networking and embedded systems. His book Embedded systems and robotics with open source tools is one of the bestselling books in the field of embedded application development.