The Internet of Things (IoT) is a new concept in intelligent automation and intelligent monitoring using the Internet as the communications medium. The “Things” in IoT usually refer to devices that have unique identifiers and are connected to the Internet to exchange information with each other. Such devices usually have sensors and/or actuators that can be used to collect data about their environments and to monitor and control their environments. The collected data can be processed locally or it can be sent to centralized servers or to the cloud for remote storage and processing. For example, a small device at the size of a matchbox can be used to collect data about the temperature, relative humidity and the atmospheric pressure. This data can be sent and stored in the cloud. Anyone with a mobile device can then access and monitor this data at any time and from anywhere on Earth provided there is Internet connectivity. In addition, users can for example, adjust the central heating remotely using their mobile devices and accessing the cloud.
This book is written for students, for practising engineers and for hobbyists who want to learn more about the building blocks of an IoT system and also learn how to setup an IoT system using these blocks.
Chapter 1 is an introduction to the IoT systems. In Chapter 2, the basic concepts and possible IoT architectures are discussed. The important parts of any IoT system are the sensors and actuators and they are described briefly in Chapter 3. The devices in an IoT system usually communicate with each other and the important aspect of IoT communication is covered in Chapter 4. Chapter 5 proceeds with the features of some of the commonly used development kits. One of these, the Clicker 2 for PIC18FJ manufactured by mikroElektronika, can be used as a processor in IoT systems and its features are described in detail in Chapter 6. A popular microcontroller C language, mikroC Pro for PIC gets introduced in Chapter 7. Chapter 8 covers the use of a click board with the Clicker 2 for PIC18FJ development kit. Similarly, the use of a sensor click board is described as a project in Chapter 9, and an actuator board in Chapter 10. Chapters 11 and 12 cover Bluetooth and Wi-Fi technologies in microcontroller based systems, and the remaining chapters of the book demo the creation of a simple Wi-Fi based IoT system with cloud-based data storage.
This book has been written with the assumption that the reader has taken a course on digital logic design and has been exposed to writing programs using at least one high-level programming language. Knowledge of the C programming language will be very useful. Also, familiarity with at least one member of the PIC series of microcontrollers (e.g. PIC16 or PIC18) will be an advantage. The knowledge of assembly language programming is not required because all the projects in the book are based on using the C language. If you are a total beginner in programming you can still access the e-book, but first you are advised to study introductory books on microcontrollers.
Learn the basics of electronics by assembling manually your Arduino Uno, become familiar with soldering by mounting every single component, and then unleash your creativity with the only kit that becomes a synth!
The Arduino Make-Your-Uno kit is really the best way to learn how to solder. And when you are done, the packaging allows you to build a synth and make your music.
A kit with all the components to build your very own Arduino Uno and audio synthesizer shield.
The Make-Your-Uno kit comes with a complete set of instructions in a dedicated content platform. This includes video material, a 3D interactive viewer for following detailed instructions, and how to program your board once it is finished.
This kit contains:
Arduino Make-Your-Uno
1x Make-Your-Uno PCB
1x USB C Serial adapter Board
7x Resistors 1k Ohm
2x Resistors 10k Ohm
2x Resistors 1M Ohm
1x Diode (1N4007)
1x 16 MHz Crystal
4x Yellow LEDs
1x Green LED
1x Push-Button
1x MOSFET
1x LDO (3.3 V)
1x LDO (5 V)
3x Ceramic capacitors (22pF)
3x Electrolytic capacitors (47uF)
7x Polyester capacitors (100nF)
1x Socket for ATMega 328p
2x I/O Connectors
1x Connector header 6 pins
1x Barrel jack connector
1x ATmega 328p Microcontroller
Arduino Audio Synth
1x Audio Synth PCB
1x Resistor 100k Ohm
1x Resistor 10 Ohm
1x Audio amplifier (LM386)
1x Ceramic capacitors (47nF)
1x Electrolytic capacitors (47uF)
1x Electrolytic capacitors (220uF)
1x Polyester capacitor (100nF)
4x connectors pin header
6x potentiometer 10k Ohm with plastic knobs
Spare parts
2x Electrolytic capacitors (47uF)
2x Polyester capacitor (100nF)
2x Ceramic capacitors (22pF)
1x Push-Button
1x Yellow LEDs
1x Green LED
Mechanical parts
5x Spacers 12 mm
11x Spacers 6 mm
5x screw nuts
2x screws 12 mm
The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328 (Arduino Nano 3.x). It has more or less the same functionality of the Arduino Duemilanove but in a different package. It lacks only a DC power jack and works with a Mini-B USB cable instead of a standard one.
Specifications
Microcontroller
ATmega328
Operating Voltage (logic level)
5 V
Input Voltage (recommended)
7-12 V
Input Voltage (limits)
6-20 V
Digital I/O Pins
14 (of which 6 provide PWM output)
Analog Input Pins
8
DC Current per I/O Pin
40 mA
Flash Memory
16 KB (ATmega168) or 32 KB (ATmega328) of which 2 KB used by bootloader
SRAM
1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM
512 bytes (ATmega168) or 1 KB (ATmega328)
Clock Speed
16 MHz
Dimensions
0.73 x 1.70' (18 x 45 mm)
Power
The Arduino Nano can be powered via the Mini-B USB connection, 6-20 V unregulated external power supply (pin 30), or 5 V regulated external power supply (pin 27). The power source is automatically selected to the highest voltage source.
Memory
The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is used for the bootloader), 1 KB of SRAM and 512 bytes of EEPROM
The ATmega328 has 32 KB of flash memory for storing code, (also with 2 KB used for the bootloader), 2 KB of SRAM and 1 KB of EEPROM.
Input and Output
Each of the 14 digital pins on the Nano can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 V.
Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms.
Communication
The Arduino Nano has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers.
The ATmega168 and ATmega328 provide UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An FTDI FT232RL on the board channels this serial communication over USB and the FTDI drivers (included with the Arduino software) provide a virtual com port to software on the computer.
The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the FTDI chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any of the Nano's digital pins.
Programming
The Arduino Nano can be programmed with the Arduino software (download).
The ATmega168 or ATmega328 on the Arduino Nano comes with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol (reference, C header files).
You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header using Arduino ISP or similar; see these instructions for details.
Automatic (Software) Reset
Rather than requiring a physical press of the reset button before an upload, the Arduino Nano is designed in a way that allows it to be reset by software running on a connected computer.
One of the hardware flow control lines (DTR) of theFT232RL is connected to the reset line of the ATmega168 or ATmega328 via a 100 nF capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip.
The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.
Using the RFID Starter Kit
An Arduino board has now become ‘the’ basic component in the maker community. No longer is an introduction to the world of microcontrollers the preserve of the expert. When it comes to expanding the capabilities of the basic Arduino board however, the developer is still largely on his own. If you really want to build some innovative projects it’s often necessary to get down to component level. This can present many beginners with major problems. That is exactly where this book begins.
This book explains how a wide variety of practical projects can be built using items supplied in a single kit together with the Arduino board. This kit, called the 'RFID Starter Kit for Arduino' (SKU 17240) is not just limited to RFID applications but contains more than 30 components, devices and modules covering all areas of modern electronics.
In addition to more simple components such as LEDs and resistors there are also complex and sophisticated modules that employ the latest technology such as:
A humidity sensor
A multicolor LED
A large LED matrix with 64 points of light
A 4-character 7-segment LED display
An infra red remote-controller unit
A complete LC-display module
A servo
A stepper motor and controller module
A complete RFID reader module and security tag
On top of that you will get to build precise digital thermometers, hygrometers, exposure meters and various alarm systems. There are also practical devices and applications such as a fully automatic rain sensor, a sound-controlled remote control system, a multifunctional weather station and so much more.
All of the projects described can be built using the components supplied in the Elektor kit.
Grove is a modular electronic platform for quick prototyping. Every module has one function, such as touch sensing, creating audio effect and so on. Just plug the modules you need to the base shield, then you are ready to test your idea buds.
This Grove Starter Kit for Arduino is upgraded version of our Grove Starter Kit plus. Frequently used modules have been included in this kit to help you create your concept.
The changes
Optimize the internal slot structure, using technology to make our products inside plastic boxes more regularized, more protective.
Upgrade Instructions for creative poster form, more streamlined and intuitive description for each Grove-Sensor.
Grove-LED increased from three separate PCBA into a. But will still provide three different colors of LED light bulbs for you.
To consider the overall playability of the product experience, we optimized the two Grove-Sensors. Grove-Sound Sensor upgrade to V1.2; Grove-Temperature Sensor upgrade to the new SMD V1.1.
Data line upgrade from 24AWG Grove Cable is 26 AWG Grove Cable, wire length is adjusted to the length of 200mm unified model, the number was adjusted to 10.
Screen perfect upgrade for the Grove-LCD RGB Backlight, color screen makes further enhanced playability experience.
Included
1x Base Shield
1x Grove LCD RGB Backlight
1x Grove Smart Relay
1x Grove Buzzer
1x Grove Sound Sensor
1x Grove Touch Sensor
1x Grove Rotary Angle Sensor
1x Grove Temperature Sensor
1x Grove LED
1x Grove Light Sensor
1x Grove Button
1x DIP LED Blue-Blue
1x DIP LED Green-Green
1x DIP LED Red-Red
1x Mini Servo
10x Grove Cables
1x 9 V to Barrel Jack Adapter
1x Grove starter kit Manual
1x Green Plastic Box
Downloads
Schematic (PDF)
Schematic (Eagle)
Grove Button Source File
Grove LED Source File
Grove Buzzer Source File
Grove Rotary Angle Sensor Source File
Grove Relay Source File
Base Shield Source File
Grove Sound Sensor Source File
Grove Buzzer Source File
The Elektor MultiCalculator Kit is an Arduino-based multifunction calculator that goes beyond basic calculations. It offers 22 functions including light and temperature measurement, differential temperature analysis, and NEC IR remote control decoding. The Elektor MultiCalculator is a handy tool for use in your projects or for educational purposes.
The kit features a Pro Mini module as the computing unit. The PCB is easy to assemble using through-hole components. The enclosure consists of 11 acrylic panels and mounting materials for easy assembly. Additionally, the device is equipped with a 16x2 alphanumeric LCD, 20 buttons, and temperature sensors.
The Elektor MultiCalculator is programmable with the Arduino IDE through a 6-way PCB header. The available software is bilingual (English and Dutch). The calculator can be programmed with a programming adapter, and it is powered through USB-C.
Modes of Operation
Calculator
4-Ring Resistor Code
5-Ring Resistor Code
Decimal to Hexadecimal and Character (ASCII) conversion
Hexadecimal to Decimal and Character (ASCII) conversion
Decimal to Binary and Character (ASCII) conversion
Binary to Decimal and Hexadecimal conversion
Hz, nF, capacitive reactance (XC) calculation
Hz, µH, inductive reactance (XL) calculation
Resistance calculation of two resistors connected in parallel
Resistance calculation of two resistors connected in series
Calculation of unknown parallel resistor
Temperature measurement
Differential temperature measurement T1&T2 and Delta (δ)
Light measurement
Stopwatch with lap time function
Item counter
NEC IR remote control decoding
AWG conversion (American Wire Gauge)
Rolling Dice
Personalize startup message
Temperature calibration
Specifications
Menu languages: English, Dutch
Dimensions: 92 x 138 x 40 mm
Build time: approx. 5 hours
Included
PCB and though-hole components
Precut acrylic sheets with all mechanical parts
Pro Mini microcontroller module (ATmega328/5 V/16 MHz)
Programming adapter
Waterproof temperature sensors
USB-C cable
Downloads
Software
Ever wanted an automated house? Or a smart garden? Well, now it’s easy with the Arduino IoT Cloud compatible boards. It means: you can connect devices, visualize data, control and share your projects from anywhere in the world. Whether you’re a beginner or a pro, we have a wide range of plans to make sure you get the features you need.
Connect your sensors and actuators over long distances harnessing the power of the LoRa wireless protocol or throughout LoRaWAN networks.
The Arduino MKR WAN 1310 board provides a practical and cost effective solution to add LoRa connectivity to projects requiring low power. This open source board can be connected to the Arduino IoT Cloud.
Better and More Efficient
The MKR WAN 1310, brings in a series of improvements when compared to its predecessor, the MKR WAN 1300. While still based on the Microchip SAMD21 low power processor, the Murata CMWX1ZZABZ LoRa module, and the MKR family’s characteristic crypto chip (the ECC508), the MKR WAN 1310 includes a new battery charger, a 2 MByte SPI Flash, and improved control of the board’s power consumption.
Improved Battery Power
The latest modifications have considerably improved the battery life on the MKR WAN 1310. When properly configured, the power consumption is now as low as 104 uA! It is also possible to use the USB port to supply power (5 V) to the board; run the board with or without batteries – the choice is yours.
On-board Storage
Data logging and other OTA (Over The Air) functions are now possible since the inclusion of the on board 2 MByte Flash. This new exciting feature will let you transfer configuration files from the infrastructure onto the board, create your own scripting commands, or simply store data locally to send it whenever the connectivity is best. Whilst the MKR WAN 1310’s crypto chip adds further security by storing credentials & certificates in the embedded secure element.
These features make it the perfect IoT node and building block for low-power wide-area IoT devices.
Specifications
The Arduino MKR WAN 1310 is based on the SAMD21 microcontroller.
Microcontroller
SAMD21 Cortex-M0+ 32-bit low power ARM MCU (datasheet)
Radio module
CMWX1ZZABZ (datasheet)
Board power supply (USB/VIN)
5 V
Secure element
ATECC508 (datasheet)
Supported batteries
Rechargeable Li-Ion, or Li-Po, 1024 mAh minimum capacity
Circuit operating voltage
3.3 V
Digital I/O pins
8
PWM pins
13 (0 .. 8, 10, 12, 18 / A3, 19 / A4)
UART
1
SPI
1
I²C
1
Analog input pins
7 (ADC 8/10/12 bit)
Analog output pins
1 (DAC 10 bit)
External interrupts
8 (0, 1, 4, 5, 6, 7, 8, 16 / A1, 17 / A2)
DC current per I/O pin
7 mA
CPU flash memory
256 KB (internal)
QSPI flash memory
2 MByte (external)
SRAM
32 KB
EEPROM
No
Clock speed
32.768 kHz (RTC), 48 MHz
LED_BUILTIN
6
USB
Full-Speed USB Device and embedded Host
Antenna gain
2 dB (bundled pentaband antenna)
Carrier frequency
433/868/915 MHz
Dimensions
67.64 x 25 mm
Weight
32 g
Downloads
Eagle Files
Schematics
Fritzing
Pinout
The Arduino MKR Zero is a development board for music makers! With an SD card holder and dedicated SPI interfaces (SPI1), you are able to play music files without extra hardware.
The MKR Zero brings you the power of a Zero in the smaller format established by the MKR form factor. The MKR Zero board acts as a great educational tool for learning about 32-bit application development. It has an on-board SD connector with dedicated SPI interfaces (SPI1) that allows you to play with MUSIC files with no extra hardware! The board is powered by Atmel’s SAMD21 MCU, which features a 32-bit ARM Cortex M0+ core.
The board contains everything needed to support the microcontroller; simply connect it to a computer with a micro-USB cable or power it by a LiPo battery. The battery voltage can also be monitored since a connection between the battery and the analog converter of the board exists.
Specifications
Microcontroller
SAMD21 ARM Cortex-M0+ 32-bit low power
Board power supply (USB/VIN)
5 V
Supported battery
Li-Po single cell, 3.7 V, 700 mAh minimum
DC current for 3.3 V pin
600 mA
DC current for 5 V pin
600 mA
Circuit operating voltage
3.3 V
Digital I/O pins
22
PWM pins
12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 - or 18 -, A4 -or 19)
UART
1
SPI
1
I²C
1
Analog input pins
7 (ADC 8/10/12 bit)
Analog output pins
1 (DAC 10 bit)
External interrupts
10 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 - or 17)
DC current per I/O pin
7 mA
Flash memory
256 KB
Flash memory for bootloader
8 KB
SRAM
32 KB
EEPROM
No
Clock speed
32.768 kHz (RTC), 48 MHz
LED_BUILTIN
32
Downloads
Datasheet
Eagle Files
Schematics
Fritzing
Pinout
Arduino MKR NB 1500 allows you to build your next smart project.
Ever wanted an automated house? Or a smart garden? Well, now it’s easy with the Arduino IoT Cloud compatible boards. It means: you can connect devices, visualize data, control and share your projects from anywhere in the world. Whether you’re a beginner or a pro, we have a wide range of plans to make sure you get the features you need.
Add Narrowband communication to your project with the MKR NB 1500. It's the perfect choice for devices in remote locations without an Internet connection, or in situations in which power isn't available like on-field deployments, remote metering systems, solar-powered devices, or other extreme scenarios.
The board's main processor is a low power ARM Cortex-M0 32-bit SAMD21, like in the other boards within the Arduino MKR family. The Narrowband connectivity is performed with a module from u-blox, the SARA-R410M-02B, a low power chipset operating in the de different bands of the IoT LTE cellular range. On top of those, secure communication is ensured through the Microchip ECC508 crypto chip. Besides that, the pcb includes a battery charger, and a connector for an external antenna.
This board is designed for global use, providing connectivity on LTE's Cat M1/NB1 bands 1, 2, 3, 4, 5, 8, 12, 13, 18, 19, 20, 25, 26, 28. Operators offering service in that part of the spectrum include: Vodafone, AT&T, T-Mobile USA, Telstra, and Verizon, among others.
Specifications
The Arduino MKR NB 1500 is based on the SAMD21 microcontroller.
Microcontroller
SAMD21 Cortex-M0+ 32-bit low power ARM MCU (datasheet)
Radio module
u-blox SARA-R410M-02B (datasheet summary)
Secure element
ATECC508 (datasheet)
Board power supply (USB/VIN)
5 V
Supported battery
Li-Po Single Cell, 3.7 V, 1500 mAh Minimum
Circuit operating voltage
3.3 V
Digital I/O pins
8
PWM pins
13 (0 .. 8, 10, 12, 18 / A3, 19 / A4)
UART
1
SPI
1
I²C
1
Analog input pins
7 (ADC 8/10/12 bit)
Analog output pins
1 (DAC 10 bit)
External interrupts
8 (0, 1, 4, 5, 6, 7, 8, 16 / A1, 17 / A2)
DC current per I/O pin
7 mA
Flash memory
256 KB (internal)
SRAM
32 KB
EEPROM
No
Clock speed
32.768 kHz (RTC), 48 MHz
LED_BUILTIN
6
USB
Full-speed USB device and embedded host
Antenna gain
2 dB
Carrier frequency
LTE bands 1, 2, 3, 4, 5, 8, 12, 13, 18, 19, 20, 25, 26, 28
Power class (radio)
LTE Cat M1 / NB1: Class 3 (23 dBm)
Data rate (LTE M1 halp-duplex)
UL 375 kbps / DL 300 kbps
Data rate (LTE NB1 full-duplex)
UL 62.5 kbps / DL 27.2 kbps
Working region
Multiregion
Device location
GNSS via modem
Power consumption (LTE M1)
min 100 mA / max 190 mA
Power consumption (LTE NB1)
min 60 mA / max 140 mA
SIM card
MicroSIM (not included with the board)
Dimensions
67.6 x 25 mm
Weight
32 g
Downloads
Eagle Files
Schematics
Pinout
The Seeed Studio CANBed – Arduino CAN-BUS Development Kit integrates an ATmega32U4 microcontroller, eliminating the need for an external Arduino board. It combines an MCP2515 CAN Bus controller and an MCP2551 CAN Bus transceiver on a single board, providing a compact and reliable CAN communication solution.
Features
ATmega32U4 with Arduino Leonardo bootloader on the board
MCP2515 CAN Bus controller and MCP2551 CAN Bus transceiver
OBD-II and CAN standard pinout selectable at the sub-D connector
Compatible with Arduino IDE
Parameter
Value
MCU
ATmega32U4(with Arduino Leonardo bootloader)
Clock Speed
16 MHz
Flash Memory
32 KB
SRAM
2.5 KB
EEPROM
1 KB
Operate Voltage (CAN-BUS)
9 V - 28 V
Operate Voltage (MicroUSB)
5 V
Input Interface
sub-D
Included
CANBed PCBA
sub-D connector
4PIN Terminal
2x 4PIN 2.0 Connector
1x 9x2 2.54 Header
1x 3x2 2.54 Header
This USB Stick contains more than 300 Arduino-related articles published in Elektor Magazine. The content includes both background articles and projects on the following topics:
Software & hardware development: Tutorials on Arduino software development using Arduino IDE, Atmel Studio, Shields, and essential programming concepts.
Learning: The Microcontroller Bootcamp offers a structured approach to programming embedded systems.
Data acquisition & measurement: Projects such as a 16-bit data logger, lathe tachometer, and an AC grid analyzer for capturing and analyzing real-time signals.
Wireless communication: Learn how to implement wireless networks, create an Android interface, and communicate effectively with microcontrollers.
Robotics and automation: This covers the Arduino Nano Robot Controller, supporting boards for automation, and explores various Arduino shields to enhance functionality.
Self-build projects: Unique projects such as laser projection, Numitron clock and thermometer, ELF receiver, Theremino, and touch LED interfaces highlight creative applications.
Whether you're a beginner or an experienced maker, this collection is a valuable resource for learning, experimenting, and pushing the boundaries of Arduino technology.
,
by Lobna Belarbi
Must-Have Boards, Kits & Tools to Start Your Arduino Journey with Elektor
Whether you're a newcomer eager to explore the world of microcontrollers or an experienced maker seeking to expand your toolkit, Elektor offers a curated selection...