Archiv der Kategorie: BLE

Abgesetzter Temperatursensor mit micro:bit radio

Micro:bit ist zwar BLE tauglich, doch unter Python reichen die Ressorcen für den BLE-Stack nicht aus und es bleibt die micro:bit radio Verbindung.

Zur abgesetzten Temperaturmessung kann ein micro:bit als Sensorknoten und eine weiterer als Empfängerknoten genutzt werden. Die Message des Sensors wir hier als Broadcast versendet.

Das Python-Programm des Sensors ist:

# Measuring chip temperature on micro:bit & output to radio
from microbit import *
import radio

# The radio won't work unless it's switched on.
radio.on()

while True:
 temp = temperature() - 3 # offset to ambient temperature
 display.scroll(str(temp)+" C")
 radio.send(str(temp))
 sleep(5000)

Das Python-Programm des Empfängers ist:

# Receiving chip temperature from a micro:bit sensor node & output to console
from microbit import *
import os
import radio

uart.init()
uart.write(os.uname().machine +" get chip temperature by radio connection\r\n")

# The radio won't work unless it's switched on.
radio.on()

while True:
 # Read any incoming messages.
 temp = radio.receive()
 display.scroll(str(temp)+" C")
 uart.write("micro:bit chip temperature = "+str(temp)+" C\r\n")
 sleep(1000)

 

 

BBC Micro:bit

Micro:bit ist ein für Ausbildungszwecke entwickelter Mikrocontroller mit Features, die diesen Controller auch für Prototypen-Entwicklungen u.a. interessant machen. Hier sind die Retails zu diesem Controller zu finden.

Die technischen Spezifikationen sind:

  • Nordic Semiconductor nRF51822 Bluetooth Low Energy & 2.4GHz Wireless SoC (32-bit ARM® Cortex™ M0 CPU mit 256kB Flash und 16kB RAM)
  • Bluetooth Smart Antenne
  • microUSB Anschluss (Programmdownload, Console)
  • LiPo-Anschluss
  • 25 LEDs, 2 Taster
  • 20 Pin Edge Connector
  • Accelerometer, Compass

Programmierbar in

  • JavaScript-Blocks-Editor (PXT)
  • microPython

MicroPython Programmbeispiel

# Measuring chip temperature on micro:bit & output to console
from microbit import *
import os

uart.init()
uart.write(os.uname().machine +" measuring chip temperature\r\n")

while True:
 temp = temperature()
 display.scroll(str(temp)+" C")
 uart.write("micro:bit chip temperature = "+str(temp)+" C\r\n")
 sleep(5000)