介绍
你好。这是我的第一篇文章。
作为大学战略教育计划的一部分的IoT Dojo第一学期的活动已经结束,所以我想总结一下其中涉及的技术。
这是我第一次写这样的文章,所以请理解我可能无法很好地解释它。
项目大纲
这一次,我们在一个 5 或 6 人的小组中工作,主题是(?)“独立导航定位”。一开始,我一点知识都没有,所以我一边听着做这个项目的研究生导师,一边继续做这个项目。老实说,确定一个主题非常困难,当时我很担心以后会发生什么。
在进行独立导航定位时,我们使用名为“esp32”的设备进行独立导航定位,该设备具有6轴加速度传感器和角度传感器。根据从传感器获得的值计算坐标,并根据这些值绘制预先创建的地图(7m x 7m)。
这次我负责在服务器端接收数据,然后将数据发送到 html 端并渲染,所以想留个言。 (概述很长,不是吗?)
使用的设备
我之前有点接触过,但这里是我这次使用的设备
- esp32
- 陀螺仪传感器
- 加速度计
- 面包板(较大的一个)
- PC(服务器)
大致是这样的。
什么是烧瓶?
这一次,由于是小规模的 Web 应用开发,所以我使用了一个名为“Flask”的 Python Web 应用框架。
#安装烧瓶
在 ubuntu 上
pip install flask
安装现已完成。 (很容易!)
烧瓶执行方法
发送/接收 HTML 数据
接下来,编写从服务器端发送数据时的处理和发送请求时的处理。
@app.route("/test")
def web_view():#関数名は何でもいいです
......
# htmlにデータを送る
return render_template("map_create.html", data=[x_data,y_data,x_re_data,y_re_data])
您可以将此返回语句中指定的数据发送到 HTML。
...
<body>
...
let list_data = {{ data | tojeson }}
...
</body>
现在您可以接收 Flask 之前发送到变量 list_data 的数据了。
发送数据到 HTML,接收完成。
从 esp(传感器)发送和接收数据
接下来是关于从 esp 发送和接收数据。 esp 使用 micropython 作为语言。 (几乎与python相同)
url = 'http://192.168.2.101:5000/' #サーバのIP
payload = {"degree": degree_list} #データ部分(key:distance, value:test)
#JSON形式にする
header = {'Content-Type' : 'application/json'}
#おまじない
response = urequests.post(url, data = ujson.dumps(payload).encode("utf-8"), headers = header)
print(response)
response.close()
这是esp端的发送过程。我正在从 esp 发送 json 格式的数据。在 url 中指定要发送到 Flask 服务器的 IP 地址。然后指定数据并发送响应。这样就完成了数据传输。
然后在服务器端接收数据。
@app.route("/",methods=["POST"])
def main(): #関数名はなんでもOK
...
# アプリケーションを動かすためのおまじない
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000, debug=True) #ポート5000番
...
这个 app.run 部分是运行 Flask 的咒语(?)。之后,在命令提示符下,例如 Ubuntu
export FLASK_APP=flask_server.py
flask run --host=0.0.0.0
你可以通过输入并执行这个来启动 Flask。
这就是如何运行 Flask 的全部内容!
综上所述
写完文章后,我发现很难解释这项技术。在课外活动中,有一些困难的部分,比如团队发展,但我想我学到了很多。我认为 Web 应用程序开发很有趣。我打算参加下半场,所以我想和新的球队一起努力!
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308628378.html