经过几天的漫长的探索和调试,终于连上机智云了。
历经的困难:esp8266总是连接机智云app超时,连接无反应,无数据。
1、机智云开发者中心,新建数据点,生成muc代码包,具体配置可以参考其他文章。
由于使用的是arduino的analogWrite(),即PWM,所以需要配置为可写的模式,范围为0~255。标识名为英文,它会在生成的代码里出现。
2、下载,代码生成,这里的选择所用的单片机。
将解压的代码包放在arduino的libraries。原因是arduino无法下载机智云的有关库,所以需要我们手动放置在arduino的库里面,否则编译将会报错。这里的libraries文件夹不要放错了,可以看看libraries文件夹是否有其他的库来检查是否放错。
3、代码合成。使用Arduino IDE打开这两个机智云生成的文件。
这里我将networkConfig的部分代码复制至simpleTry.ino中。
红框为复制部分
绿色部分为我自己加的(根据自己的情况),蓝色为复制。将mySerial.begin(115200)改为Serial.begin(9600),因为我在连接esp8266时发现控制不了arduino上的led,改为Serial.begin(9600)就好了,可能是波特率过大导致的。
改为下图:
这里的wifiStatusHandle(),需要将与print有关的都需要注释,这里我保留了一个,来查看WiFi连接状况,即如果WiFi正常连接,就点亮led1。
***********************该部分是功能实现的重点***********************************
1) 黄框源代码原本是注释掉的,我们这里去掉注释。它大概的意思是判断EVENT_PWM这个事件是否发生,如果发生了我就读取varR_PWM的数值上传至机智云平台。
2)蓝色为我自己所加的控制代码,将varR_PWM这个变量传入analogWrite函数来,实现PWM脉冲波的调节。
3)红色为复制部分,调用机智云定义的函数。按键函数用不到,不过我还是把它复制了,直接在app那里一键配置。
4、esp8266烧录固件和配置
去机智云平台下载Gagent_Debugger调试软件,输入下图的key和密码
选择MCU,串口、波特率。
正常的话,esp8266上的指示灯会闪烁,界面应该出现RX、TX。如果只有TX或RX是不正常的,需要拔掉usb线,重新打开串口。(注意调试时,arduino不要与esp8266连接)
连接手机连接WiFi,一键配置也需要连接相同的WiFi。如果以上步骤没出现,请重复。
连接后,ESP8266与arduino的TX、RX相互接线实现命令传输,arduino的vcc、GND对应esp8266接线(给esp8266供电)。
调试效果:+