3838浏览
查看: 3838|回复: 5

[项目教程] micro:bit × OBLOQ挑战赛第三轮——本地物联网关

[复制链接]
本帖最后由 kylinpoet 于 2018-9-4 01:09 编辑

【项目介绍】

物联技术(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

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




super-power  中级技师

发表于 2018-9-4 07:15:40

高级:)):))
回复

使用道具 举报

hnyzcj  版主

发表于 2018-9-4 07:39:58

高端大气上档次
回复

使用道具 举报

rzyzzxw  版主

发表于 2018-9-4 07:44:25

物联技术哪家强
回复

使用道具 举报

Forgotten  版主

发表于 2018-9-4 09:14:03

厉害厉害了
回复

使用道具 举报

gada888  版主

发表于 2018-9-4 17:32:41

腻害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail