1st Edition
Smart Computing with Open Source Platforms
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
- Open source Hardware concept
- Arduino Ecosystem and types
- Feature of Arduino Hardware
- Feature of Arduino Software
- How to setup
- Arduino development community and social coding
- 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
- Python Installation
- Writing some basic programs
- 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.