This book is about the Arduino microcontroller and the Arduino concept. The visionary Arduino team of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis launched a new innovation in microcontroller hardware in 2005, the concept of open-source hardware. Their approach was to openly share details of microcontroller-based hardware design platforms to stimulate the sharing of ideas and promote innovation. This concept has been popular in the software world for many years. In June 2019, Joel Claypool and I met to plan the fourth edition of Arduino Microcontroller Processing for Everyone! Our goal has been to provide an accessible book on the rapidly evolving world of Arduino for a wide variety of audiences including students of the fine arts, middle and senior high school students, engineering design students, and practicing scientists and engineers. To make the book even more accessible to better serve our readers, we decided to change our approach and provide a series of smaller volumes. Each volume is written to a specific audience. This book, Arduino III: Internet of Things, explores Arduino applications in the fascinating and rapidly evolving world of the Internet of Things. Arduino I: Getting Started provides an introduction to the Arduino concept. Arduino II: Systems, is a detailed treatment of the ATmega328 processor and an introduction to C programming and microcontroller-based systems design.
Author(s): Steven F Barrett
Series: Synthesis Lectures on Digital Circuits and Systems
Publisher: Morgan & Claypool
Year: 2021
Language: English
Pages: 237
Preface
Acknowledgments
Getting Started
Overview
The Big Picture
Arduino Quick Start
Quick Start Guide
Arduino Development Environment Overview
Sketchbook Concept
Arduino Software, Libraries, and Language References
Writing an Arduino Sketch
Arduino UNO R3 Processing Board
Arduino UNO R3 Open Source Schematic
Arduino UNO R3 Host Processor–The ATmega328
ATmega328 Memory
ATmega328 Port System
ATmega328 Internal Systems
Interfacing to Other Devices
Application
Summary
References
Chapter Problems
The Internet and IoT
Overview
A Big Picture of the Internet
Brief History
Internet Protocol Models
Internet Addressing Techniques
IPv4 Header
CIDR Addressing
IPv6 Header
MAC Address
DNS and URL Addressing
Internet Hardware
Cybersecurity
Internet of Things (IoT)
Information Technology vs. Operational Technology
Operational Technology
IoT Architecture
IoT Technology
Industrial Internet of Things (IIoT)
IoT and IIoT Security
Application 1: Exploration of the Ethernet
Application 2: Exploration with the Arduino Oplà IoT Kit
Application 3: Exploration of the MKR WiFi 1010 with the Ethernet
Application 4: Exploration of the Arduino UNO WiFi Rev 2 with the Ethernet
Summary
References
Chapter Problems
Connectivity
Overview
Serial Communications
Serial Communication Terminology
Near Field Communication
Serial USART
System Overview
Programming in Arduino
System Operation and Programming in C
Serial Peripheral Interface (SPI)
SPI Operation
Registers
SPI Programming in the Arduino Development Environment
SPI Programming in C
Example: LED Strip
Two-Wire Serial Interface
TWI Programming Arduino Development Environment
TWI Programming in C–TWI Compatible LCD
Radio Frequency (RF) Communications Theory
Bluetooth
BT Hardware and Communications
Zigbee
Sparkfun XBee3 Wireless Kit
Cellular Microcontroller Communications
Adafruit 2G FONA 800
Sparkfun LTE Shield
Application: Near Field Communications (NFC)
Summary
References
Chapter Problems
Application: IoT Greenhouse
Objective
Aside: Local vs. Remote Operation
Greenhouse Theory
Greenhouse Instrumentation System
Solar Power System
Weather Station
Structure Chart
Circuit Diagram
Bottom-Up Implementation
UML Activity Diagram
Microcontroller Code
Final Assembly
Greenhouse Control
Application: Exploration with MKR IoT Bundle
Summary
References
Chapter Problems
Programming the ATmega328
ISP Hardware and Software Tools
ImageCraft JumpStart C for AVR Compiler Download, Installation, and ATmega328 Programming
Atmel Studio Download, Installation, and ATmega328 Programming
Author's Biography
Index