Can't use Bluetooth.BLE_Mesh on Wipy 3 board. Why?
-
Hi!
I have some Wipy 3 boards that I want to create a Bluetooth mesh with by using Pymesh BLE. I have started off by following the sensor example in this link.
Here is my code for creating a Pymesh BLE server:
from network import Bluetooth from hardware.rgb_led import RGBLed import time from machine import Timer class BluetoothMeshServer: bluetooth = None model_server = None ble_mesh = None def __init__(self): pass def start(self): BLE_Mesh = Bluetooth.BLE_Mesh # BLE Mesh module # self.ble_mesh = Bluetooth.BLE_Mesh.init(name="PYCOM-ESP-BLE-MESH", *, auth=0, callback=None) self.ble_mesh = Bluetooth.BLE_Mesh.init(name="xxx", auth=0, callback=None) # Need to turn ON Bluetooth before using BLE Mesh self.bluetooth = Bluetooth() # Create a Primary Element with GATT Proxy feature and add a Server model to the Element element = self.ble_mesh.create_element(primary=True, feature=self.ble_mesh.GATT_PROXY) self.model_server = element.add_model(self.ble_mesh.SENSOR, self.ble_mesh.SERVER, sen_min = 0, sen_max = 59, sen_res = 1) # Initialize self.ble_mesh self.ble_mesh.init("Pycom Sensor Server", callback=self.prov_callback) # Turn on Provisioning Advertisement self.ble_mesh.set_node_prov(self.ble_mesh.PROV_ADV|self.ble_mesh.PROV_GATT) # Sensor takes measurement every 1 second Timer.Alarm(self.read_sensor, 1, periodic=True) # Sensor send status every 5 seconds Timer.Alarm(self.status_sensor, 5, periodic=True) def read_sensor(self, alarm): # In this example sensor reads local seconds if(device_provisioned): self.model_server.set_state(time.localtime()[5]) print("SENSOR | State: ", self.model_server.get_state()) def status_sensor(self, alarm): if (device_provisioned): self.model_server.status_state() def prov_callback(self, event, oob_pass): global device_provisioned if(event == self.ble_mesh.PROV_REGISTER_EVT or event == self.ble_mesh.PROV_RESET_EVT): # Yellow if not Provision yet or Reset RGBLed.turn_yellow() device_provisioned = False if(event == self.ble_mesh.PROV_COMPLETE_EVT): # Green if Provisioned RGBLed.turn_green device_provisioned = TrueThe trouble I'm having is that the line:
BLE_Mesh = Bluetooth.BLE_Meshthrows an exception in the terminal. Here is the error output from the terminal:
Traceback (most recent call last): File "main.py", line 11, in <module> File "lib/bluetooth_mesh_server.py", line 16, in start AttributeError: type object 'Bluetooth' has no attribute 'BLE_Mesh' Pycom MicroPython 1.20.2.r6 [v1.11-c5a0a97] on 2021-10-28; WiPy with ESP32 Pybytes Version: 1.7.1 Type "help()" for more information.As you can see, the error says "AttributeError: type object 'Bluetooth' has no attribute 'BLE_Mesh'". Why? How do I use BLE_Mesh with Wipy 3 boards to create a Bluetooth mesh?
Thanks!
-
@Tobias-Eliasson I believe you need to enable Pymesh via Pybytes (and accept the associated license) before you can use it. See https://docs.pycom.io/pybytes/pymeshintegration/provisioning/ for info.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login