【项目介绍】
物联技术(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.效果演示
用python的flask库,编写本地的web服务端。主要任务是将microbit提交的数据存储在本地sqlite数据库,并利用百度提供的开源图表库进行数据的可视化展示。其主要源码如图.
除了数据的展示外,还可以通过网页端直接控制家庭设备的开关。为了演示方便这里用两个LED灯作为演示。
(鉴于时间关系,这里没有做过多地美化,请见谅)其代码如下图:
2.安装相应软件
访问[http://www.python.org]()下载最新的python版本即可
安装完成后,在命令提示符运行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代码
因为用到了dht11传感器,所以用了microbit给出的micropython编辑器bxy.exe里的dht11库,只要使用
import dht11
进行导入就可以了。
4.设备连接图
5.演示视频