The previous tutorial included a discussion about the tools and components necessary to get started with Arduino. However, before starting with Arduino UNO (or any other Arduino board) — and experimenting with hardware projects on various sensors, actuators, and modules — it’s important to get through the basics of Arduino sketches and the embedded C…
Arduino compatible coding 04: Interfacing and driving LED by digital output
In the previous tutorial, we discussed the basics about Arduino sketches, with a a quick Arduino language reference. Now, it’s time to get our hands dirty. Interfacing LED and driving digital output from a source is the “Hello World” of embedded systems. As discussed in the previous tutorial, a microcontroller interfaces and interacts with other…
Arduino compatible coding 05: Interfacing buttons for digital input
In the previous tutorial, we discussed digital output from Arduino to drive an LED. A controller can interface and interact with other devices in five ways: digital output, digital input, analog output, analog input, and serial communication. In this tutorial, we will use digital input from Arduino to read the state of a tactile switch…
Arduino compatible coding 06: Analog output (PWM) on Arduino and LED fading
In the previous tutorial, we discussed the digital input process for using Arduino. We also explained push buttons (momentary type buttons) and how to use them for data or command input via a digital input. Any controller can interface and interact with other electronic devices in five ways: digital output, digital input, analog output, analog input,…
How to build a real-time vehicle tracking system
A vehicle tracking system is a technology that tracks and monitors a vehicle’s location in real time. It uses the Global Navigation Satellite System (GNSS) — typically, the Global Positioning System (GPS) — to accurately determine a vehicle’s location. The GPS monitors and relays data to a server through a cellular or satellite network. In…
How to turn Arduino into 16-bit IO port
In this project, we’ll design a 16-bit IO port (input-output port) library for Arduino. It’s possible to send direct 16-bit data to any Arduino board using this library. It connects any of Arduino’s 16 pins, so they work as a 16-bit IO port. First, you must select 16 pins from Arduino to combine as the…
Fingerprint-based access control system using Arduino and R307/Adafruit fingerprint sensor
Optical fingerprint scanners are prominent security devices nowadays. These scanners are low-cost and easy to use with any embedded hardware platform. The scanners have built-in memory and a controller to store and compare fingerprints. Usually, optical fingerprint scanners have a USB and/or UART port to communicate with external controllers or computers. The scanner handles enrollment…
How to troubleshoot common ESP32-CAM problems
ESP32-CAM is a compact camera module that combines the popular Wi-Fi development board ESP32 with the OV2640 camera sensor. The camera is part of the ESP32 series of Wi-Fi and Bluetooth-enabled system-on-chip (SoC) devices developed by Espressif Systems. ESP32 is a dual-core 32-bit microcontroller with built-in Bluetooth and Wi-Fi capabilities — based on the Espressif…
How to build an IoT-based digital menu using the MIT Inventor App
Digitalization has significantly shifted us toward a paperless society, impacting both personal and professional lives. Take restaurants, for example, where many establishments now offer digital menus. Providing a digital option offers several advantages to restaurant owners, their customers, and the environment. It reduces paper waste, allowing for an interactive experience and real-time updates for the…
How to build a paint application using Arduino
In this project, we’ll build a paint application on Arduino UNO/Arduino Mega that runs on a 3.5-inch TFT touchscreen display based on the ILI9486 driver. The ILI9486 touchscreen has a display resolution of 320×480 pixels. Using a stylus, you can draw, paint, and write on it (even in your own handwriting ). Required components Arduino…
How to build an Arduino-based biometric voting machine
Typical electronic voting machines require voters to push a button to cast their ballots. However, there have been security concerns with these devices and whether they’re at risk for tampering. One solution is to use biometric-based voting machines, which use fingerprint matching or a retina scan to verify an authorized voter. In this project, we’ll…
How to design a security system that sounds like a guard dog
It’s been said that one of the best home security systems is owning a dog. In this do-it-yourself (DIY) circuit, we’ll design a unique system that lets you take advantage of a guard dog for security without ever needing to walk or feed it. This DIY system “barks” like a dog whenever motion is detected…
IOT Building Blocks and Architecture: IOT Part 2
In the previous tutorial, a brief introduction of Internet of things was presented. The importance, challenges, applications and trends in IOT were discussed. Now, equipped with basic understanding of IOT, it’s time to investigate the building blocks of IOT. IOT is developed as a package with integration of various technologies. Each technology has its own principle role within the IOT system. In this tutorial, the basic building blocks of IOT and their place in an IOT infrastructure will be examined.
How to control LEDs using the MIT App Inventor and Bluetooth
In a previous tutorial, we discussed the MIT App Inventor, a popular online platform for building mobile applications using visual programming. The platform is helpful for quickly prototyping Internet-of-Things (IoT) applications and simple embedded systems that interact with mobile devices. We already reviewed the platform’s architecture and user interface. Its visual programming platform is ideal for…
How to design an Arduino library for an 8-bit IO port
In this project, we’ll create an 8-bit IO port Arduino library that reads and writes all eight bits in a single command by combining Arduino’s pins. This means sending and receiving the 8-bit data from a single pin will be possible. Arduino provides digital output using the digitalWrite() function and receives digital input via the…
How to design a multi-use level indicator using Arduino
In this mini do-it-yourself (DIY) electronic project, we’ll design a multi-use level indicator that can measure multiple physical parameters like temperature, water, voltage, humidity, distance, and more. It consists of a bar-graph LED display that presents the measurements. Four main types of sensors are used to measure the different physical parameters, including the following LM35…
How to make HTTP requests using Arduino for the IoT
One essential step in developing Internet of Things (IoT) applications is setting up communication between the IoT devices and a web server or services. IoT devices communicate with a web server, service, or an API through HTTP requests. An HTTP request is a message sent by a client to a server in the context of…
How to convert Arduino into a Modbus device
Modbus is a widely used communication protocol and an open-source industrial networking standard. Developed in 1979 by Modicon (now Schneider Electric), Modbus has become a standard in the automation and industrial control systems (ICS) industries. The communication protocol is known for its simplicity and easy-to-follow troubleshooting feature. It uses a master-slave or client-server communication model,…
How LoRa can impact smart cities with parking sensors
In this article, we’ll configure a parking sensor using LoRa (long-range) devices. LoRa is a wireless communication technique derived from Chirp Spread Spectrum (CSS) technology. For this project, Arduino Nano is connected to an ultrasonic sensor, detecting parking occupancy based on distance measurements. When a vehicle enters or leaves a parking space, the ultrasonic sensor…
How to use Arduino’s analog comparator
Arduino boards have a built-in analog comparator used for different applications. This is noteworthy because digital input/output and pulse width modulation (PWM) are typically used while analog comparators are not. A built-in analog comparator is useful in microcontrollers, providing voltage comparisons, digital-to-analog conversions, threshold detection, and PWM. Depending on the Arduino board (there are several…