近期开发一个产品,成本、功耗的缘故,需要在ESP8266上开发程序,经历一下过程,作为记录,以免再走重复的弯路。
1. 硬件准备:购买USB转TTL模块。一开始想把开发需要的材料做得简单点,就定下了USB转TTL + ESP-12S 共2个开发模块的方案,希望通过USB-TTL模块直接给ESP-12S供电,结果发现ESP-12S电流较大,或者USB-TTL模块的问题,一旦接入ESP12S就会导致USB模块不断的重新加载驱动,无法使用。最后只能通过外部的电源给ESP-12S供电,才得以解决。
2. 硬件功能确认:参考http://wiki.ai-thinker.com/esp_download,对模块进行了编程,下载了IOT的BIN文件,串口成功收到相应的提示信息,硬件功能确认OK,下载功能确认OK。
3. 准备编写自己的代码:下载esp8266_nonos_sdk_v1.5.4.7z,编译通过,下载程序时提示错误。
卡在这里没法往下搞了。
搞了半天,重启烧录软件,不再提示这个问题。坑
烧录成功了,串口接收到1串乱码,又卡住了。
于是又回去看了说明书,说是上电的时候波特率是74880bps,有点奇葩了。于是用安信可串口调试软件接上来一看。
OK
4. 按照sdk api说明,完成udp client的通信。
5. 完成COAP协议的添加,成功发送数据到服务器。
6. 增加读取SSID、IP地址、CHIP ID、RSSI,成功。
7. 增加温湿度传感器SHT20,成功。
8. 增加ADC读取电池电压,成功,但是电压不准,应该是电阻的精度不够,等合适电阻回来之后重新调试,或校准。
9. 原本温湿度IO为GPIO2和GPIO14,变更为GPIO4和GPIO5之后,老是重启,但是把温湿度停止后还是重启,不知道为啥,明天继续调试。[问题已经找到:LDO电源IC的输出电压为3.0V,处于临界点,且LDO输出没有大电容,电压不稳定导致复位]
10. 将温湿度IO移动到IO4和IO5,软件配置这两个GPIO为上拉时,不停的复位,没找到问题。只能外加上拉电阻了。
下一步工作:按键、休眠,低功耗电流测试。
遗留问题:
1. os_sprintf()函数无法进行浮点数格式转换,目前自己写了个函数先用着。