Automate Marketing Initiatives with Salesforce Marketing Cloud Learn More

Raspberry Pi & Arduino UNO Current Measurement System

In this article, we show you how to measure the AC Current and AC Voltage using the ACS712 current sensor and ZMPT101B voltage sensor. In addition to the Wattmeter, this circuit also acts as a Voltmeter and Ammeter which are used to measure voltage and current, respectively. If the connection is correctly managed, ACS712 measures the current accurately. We have worked with many of the current detectors, like SCT-013-030 and INA219, which are not as precise. 

As a low-cost and smaller AC sensor, ACS712 is selected for this project instead of conventional current transformers. With the ACS712 current sensor, current can be accurately measured when induced. It detects the magnetic field surrounding an AC wire and gives analog output voltage. The microcontroller processes the analog voltage output to measure the current flow through the load.

Raspberry pi

Raspberry Pi is a small single-board computer. Connecting peripherals like keyboard, mouse, and display to the Raspberry Pi will act as a mini personal computer.

art 1

Arduino Uno – Arduino Uno is a microcontroller board based on the ATmega328P. An ICSP header, a USB connection, a power jack, a 16 MHz ceramic resonator, a reset button, and 14 digital input/output pins (of which 6 can be chosen as PWM outputs) are all included.

art 2

Hardware Specifications for Measurement System 

These are some common hardware components:-

  1. Raspberry Pi  
  2. Arduino Uno  
  3. Bread Board  
  4. ZMPT101B Voltage sensor  
  5. ACS712 Current sensor 
  6. Jumper wire 
  7. Switch Board 

Software Specifications for Measurement System

These are some common hardware components:-


  1. Arduino Compiler 
  2. MC Programming Language: C
  3. VNC Viewer for Raspberry Pi
  4. MC Programming Language of Raspberry Pi: Python
  5. IP Scanner (for finding the IP Address of Raspberry pi)

Connection of Device and Software Setup – Step By Step


These are some common hardware components:-

  • Hardware connection of voltage sensor with Arduino Uno as well as with current sensor.
  • Hardware setup for serial communication.
  • Raspberry Pi Software setup.
  • Serial communication (with UART).
  • Code for current and voltage measurement in Arduino IDE.

1. Hardware connection of voltage sensor with Arduino Uno and current sensor respectively

For the connection established by the microcontroller i.e., Arduino Uno and the sensor. First, set the 5v and GND (ground pin) of our Arduino Uno to the breadboard. One point of the breadboard is common for the GND (ground pin). The other 5v pin is common for the power pin.

After that, we use a current sensor and a voltage sensor to measure the current and the voltage, respectively. At the beginning of the connection, check whether our voltage sensor model is ZMPT101B or not. Similarly, check if the current sensor model is ACS712.

  • Connection of Voltage sensor and Arduino Uno   

We can begin by checking the 5v pin, OUT pin, and GND pin of both devices. When that is completed, connect the pins. The GND pin of the voltage sensor has to be connected to the GND pin of the Arduino Uno device. The 5v pin of the Arduino Uno has to be connected to the VCC pin of the voltage sensor. Also, make sure the OUT pin of the voltage sensor is connected to the input pin of our Arduino Uno device, i.e., A0.

art 3 2

Connection of current sensor and Arduino Uno  

You can now check the 5v pin, GND pin and input pin of both devices. Connect according to the same pin of our Arduino device and sensor. Then, connect the 5v pin of the device to a current sensor of the VCC pin, the GND pin of the device connects to the sensor of the GND pin, and then the input pin of the device, i.e., (A1) is connected to the current sensor of OUT pin.

art 4

2. Hardware setup for serial communication

We have connected the Raspberry Pi and Arduino for serial communication via USB. A USB cable connector is the easiest way to connect an Arduino Uno and Raspberry Pi.


Note: Make sure your Arduino Uno is connected to a computer so that you can upload the code. Then, you will need to connect the USB cable to the Raspberry Pi. Through this cable, the Raspberry Pi can power the Arduino.

3. Raspberry pi software setup

Download and install the Arduino IDE in Raspberry Pi OS.

Install Python Serial library on Raspberry pi

We installed the pyserial library using the command prompt for the serial connection interface.
By using the command given below:

 // sudo pip install pyserial 

Locate the Arduino board

Typically, you should see the Arduino appear as /dev/ttyACM0, or /dev/ttyUSB0 (sometimes the number is different

For example: /dev/ttyACM1) when connected via USB cable.  

4. Serial communication (with UART)

For the serial communication of the Raspberry pi and Arduino Uno UART protocol is used. 

UART protocol

UART stands for ‘Universal Asynchronous Reception and Transmission’. Asynchronous allows communication between the two boards. Arduino has one UART in our device that can be seen either with a USB cable or from the RX/TX pins. Neither pin used at the same time. On the Raspberry Pi, it can connect to many serial devices on the USB ports. Using Raspberry Pi also uses the GPIOs (RX0/TX0) for an additional UART. 


5. Code for current and voltage measurement in Arduino IDE 


Let’s start with a simple program.


  1. Go to the Arduino IDE in our Raspberry pi VNC viewer
  2. Create a new file and save it on the Arduino IDE
  3. After saving the code, compile the code mentioned above 
  4. Go to the tools setting. Choose serial monitor
  5. Inside the serial monitor, you will see the current and voltage reading


Code for current and voltage measurement

ar 1 2 1024x607 1
ar 2 3 1024x635 1
ar 3 2 1024x590 1

A place for big ideas.

Reimagine organizational performance while delivering a delightful experience through optimized operations.

Testing the Application

When testing the application, you need to connect the raspberry pi and the Arduino Uno to check the power supply. Before connecting the current sensor, ensure to check the ground pin (GND), voltage output pin (VCC), and input pins of our sensor. Finally, you connect all of the pins using our soldering iron. Check the input pins, voltage pin VCC, and GND pins for the voltage sensor. After connecting the device to the 3-phase line, we will connect the relay to protect our device from damage.


For connection of the relay and Raspberry Pi, connect the JD-VCC pin of the relay to voltage pin 3.3 v of the Raspberry Pi and the VCC pin of the relay connects to the 5v of our Raspberry Ri. Similarly, the relay’s input pin (IN1) is connected to the GPIO12 pin and its ground pin (GND) is connected to the GND pin. Now we can connect our relay module to the supply. The red blink light indicates the ON position of the relay. When it is not blinking, it indicates the OFF position.



  1. We can easily measure current and voltage using the Raspberry Pi and Arduino Uno.
  2. We can easily move both microcontrollers from one place to another.
  3. Its quite cost-effective.
  4. We can measure both current alternating current as well as direct current
  5. It is an easy-to-use tool.



  1. Raspberry Pi cannot be operated on Windows operating system.
  2. If we use it continuously for 6-7 hours. then it heats above 70-degree Celsius.
  3. It lacks graphics processor
  4. It lacks internal storage in our microcontroller, which is why its performance is lesser than others.
  5. Its boot time speed is very slow during the initial setup.
  6. Sometimes, the system takes time to upload the data depending on the internet speed and module baud rate.


The presented smart system measures the current and voltage using the Raspberry pi and Arduino Uno serial connection. The multiple use cases of this using our Arduino IDE monitor include energy management, saving power from the power section, automatic control of energy meter, to make customers monitor their energy usage pattern, and power flow graph.

For more detail about the ACS712 current sensor follow the below reference link:-

Top Stories

Enhancing GraphQL with Roles and Permissions
Enhancing GraphQL with Roles and Permissions
GraphQL has gained popularity due to its flexibility and efficiency in fetching data from the server. However, with great power comes great responsibility, especially when it comes to managing access to sensitive data. In this article, we'll explore how to implement roles and permissions in GraphQL APIs to ensure that
Exploring GraphQL with FastAPI A Practical Guide to begin with
Exploring GraphQL with FastAPI: A Practical Guide to begin with
GraphQL serves as a language for asking questions to APIs and as a tool for getting answers from existing data. It's like a translator that helps your application talk to databases and other systems. When you use GraphQL, you're like a detective asking for specific clues – you only get
Train tensorflow object detection model with custom data
Train Tensorflow Object Detection Model With Custom Data
In this article, we'll show you how to make your own tool that can recognize things in pictures. It's called an object detection model, and we'll use TensorFlow to teach it. We'll explain each step clearly, from gathering pictures, preparing data to telling the model what to look for in
Software Development Team
How to deploy chat completion model over EC2?
The Chat Completion model revolutionizes conversational experiences by proficiently generating responses derived from given contexts and inquiries. This innovative system harnesses the power of the Mistral-7B-Instruct-v0.2 model, renowned for its sophisticated natural language processing capabilities. The model can be accessed via Hugging Face at – on a dedicated GPU server g4dn.2xlarge,
How to deploy multilingual embedding model over EC2
How to deploy multilingual embedding model over EC2?
The multilingual embedding model represents a state-of-the-art solution designed to produce embeddings tailored explicitly for chat responses. By aligning paragraph embeddings, it ensures that the resulting replies are not only contextually relevant but also coherent. This is achieved through leveraging the advanced capabilities of the BAAI/bge-m3 model, widely recognized for
Tracking and Analyzing E commerce Performance with Odoo Analytics
Tracking and Analyzing E-commerce Performance with Odoo Analytics
Odoo is famous for its customizable nature. Businesses from around the world choose Odoo because of its scalability and modality. Regardless of the business size, Odoo can cater to the unique and diverse needs of any company. Odoo has proven its capacity and robust quality in terms of helping businesses


          Keep an eye on your inbox for the PDF, it's on its way!

          If you don't see it in your inbox, don't forget to give your junk folder a quick peek. Just in case.

              You have successfully subscribed to the newsletter

              There was an error while trying to send your request. Please try again.

              Zehntech will use the information you provide on this form to be in touch with you and to provide updates and marketing.