APRS气象站:Nodemcu + BME280

2018年10月31日 7 5,993

APRS气象站:Nodemcu + BME280

特点:

  • 灵活,简单写lua程序
  • 支持mqtt、http、aprs发送,发送时LED灯亮0.5s
  • 支持现场配置,运行状态时按FLASH键,下次RST后进入配置模式
  • 在配置模式(LED闪烁),按FLASH键,会删除所有配置,下次RST写入默认配置并进入配置模式
  • 支持远程更新。发送 update 到 /cmd/chipid,进入更新模式,发送 restart 重启,发送 文件名 文件长度 更新

购买链接:

外加USB电源就可以工作。

连接图:

ME280模块/OLED   ESP8266模块

VCC ------>  电源 (注意是3.3v模块)

GND ------> GND

SCL ------>   D5 (GPIO14)

SDA ------>  D6 (GPIO12)

APRS气象站:Nodemcu + BME280

APRS气象站:Nodemcu + BME280

步骤:

1、安装esptool.py

请参考https://github.com/espressif/esptool安装esptool.py

2、将ESP8266板子通过USB线连接电脑,安装USB驱动,查看得知串口是COM3

3、执行如下命令,如果能看到芯片类型,说明串口工作正常

esptool.py --port COM3 chip_id

4、执行如下命令刷新flash

esptool.py --port COM3 write_flash 0 nodemcu-master-11-modules-2018-10-25-00-33-21-float.bin

说明:nodemcu-master-11-modules-2018-11-01-11-20-13-float.bin由https://nodemcu-build.com/生成,选择的模块有bme280 file gpio http i2c mqtt net tmr u8g2 uart wifi。

5、安装ESPlorer

请参考https://esp8266.ru/esplorer/安装

6、打开ESPlorer

选择COM3,115200,open

按8266板子USB一侧的RST按钮,能看到“Formatting file system. Please wait...",等结束。

7、写入程序

依次打开bme280.lua  init.lua  setup.lua三个文件上传到ESP8266

8、配置

如果启动时config.lua不存在,会生成默认配置,默认配置SSID为ustcnet,通过MQTT发送至202.141.176.2,并进入配置模式。

也可以在运行时,按FLASH键,下次启动将进入配置模式。

在配置模式,可以用手机等终端,连接“ESP8266”SSID,访问http://192.168.0.1,修改配置后单击“save”保存。

也可以把config.lua文件下载回来修改后再上传。

APRS气象站:Nodemcu + BME280

源码地址:https://github.com/bg6cq/nodemcu_bme280

APRS最后更新:2020年5月18日
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:7   其中:访客  4   博主  3
    • BG7IKK BG7IKK 2

      有个问题,LUA源码里没有指定OLED I2C的脚位,我现在只能上传BME280的数据到aprs.fi。但本地接OLED显示却无从入手。请问你是如何接OLED显示文本的?

        • bh8sel bh8sel

          回复 BG7IKK BG6CQ老师的Github有两个项目,有一个项目能够接OLED,你注意区分一下。我都是用他的源码,没有改动的。

        • BG7IKK BG7IKK 2

          我也是用OLED那个LUA。里面代码:
          disp = u8g2.ssd1306_i2c_128x64_noname(0, 0x3c)
          disp:setFont(u8g2.font_unifont_t_symbols)
          disp:setFontRefHeightExtendedText()
          disp:setDrawColor(1)
          disp:setFontPosTop()
          disp:setFontDirection(0)
          我看到是加载了U8G2对SSD1306的驱动,按道理一般I2C在NodeMCU默认SCL和SDA脚位分别是接D1和D2的,但没反应,D3/D4和D7/D8也交替试过不行,你的OLED SCL和SDA是分别接在NodeMCU哪个脚位?谢谢!

            • bh8sel bh8sel

              回复 BG7IKK OLED SCL和SDA分别对应ESP8266的D5和D6。

            • BG7IKK BG7IKK 2

              那就是问题所在了,源码里不是定义D5,D6给BME280了吗?
              ME280模块 ESP8266模块
              VCC ——> 电源 注意是3.3v模块
              GND ——> GND
              SCL ——> D5 (GPIO14)
              SDA ——> D6 (GPIO12)

              • BG7IKK BG7IKK 2

                在SETUP.LUA里可以自定义BME280,但OLED在BME280.LUA里我就不太了解LUA语言如何用U8G2重定义OLED的脚位。