APRS气象站:Nodemcu + BME280

APRS915,933

特点:

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

购买链接:

外加USB电源就可以工作。文章源自HAM小站-https://bh8sel.com/1976.html

连接图:

文章源自HAM小站-https://bh8sel.com/1976.html

ME280模块/OLED   ESP8266模块文章源自HAM小站-https://bh8sel.com/1976.html

VCC ------>  电源 (注意是3.3v模块)文章源自HAM小站-https://bh8sel.com/1976.html

GND ------> GND文章源自HAM小站-https://bh8sel.com/1976.html

SCL ------>   D5 (GPIO14)文章源自HAM小站-https://bh8sel.com/1976.html

SDA ------>  D6 (GPIO12)文章源自HAM小站-https://bh8sel.com/1976.html

文章源自HAM小站-https://bh8sel.com/1976.html

文章源自HAM小站-https://bh8sel.com/1976.html

步骤:

1、安装esptool.py文章源自HAM小站-https://bh8sel.com/1976.html

请参考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文件下载回来修改后再上传。

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

 最后更新:2020-5-18
评论  9  访客  6  作者  3
    • BG7IKK
      BG7IKK

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

        • bh8sel
          bh8sel

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

        • BG7IKK
          BG7IKK

          我也是用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

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

              • BG7IKK
                BG7IKK

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

                • bg4vrg
                  bg4vrg

                  有没有办法使用bmp280模块,现在bme280价格已经涨到60+,还有的卖100+的。nodemcu里没有bmp280的模块,无法识别

                匿名

                发表评论

                匿名网友
                :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
                确定

                取消

                拖动滑块以完成验证