介绍

你好。这是我的第一篇文章。

作为大学战略教育计划的一部分的IoT Dojo第一学期的活动已经结束,所以我想总结一下其中涉及的技术。
这是我第一次写这样的文章,所以请理解我可能无法很好地解释它。

项目大纲

这一次,我们在一个 5 或 6 人的小组中工作,主题是(?)“独立导航定位”。一开始,我一点知识都没有,所以我一边听着做这个项目的研究生导师,一边继续做这个项目。老实说,确定一个主题非常困难,当时我很担心以后会发生什么。 自立航法測位やってみた(Flask)

在进行独立导航定位时,我们使用名为“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

相关文章:

  • 2021-12-13
  • 2021-11-21
  • 2021-09-11
  • 2021-12-12
  • 2019-09-18
  • 2021-11-29
  • 2021-12-05
  • 2021-12-15
猜你喜欢
  • 2021-12-12
  • 2021-08-02
  • 2021-11-02
  • 2021-12-05
  • 2021-12-07
  • 2022-01-05
  • 2021-11-29
  • 2021-12-10
相关资源
相似解决方案