Datalogger cez rádiový prenos
Zo stránky SensorWiki
Toto je základný príklad na bezdrôtový prenos dát. Jeden micro:bit je napájaný z batérie a vykonáva samotné merania, tie pošle cez rádiový kanál druhému micro:bitu, ktorý je pripojený k počítaču a všetky dáta, ktoré prijme hneď prepošle po sériovej linke (resp. USB) do počítača, kde ich môžeme sledovať buď priamo v MakeCode prostredí, alebo inom terminálovom programe.
-
Program v blokovom jazyku pre vysielač
-
a pre prijímač
radio.onReceivedNumber(function on_received_number(receivedNumber: number) {
serial.writeLine("" + ("" + receivedNumber))
})
let AccX = 0
radio.setGroup(1)
basic.forever(function on_forever() {
radio.sendString("" + ("" + control.millis()) + "," + ("" + AccX))
led.toggle(2, 2)
basic.pause(100)
})
def on_received_number(receivedNumber):
serial.write_line("" + str((receivedNumber)))
radio.on_received_number(on_received_number)
AccX = 0
radio.set_group(1)
def on_forever():
global AccX
AccX = input.acceleration(Dimension.X)
radio.send_number(AccX)
basic.pause(100)
basic.forever(on_forever)
ToDo
Nasleduje drobná modifikácia, kde nebudeme posielať číslo, ale celý reťazec s viacerými meraniami, v tomto prípade oddelenými čiarkou.
-
Program v blokovom jazyku pre vysielač
-
a pre prijímač
radio.onReceivedString(function on_received_string(receivedString: string) {
serial.writeLine(receivedString)
})
let AccX = 0
radio.setGroup(1)
basic.forever(function on_forever() {
AccX = input.acceleration(Dimension.X)
radio.sendNumber(AccX)
basic.pause(100)
})
def on_received_number(receivedNumber):
serial.write_line("" + str((receivedNumber)))
radio.on_received_number(on_received_number)
def on_received_string(receivedString):
serial.write_line(receivedString)
radio.on_received_string(on_received_string)
AccX = 0
radio.set_group(1)
def on_forever():
radio.send_string("" + str(control.millis()) + "," + str(AccX))
led.toggle(2, 2)
basic.pause(100)
basic.forever(on_forever)
def on_forever2():
global AccX
AccX = input.acceleration(Dimension.X)
radio.send_number(AccX)
basic.pause(100)
basic.forever(on_forever2)
ToDo
Späť na zoznam príkladov....