---
title: s02-技术记录-1
date: 2020-03-21 11:43:40
tags:
---
## 技术架构
### 总览
![image-20200327081206961](README/image-20200327081206961.png)
如图所示,为本项目技术组织图。
![image-20200327080235589](README/image-20200327080235589.png)
如图所示为程序流程图
### 下位机
![image-20200327080338402](README/20200327115418.png)
如图所示,下位机流程图
下位机是以STM32为核心的传感器信息采集装置,主要实现对MPU6050三轴数据的采集与传输、振动检测、身份密码校验等功能,利用NB-IoT模块以4G网络为载体进行信息交互传递。NB-IoT为移动运营商提供的硬件平台并配套相应地运营商服务器,NB-IoT模块非传统的4G网络模块的点对点通信模式,而是会将数据直接发送到运营商服务器上,由运营商服务器负责将数据转发到本项目的服务器上。
### 服务器
![image-20200327080338402](README/image-20200327080338402.png)
本项目中的服务器为腾讯云服务器,在服务器上架设两种服务,一种是基于Django的网页监听服务,某客户端通过html网页监听http请求,处理某客户端的请求数据的请求并显示数据到html页面上,**模型的数据请求也包含在该服务内**;一种是基于网络通信的数据监听服务,即监听运营商服务器转发过来的数据信息,并将数据信息存储数据库中。在任何接入ipv4的客户端都可以访问本服务器的内容。
l **HTML前端显示:**Django框架生成的web界面,用于显示三轴数据,报警状态;用于用户点击请求数据功能。
l **Django Python:**Django的python后台程序,用于控制前端显示的数据,监听用户点击按钮请求数据。
l **Python Socket Server:** 服务器数据监听进程。用于监听nb-iot模块发送来的数据,并将数据解析。解析后的数据通过进程管道通信机制传输给Django并将数据存储数据库中;用于保存json文件。
l **管道PIPE通信:** Django无法创建socket通信,因此设定单独的socket server,将socket server和Django分开。**我们将两个模块分别简称为Django进程和socket进程**。两个进程之间通信可以依靠PIPE进程通信解决。Django进程可以接收Socket进程的数据,Socket进程可以处理Django的数据请求。
l **SQL数据库:**用于存储信息为数据库。Socket进程对数据库仅有写的权限,Django进程对数据库仅有读的权限。
l **Json解析器:**生成和保存json文件。
### 模型
模型客户端是依托ThingJS物联网开发平台的虚拟模型可视化装置。前端模型由CampusBuilder塑造还原的校园模型,后端是基于Javascript实现的物体形体控制。通过ThingJS提供的平台可将CampusBuilder生成的模型UI与后端Javascript有机的结合起来。物体形体的控制数据通过Ajax向运行Django的服务器进行http请求,运行Django的服务器会读取数据库信息并返回数据,Javascript会根据数据控制物体的形态,以完成数据闭合流通的过程。
## 使用方法关键记录
### 登入服务器
使用windows系统自带的远程桌面连接工具。寻找方法如图,在开始菜单输入关键字。
![image-20200329093920802](README/image-20200329093920802.png)
进入后输入IP指令:
![image-20200329094016377](README/image-20200329094016377.png)
输入用户和密码,登入界面。
启动cmder软件。
### 服务器端启动
请参考教学视频,以下为关键步骤的记录。
step1: 在服务器端启动django服务: 新建一个cmd终端
`cd /d c:\workspace\s02-django-jg-prj\django-test\HelloWorld`
`python manage.py runserver 0.0.0.0:8080 `
![image-20200327104519032](README/image-20200327104519032.png)
step2: 服务器端系统启动socket服务:再新建一个cmd终端
`cd c:\workspace\s02-django-jg-prj\s02-socket-server`
`python main`
![image-20200327104457860](README/image-20200327104457860.png)
step3: 在本地浏览器(任意一台联网的电脑或者手机都可以)输入: http://175.24.105.191:8080/index
OK,就可以看到更新数据了。
### 模型使用
step4: 在本地浏览器输入:http://www.thingjs.com/guide/?m=sample
(注意上述网址必须是http开头而非https开头,否则由于浏览器CPS策略影响,不能交互数据。)
井盖位置
![image-20200327153025533](README/image-20200327153025533.png)
step5: 打开开关;
![image-20200327140253899](README/image-20200327140253899.png)
## 服务器配置
### 下载MqSQL
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-winx64.zip
### 配置MySQL
解压到C盘,设定配置环境变量路径。
在解压到的文件夹内创建:`my.ini`配置文件和一个`data`文件夹
`my.ini`配置文件内容为
```
[client]
port=3306
default-character-set=utf8
[mysqld]
# 设置为自己MYSQL的安装目录
basedir=C:\mysql-8.0.19-winx64
# 设置为MYSQL的数据目录,禁止手动创建data文件夹
# datadir=C:\mysql-8.0.19-winx64\data
port=3306
character_set_server=utf8
#开启查询缓存
explicit_defaults_for_timestamp=true
```
```
mysqld --initialize --console
```
![image-20200412115222033](C:\Users\multimicro\AppData\Roaming\Typora\typora-user-images\image-20200412115222033.png)
上图红框中的为初次密码
`mysqld --install`
`net start mysql`
alter user 'root'@'localhost' identified by 'root';
更改密码:
```mysql
mysql> use mysql
mysql> update user set authentication_string=password('HEpan693640.') where user='root';
mysql> flush privileges;
mysql> quit
```
密码通过在根目录搜索err文件查找
![image-20200321113407619](s02-技术记录-1/image-20200321113407619.png)
查找
![image-20200321113424091](s02-技术记录-1/image-20200321113424091.png)
`mysql -u root -p`
密码为上述红线字符串。
成功进入mysql,设定mysql用户名: root,密码为:root
### 开发过程
* python3上安装mysql驱动:
`python -m pip install PyMySQL django-csp-nonce django requests -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com`
* 安装安全控件:
`python -m pip install CoAPthon -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com`
* 数据库开发过程:
**创建数据:`CREATE DATABASE S02DB;`**
删除数据库:`drop database S02DB;`
选择数据库:`use S02DB;`
**创建数据表:(按照下表创建)**
| 设备id(id) | 时间(time) | x轴信息(x) | y轴信息(y) | z轴信息(z) | 振动状态(vt) | 位置信息(gps) | 管理员状态(at) |
| ---------- | ---------- | ---------- | ---------- | ---------- | -------------- | --------------- | -------------- |
| var | var | var | var | var | bool | var | bool |
```mysql
CREATE TABLE IF NOT EXISTS `s02table`(
`number` INT UNSIGNED NOT NULL auto_increment,
`id` INT UNSIGNED,
`time` VARCHAR(100) NOT NULL,
`x` VARCHAR(40) NOT NULL,
`y` VARCHAR(40) NOT NULL,
`z` VARCHAR(40) NOT NULL,
`vt` BOOL NOT NULL,
`gps` VARCHAR(80) NOT NULL,
`at` BOOL NOT NULL,
PRIMARY KEY ( `number` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
```
![image-20200323094632601 ](s02-技术记录-1/image-20200323094632601.png)
删除在数据库中的数据表:`DROP TABLE s02table;`
插入数据:
```mysql
INSERT INTO s02table ( number, id, time,x,y,z,vt,gps,at )
VALUES
( 3, "123456", "2020/02/03/12:45:36","12.2578", "25.3658","125.2256",0,"12.56565,121.4484847",1);
```
读取数据库:`select * from s02table;`
![image-20200323095648617](s02-技术记录-1/image-20200323095648617.png)
几个常用的命令记录:
```mysql
alter table s02table add number int first;
```
```
UPDATE s02table SET number='0' WHER
没有合适的资源?快使用搜索试试~ 我知道了~
一个关于井盖的项目,thingjs、服务器python文件,bc35对接socket文件等.zip
共455个文件
pyc:74个
py:66个
h:51个
需积分: 0 1 下载量 172 浏览量
2024-01-17
21:09:39
上传
评论
收藏 12.75MB ZIP 举报
温馨提示
python项目
资源推荐
资源详情
资源评论
收起资源包目录
一个关于井盖的项目,thingjs、服务器python文件,bc35对接socket文件等.zip (455个子文件)
activate 2KB
views.py.bak 9KB
activate.bat 948B
deactivate.bat 347B
S02_BC35_STM32L.bin 48KB
stm32l1xx_tim.c 105KB
stm32l1xx_rtc.c 93KB
stm32l1xx_adc.c 71KB
stm32l1xx_flash.c 68KB
stm32l1xx_rcc.c 65KB
stm32l1xx_usart.c 55KB
stm32l1xx_i2c.c 48KB
stm32l1xx_spi.c 40KB
stm32l1xx_dma.c 37KB
stm32l1xx_sdio.c 36KB
stm32l1xx_pwr.c 32KB
stm32l1xx_dac.c 24KB
stm32l1xx_lcd.c 24KB
stm32l1xx_syscfg.c 21KB
stm32l1xx_aes_util.c 20KB
stm32l1xx_flash_ramfunc.c 20KB
stm32l1xx_gpio.c 20KB
stm32l1xx_aes.c 20KB
stm32l1xx_opamp.c 19KB
system_stm32l1xx.c 19KB
stm32l1xx_fsmc.c 14KB
stm32l1xx_comp.c 13KB
misc.c 11KB
stm32l1xx_wwdg.c 10KB
stm32l1xx_exti.c 10KB
stm32l1xx_iwdg.c 9KB
usart.c 8KB
BC35.c 7KB
key.c 6KB
stm32l1xx_dbgmcu.c 6KB
ds1302-2.c 5KB
stm32l1xx_it.c 4KB
syscalls.c 4KB
main.c 4KB
timer.c 4KB
stm32l1xx_crc.c 3KB
mpu6050.c 3KB
sw180.c 2KB
buzzer.c 836B
LED.c 316B
pyvenv.cfg 113B
.cproject 18KB
client.crt 1KB
bootstrap.css 187KB
bootstrap.min.css 147KB
bootstrap.css 143KB
bootstrap.min.css 118KB
font-awesome.css 30KB
bootstrap-theme.css 26KB
bootstrap-grid.css 25KB
bootstrap-theme.min.css 23KB
bootstrap-grid.min.css 18KB
bootstrap-reboot.css 6KB
bootstrap-reboot.min.css 5KB
material-icons.css 873B
login.css 726B
page.css 710B
register.css 270B
my.css 34B
main.d 7KB
mpu6050.d 7KB
key.d 7KB
timer.d 6KB
sw180.d 6KB
BC35.d 6KB
ds1302-2.d 6KB
stm32l1xx_syscfg.d 6KB
stm32l1xx_usart.d 6KB
usart.d 6KB
stm32l1xx_wwdg.d 6KB
stm32l1xx_fsmc.d 6KB
stm32l1xx_sdio.d 6KB
stm32l1xx_gpio.d 6KB
stm32l1xx_tim.d 6KB
stm32l1xx_lcd.d 6KB
stm32l1xx_dac.d 6KB
stm32l1xx_pwr.d 6KB
stm32l1xx_aes.d 6KB
stm32l1xx_rtc.d 6KB
stm32l1xx_spi.d 6KB
stm32l1xx_dma.d 6KB
stm32l1xx_i2c.d 6KB
stm32l1xx_adc.d 6KB
buzzer.d 6KB
stm32l1xx_it.d 6KB
stm32l1xx_flash_ramfunc.d 6KB
stm32l1xx_dbgmcu.d 6KB
stm32l1xx_aes_util.d 6KB
stm32l1xx_flash.d 6KB
stm32l1xx_opamp.d 6KB
stm32l1xx_comp.d 6KB
stm32l1xx_iwdg.d 6KB
stm32l1xx_exti.d 6KB
stm32l1xx_crc.d 6KB
stm32l1xx_rcc.d 6KB
共 455 条
- 1
- 2
- 3
- 4
- 5
资源评论
zero2100
- 粉丝: 160
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功