Automatic Meter Reading
This example shows you how to use Simulink® and Communications System Toolbox™ to read utility meters by processing Standard Consumption Message (SCM) or Interval Data Message (IDM) signals emitted by the meters. You can either use captured signals, or receive signals in real time using the Communication Systems Toolbox Support Package for RTL-SDR 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 the following hardware:
- RTL-SDR radio
and the following software
For a full list of Communications System 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 two 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
If you choose ''RTL-SDR Radio'' as the signal source, this application will search your computer for RTL-SDR radios and ask you to choose one of them 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. The following 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.