Automatic Meter Reading
This example shows you how to use the Simulink® and the Communications Toolbox™ to read utility meters by processing Standard Consumption Message (SCM) or Interval Data Message (IDM) signals emitted by meters. You can either use recorded data from a file, or receive over-the-air signals in real time using the RTL-SDR Radio or ADALM-PLUTO Radio.
Required Hardware and Software
To run this example using recorded data from a file , you need the following software:
To receive signals in real time, you also need one of the following SDR devices and the corresponding support package Add-On:
- RTL-SDR radio and the corresponding software Communications Toolbox Support Package for RTL-SDR Radio
- ADALM-PLUTO radio and the corresponding software Communications Toolbox Support Package for ADALM-PLUTO Radio
For a full list of Communications Toolbox supported SDR platforms, refer to Supported Hardware section of the Software Defined Radio (SDR) discovery page.
For an introduction to the SCM/IDM signaling scheme and AMR technology for reading utility meters, refer to the Automatic Meter Reading Using MATLAB example.
Receiver Model Structure
The following block diagram summarizes the receiver structure. The processing has four main parts: Signal Source, Physical Layer, Message Parser, and Data Viewer.
This example can use three signal sources:
- ''File'': Over-the-air signals written to a file and read using a Baseband File Reader block at 1.0 Msps
- ''RTL-SDR Radio'': RTL-SDR radio at a sample rate of 1.0 Msps
- ''ADALM-PLUTO Radio'': ADALM-PLUTO radio at a sample rate of 1.0 Msps
If you assign ''RTL-SDR'' or ''ADALM-PLUTO'' as the signal source, the example searches your computer for the radio you specified, either an RTL-SDR radio at radio address '0' or an ADALM-PLUTO radio at radio address 'usb:0' and uses it as the signal source.
The baseband samples received from the signal source are processed by the physical layer (PHY) to produce packets that contain the SCM or IDM information. This diagram shows the physical layer receive processing.
For a valid message, the bits are then parsed into the specific fields of either the IDM or SCM format. This example can parse both the SCM format and the IDM format.
The data viewer shows the decoded SCM or IDM messages on a graphical user interface (GUI). For each successfully decoded SCM/IDM, the commodity type, meter ID, consumption information and the capture time is shown. As data is captured and decoded, the application lists the information decoded from these messages in a tabular form. The table lists only the unique meter IDs with their latest consumption information.
You can also change the meter ID and start text file logging using the GUI.
- Meter ID - Change the meter ID from 0, which is the default value and is reserved for displaying all detected meters, to a specific meter ID which you would like to be displayed.
- Log data to file - Save the decoded messages in a TXT file. You can use the saved data for post processing.
The following figures illustrate how the GUI displays the meter readings.
The data file accompanying the example has only one meter reading and has been captured at center frequency of 915 MHz. Using RTL-SDR radio, the example will display readings from multiple meters when it is run for a longer period in a residential neighborhood.
You can further explore AMR signals using the AMRSimulinkExampleApp user interface. This app allows you to select the signal source and change the center frequency of the RTL-SDR radio. To launch the app, type AMRSimulinkExampleApp in the MATLAB Command Window or click the link. This user interface is shown in the following figure.
- Automatic meter reading, http://en.wikipedia.org/wiki/Encoder_receiver_transmitter, 2016.
- Itron Electricity meters, http://www.itron.com/na/industries/electricity, 2017.