3.8 KiB
Timer Camera Use With UIFlow
Download M5Burner
According to your operating system, click the button below to download the corresponding M5Burner firmware burning tool. Unzip and open the application
?>Note: after installation of MacOS users, please put the application into the application folder, as shown in the figure below.
?>Note: for Linux users, please switch to the unzipped file path and run the application in the terminal.
Burning firmware
Open
M5Burner-->Connect the device to the computer-->Select the corresponding port-->Switch to TIMERCAM option-->Select the appropriate version and click download-->Configure the appropriate parameters-->ClickBurnto flash-->Waiting for the pop-up windowsuccessfulindicates that the burning is complete
Get Token
-->Click
Get Token-->waiting for pop-up windowToken, the displayed string is token. It can also be obtained by scanning the QR code or opened directly in the browser.
UIFlow Program
At present, the development of UIFlow blockly of TimerCamera is in progress, but you can still get pictures in uiflow by the following methods. The following example sends the pictures to M5 core host for display
The URL filled in HTTP is the generated token QR code (browser address), which is manually added "lcd.image (0, 0, req.content )" The acquired image will be displayed on the screen.
Core2 Example
import urequests
import time
import wifiCfg
import lvgl as lv
wifiCfg.auto_connect()
ticks_ms = 0
old_tick = 0
scr = lv.scr_act()
scr.clean()
img = lv.img(scr)
while True:
if wifiCfg.is_connected():
ticks_ms = time.ticks_ms()
if time.ticks_diff(ticks_ms, old_tick) > 40000:
old_tick = ticks_ms
try:
req = urequests.get("http://api.m5stack.com:5003/timer-cam/image?tok=xxxxxxxxxYOUR-TOKENxxxxxxxxx&width=320&high=240&decode=png")
if (req.status_code) == 200:
print("Len: " + str(len(req.content)))
img_dsc = lv.img_dsc_t({
"data_size": len(req.content),
"data": req.content})
img.set_src(img_dsc)
del img_dsc
except (KeyboardInterrupt, Exception) as e:
print('Speaker caught exception {} {}'.format(type(e).__name__, e))
break
else:
pass
else:
wifiCfg.auto_connect()
