micro:bit × OBLOQ挑战赛第三轮——本地物联网关

2018-09-035142
AI 快速预览详细 收起
本次micro:bit × OBLOQ挑战赛第三轮的目标是实现本地物联网关。项目使用了micro:bit、DF micro:mate扩展板和DF OBLOQ物联网模块。通过Python的Flask库编写本地web服务端,将micro:bit提交的数据存储在SQLite数据库,并利用百度提供的开源图表库进行数据可视化展示。此外,还可以通过网页端直接控制家庭设备的开关。整个项目适合STEM教育和编程启蒙,帮助孩子理解物联网技术。

【项目介绍】

物联技术(IoT)开启了科技使人更快乐的大门。本次micro:bit+OBLOQ比赛第三轮的目标是运用多种技术实现,物联网关本地化,从而使得物联操作技术更人性化,更流程化。

【项目准备】

硬件

micro:bit×1
DF micro:mate扩展板×1
DF OBLOQ物联网模块×1
LED灯×2
电脑×1

软件

python 3.6
python flask库
python pyecharts库
pycharm 2018.2

【项目准备】

1.效果演示

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图7

用python的flask库,编写本地的web服务端。主要任务是将microbit提交的数据存储在本地sqlite数据库,并利用百度提供的开源图表库进行数据的可视化展示。其主要源码如图.

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图1

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图8

除了数据的展示外,还可以通过网页端直接控制家庭设备的开关。为了演示方便这里用两个LED灯作为演示。

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图3

(鉴于时间关系,这里没有做过多地美化,请见谅)其代码如下图:

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图2

2.安装相应软件

访问[http://www.python.org]()下载最新的python版本即可

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图6

安装完成后,在命令提示符运行python包管理工具pip安装相应文件库:

pip install flask
pip install pyecharts

使用趁手的工具导入如下sql文件,建立sqlite数据库

/*
 Navicat Premium Data Transfer

 Source Server         : ow_noise
 Source Server Type    : SQLite
 Source Server Version : 3021000
 Source Schema         : main

 Target Server Type    : SQLite
 Target Server Version : 3021000
 File Encoding         : 65001

*/

PRAGMA foreign_keys = false;

-- ----------------------------
-- Table structure for sensorlist
-- ----------------------------
DROP TABLE IF EXISTS "sensorlist";
CREATE TABLE "sensorlist" (
  "sensorid" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
  "sensorname" TEXT,
  "maxvalue" integer DEFAULT 0,
  "minvalue" integer DEFAULT 0
);

-- ----------------------------
-- Records of sensorlist
-- ----------------------------
INSERT INTO "sensorlist" VALUES (1, 'dht11温度', 90, 30);

-- ----------------------------
-- Table structure for sensorlog
-- ----------------------------
DROP TABLE IF EXISTS "sensorlog";
CREATE TABLE "sensorlog" (
  "logid" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  "sensorid" INTEGER,
  "sensorvalue" real,
  "updatetime" text DEFAULT (strftime('%Y-%m-%dT%H:%M:%S',datetime('now', 'localtime')))
);

-- ----------------------------
-- Records of sensorlog
-- ----------------------------
INSERT INTO "sensorlog" VALUES (110, 1, 65.0, '2018-05-06T21:17:40');
INSERT INTO "sensorlog" VALUES (111, 1, 100.0, '2018-05-06T21:17:52');
INSERT INTO "sensorlog" VALUES (112, 2, 25.0, '2018-05-06T21:17:56');

-- ----------------------------
-- Table structure for sqlite_sequence
-- ----------------------------
DROP TABLE IF EXISTS "sqlite_sequence";
CREATE TABLE "sqlite_sequence" (
  "name",
  "seq"
);

-- ----------------------------
-- Records of sqlite_sequence
-- ----------------------------
INSERT INTO "sqlite_sequence" VALUES ('sensorlist', 1);
INSERT INTO "sqlite_sequence" VALUES ('sensorlog', 112);

-- ----------------------------
-- Auto increment value for sensorlist
-- ----------------------------
UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'sensorlist';

-- ----------------------------
-- Auto increment value for sensorlog
-- ----------------------------
UPDATE "sqlite_sequence" SET seq = 112 WHERE name = 'sensorlog';

PRAGMA foreign_keys = true;

完成后,可使用python自带的idle打开源码,或者使用pycharm打开源码运行。

具体内容可参见压缩包源码。这里不继续展开了。

3.microbit代码

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图5

因为用到了dht11传感器,所以用了microbit给出的micropython编辑器bxy.exe里的dht11库,只要使用

import dht11进行导入就可以了。

4.设备连接图

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图4

micro:bit × OBLOQ挑战赛第三轮——本地物联网关图9

5.演示视频

相关代码请看附件:
下载附件flask_IoT_beta.rar

时间仓促,制作简陋,敬请谅解。




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
gada888
gada888
腻害
Forgotten
Forgotten
厉害厉害了
rzyzzxw
rzyzzxw
物联技术哪家强
hnyzcj
hnyzcj
高端大气上档次
super-power
super-power
高级:)):))
- 没有更多了 -