[PYTHON] Read the power of the smart meter with M5StickC (BP35C0-J11-T01)

Overview

Hack a home smart meter with M5StickC! was tried with BP35C0-J11-T01.

About BP35C0-J11-T01

BP35C0-J11-T01 is a wireless module BP35C0-J11 compatible with ROHM's B route / Enhanced HAN that can be inserted into a 2.54 mm pitch board. (Is BP35C1-J11-T01 in the series the same connector as BP35A1?) The features of BP35C0-J11 compared with BP35A1 which is often used in articles on the Internet are as follows.

--Supports Wi-SUN Enhanced HAN communication -** Command transmission / reception is J11-UART standard binary ** (BP35A1 is SK command for SKSTACK-IP, text-based)

Since the command system changed, it was necessary to rewrite most of it, so I made it public.

What you have prepared

The BP35C0-J11 requires an external antenna, but since it is a specific low-power radio, it is necessary to use one that has been confirmed to be technically compatible with the BP35C0-J11. (A list of compatible products can be found here)

Wiring

Connect M5Stick C and BP35C0-J11-T01 as follows. If you try to insert it directly into the breadboard, CN3 will get in the way, so you need to remove the pin header of CN3 or geta geta with a pin socket.

M5StickC BP35C0-J11-T01
GND CN1-1 or 9(GND)
3V3 CN1-4 or 5(VCC)
G36 CN2-5(TXD)
G26 CN2-7(RESET)
G0 CN2-4(RXD)

ブレッドボードでの実装例M5StickCとBP35C0-J11-T01を載せるとこんな感じ

program

The source is on github.

Upload test_WiSUN_Ambient_J11.py instead of test_WiSUN_Ambient.py in the steps in Original Program. Since the code related to ESPNOW is compatible, the monitor slave unit can use the original program as it is.

Points to consider

--Readline cannot be used because the response is a variable length binary --It is necessary to add a checksum when sending a command. --The content read by read does not always include one response sentence completely, and conversely, two or more sentences may have been received. ――If you run it for several days, PANA re-authentication communication may fail and you may not be able to communicate with the smart meter → Deal with automatic restart

Recommended Posts

Read the power of the smart meter with M5StickC (BP35C0-J11-T01)
You can read the analog meter with the example MNIST.
Pull out smart meter information with the cheapest hardware
You can read the analog meter with the example MNIST.
The Power of Pandas: Python
See the power of speeding up with NumPy and SciPy
Read the GRIB2 file of the Japan Meteorological Agency with pygrib
Read the coordinates of the plot on the graph with Python-matplotlib (super beginner)
Power the brushless motor of Oriental motor
The power of combinatorial optimization solvers
[Image recognition] How to read the result of automatic annotation with VoTT
Align the size of the colorbar with matplotlib
Check the existence of the file with python
Let's read the RINEX file with Python ①
The third night of the loop with for
Read all the contents of proc / [pid]
I read the implementation of golang channel
The second night of the loop with for
Read the implementation of ARM global timer
Count the number of characters with echo
[Python] Read the source code of Bottle Part 2
The story of doing deep learning with TPU
Note: Prepare the environment of CmdStanPy with docker
Prepare the execution environment of Python3 with Docker
I read the implementation of range (Objects / rangeobject.c)
2016 The University of Tokyo Mathematics Solved with Python
See the behavior of drunkenness with reinforcement learning
Calculate the total number of combinations with python
Check the date of the flag duty with Python
Read the output of subprocess.Popen in real time
Eliminate the inconveniences of QDock Widget with PySide
Challenge the Tower of Hanoi with recursion + stack
[Python] Read the source code of Bottle Part 1
Rewrite the name of the namespaced tag with lxml
Fill the browser with the width of Jupyter Notebook
Predict the second round of summer 2016 with scikit-learn
Dump the contents of redis db with lua
Tucker decomposition of the hay process with HOOI
Find out the day of the week with datetime
The basis of graph theory with matplotlib animation
Visualize the behavior of the sorting algorithm with matplotlib
Convert the character code of the file with Python3
I read and implemented the Variants of UKR
[Python] Determine the type of iris with SVM
Read the csv file with jupyter notebook and write the graph on top of it