基于NodeMCU Lua V3的物联网开发日记Day2

突然发现我没有I²C设备,哭了,等买到了再写。

声明:本站所有分类为【教程】的文章、图片、代码等资源均仅供学习交流或非盈利性使用,不得以任何形式用于盈利性用途(CC BY-NC-SA)。本站引用/参考的所有资源均归原作者所有,遵照原作者License使用,本站仅进行引用/参考。感谢所有为开源的世界贡献力量的人们。

不管怎么说8,疫情确实很大程度推进了我国的信息化进程,后疫情时代下的办事效率明显提高很多

第零点五天(11.2-11.11)

  1. 最后一次做电赛了,没拿国奖还是挺遗憾的
    1. D题基于树莓派的网络测量摄像头复盘见附录链接(贡献者:HYJJJJJJJJ/LZJ/星夜)
  2. 时间基本都花在电赛上,没做什么其他的东西
  3. 待办:看了挺多论文,下周该写一篇文献综述

附录1:还没写完呢,再等等

附录2:还没写完呢,再等等

第负一天

终于还是走到日记这一步了,逼迫自己做点什么东西什么的

虽然这个东西已经想好久了(指新建文件夹),资料也一直在找,不过总归是没有实质性的工作进展。

那么决定从今天开始整理每天的工作/学习进度,尽力做到每一天都有进展/收获。

别再每天都胡适之打牌了

必要性废话,以上。

接下来每天的工作内容都会详细地记录(同时也防止一星期后自己看不懂屎山代码)。反正小站没人看,看也看不懂,也不用担心什么技术细节泄露(你有技术吗)


  1. 今天的主要任务是明确作为毕设的气象站的功能
    1. 待办:还得找一趟帆哥问需求
    2. 具体功能:
      1. 采集哪些物理信息有待确定
      2. 具有与服务器通讯的能力(暂定方案esp8266)
      3. 建立一个数据库以存储各气象站历史信息
      4. 深度学习?待定
      5. 总之就是问题还有一大堆,这几天先试着写一下解析数据包并存入数据库的程序吧
  2. 待办:装ZEMAX没有成功捏,明天装13版吧,还有lighttools
    1. 十二月份之前画好灯的电路

物联网开发日记Day3

好久没推进度了,我自裁。

今天搞一下服务器(CentOS)上的MQTT服务端(mosquitto)。以及PC端(Win)、MCU(NodeMCU)的MQTT客户端,用于验证服务可用性。

  1. 服务端
    1. 安装
      1. mosquitto官网下载tar.gz文件
      2. wget https://mosquitto.org/files/source/mosquitto-2.0.14.tar.gz
      3. 键入 tar -xzvf mosquitto-2.0.14.tar.gz 以解压文件。
      4. 键入 cd mosquitto-2.0.14 打开文件夹。
      5. 键入 make 执行预编译,若无报错则键入 make install 安装。
      6. 此处可能有如下Error。
      7. 原因是缺少cJSON库,解决方法如下
        1. 打开 /usr/local/
        2. 键入 wget https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.15.tar.gz 下载cJSON库到当前文件夹。
        3. 键入 tar -xzvf v1.7.15.tar.gz 解压。
        4. 键入 cd cJSON-1.7.15 打开文件夹,键入 make 执行预编译,键入 make install 安装。
        5. 回到 cd mosquitto-2.0.14/ ,键入 make 再次执行预编译。无报错,键入 make install 安装。安装完成。
  2. PC客户端
    1. 下载MQTT.fx并安装。(官网的版本需要Lisence,可免费获取三个月LisenceKey。(同时官网使用.msi文件安装的版本不能通过自带的uninstall.exe正常卸载,我删掉文件夹之后又在注册表之海里摸了十分钟才删干净。有洁癖的朋友请使用前者。))
  3. MCU客户端

参考:
Linux搭建MQTT服务器(mosquitto)并使用
Centos7安装Mosquitto服务

声明:本站所有分类为【教程】的文章、图片、代码等资源均仅供学习交流或非盈利性使用,不得以任何形式用于盈利性用途(CC BY-NC-SA)。本站引用/参考的所有资源均归原作者所有,遵照原作者License使用,本站仅进行引用/参考。感谢所有为开源的世界贡献力量的人们。

基于NodeMCU Lua V3的物联网开发日记Day1

  1. 安装驱动:首先给电脑安装相应的驱动(CH340/CP210x),具体USB转TTL芯片型号请自行询问开发板卖家。
  2. 查看端口:将NodeMCU Lua V3开发板用数据线连接到电脑,打开设备管理器,记下芯片所对应的端口号(COMx)。
  3. 下载固件:打开MicroPython官网,选择最新的Releases下载(普通版本或者OTA兼容皆可)。
  4. 烧录固件:打开下载好的烧录工具,按照安信可官方的说明配置烧录工具,将第三步下载好的固件烧写进开发板的0x000位置。稍等一段时间,直到工具显示完成。
  5. 上电测试:将开发板连接到电脑,打开串口通信软件(VOFA+PuTTY),将波特率设置为115200,数据流控和校验位设为none,数据位为8,停止位为1。
    1. VOFA+:设置如图
      1. 设置完成后点击,打开串口通信,双击流控信号RTS,或按下开发板上的RST(Reset)键给开发板复位。
      2. 等待开发板启动,按照提示,在通信窗口输入 help() 并发送,如图正常得到反馈,验证完成。
    2. PuTTY:配置如图
      1. 配置完成后点击open,打开会话窗口,按下开发板上的RST(Reset)键将开发板复位。
      2. 等待开发板启动,按照提示,在通信窗口输入 help() 并发送,如图正常得到反馈,验证完成。
  6. 验证Wi-Fi连接功能:
    1. 准备一个2.4GHz的无线局域网,依次在串口工具内键入以下命令,其中<AP_name>和<password>分别替换成Wi-Fi的SSID和密码。
      • import network
      • sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
      • sta_if.scan() # Scan for available access points
      • sta_if.connect(“<AP_name>”, “<password>”) # Connect to an AP
      • sta_if.isconnected() # Check for successful connection
    2. 若运行最后一条返回了True则可验证Wi-Fi连接功能正常。
  7. 传入要运行的程序文件:
    1. 将开发板连上电脑,打开串口通信软件,将开发板复位。
    2. 向串口发送 import webrepl_setup ,按照提示信息设置四位以上的密码。
    3. 发送
      import webrepl
      webrepl.start()

      启动WebREPL,可以实现电脑和开发板在同局域网下的文件传输功能。
    4. 从github上的micropython/webrepl下载WebREPL客户端,打开压缩包中的webrepl.html文件。
    5. 查看串口软件中输出的IP。
    6. 将IP替换入打开的webrepl客户端中,点击Connect并输入密码,即可建立连接。
    7. 在客户端中输入 os.listdir() 可以得到主目录下的文件列表,在下方Get a file窗口可以下载列表中的文件。Send a file窗口可以发送电脑上的文件。
    8. 将写好的要运行的主程序命名为main.py,通过webrepl传入,开发板在上电启动之后会首先运行boot.py,之后运行main.py。将开发板复位,即可实现程序运行。

参考:
【ESP8266】基于ESP8266的MicroPython入门笔记
为NodeMCU刷入MicroPython固件

声明:本站所有分类为【教程】的文章、图片、代码等资源均仅供学习交流或非盈利性使用,不得以任何形式用于盈利性用途(CC BY-NC-SA)。本站引用/参考的所有资源均归原作者所有,遵照原作者License使用,本站仅进行引用/参考。感谢所有为开源的世界贡献力量的人们。

Python socket与ssl库的有效性

import socket
import ssl

#有效代码
s = ssl.wrap_socket(socket.socket())
s.connect(('www.stellarisdream.cn', 443))

#报400Error
#s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#s.connect(('www.stellarisdream.cn', 443))

暂未找到合理解释,待更新

Python发起网络请求 返回并打印主页内容

import socket
import ssl

s = ssl.wrap_socket(socket.socket())
s.connect(('www.stellarisdream.cn', 443))
s.send(b'GET / HTTP/1.1\r\nHost:www.stellarisdream.cn\r\nConnection:close\r\n\r\n')

buffer = []
while True:
    d = s.recv(1024)
    if d:
        buffer.append(d)
    else:
        break
data = b''.join(buffer)
s.close()

header, html = data.split(b'\r\n\r\n', 1)
print(header.decode('utf-8'))
with open('stella.html', 'wb') as f:
    f.write(html)