翼度科技»论坛 编程开发 mysql 查看内容

06~12-Esp8266物联网芯片的使用(一)-part02/03-ESP8266开发环境、编程举

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
上一章主要作了芯片介绍,这一章主要作对开发环境的介绍。
认识Arduino
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
在Arduino上配置ESP8266开发环境(离线包)
(1)打开Arduino IDE(版本任意)-> 首选项 ->附加开发板管理器网址,填入:
  1. http://arduino.8266.com/stable/package_esp8266com_index.json
复制代码
之后重启IDE。

(我的电脑上已经安装过Arduino,并且其安装操作也非常的简单,故略过安装)
(2)重启后检查“附加开发板管理器网址“是否成功更改。不成功则需要再试一次。
(3)将packages文件夹解压到C:\Users\Username(你的用户名)\AppData\Local\Arduino15\staging目录下。(2)成功则不用执行第(3)步。
(4)打开工具->开发板 -> 点击开发板管理器 ->滚动到最下面 选择:esp8266 by ESP8266 Community 版本选2.7.2,点击安装。
首先我遇到的第一个问题是开发板管理器找不到esp8266。
考虑重启软件,失败。
考虑开发板管理器中的合并,未找到相关管理器,失败。
考虑重启电脑,失败。
考虑更新Arduino,更新至2.0.X版本。失败。
那么最终经过多日折腾,终于找到了解决办法,是Json文件太旧引起的:
首先复制的时候就不能是```这样的代码块,会有no protocol报错;
然后找到开发者的更新日志找到源码文件夹里面的README.md,终于找到新的url(3.1.2):
  1. https://arduino.esp8266.com/stable/package_esp8266com_index.json
复制代码
之前http协议已经更新到https协议。
启动Arduino
启动Arduino需要对IDE进行环境测试。代码如下:
  1. #include<dummy.h>
  2. int LEDPin=D5;
  3. void setup()
  4. {
  5.     pinMode(LEDPin,OUTPUT);
  6. }
  7. void loop()
  8. {
  9.     digitalWrite(LEDPin.HIGH);
  10.     delay(500);
  11.     digitalWrite(LEDPin.LOW);
  12.     delay(500);
  13. }
复制代码
此处举了一个温湿度传感器上传数据库的例子:
  1. //调用库
  2. #include<dht.h>//DHT传感器的库
  3. #include<ESP8266WiFiMulti.h>//连接wifi的库文件
  4. #include<ESP8266WebServer.h>//构建服务器的库文件
  5. //实例化
  6. ESP8266WiFiMulti wifiMulti;
  7. ESP8266WebServer tempreture_humidity_server(80);//以端口80构建服务器
  8. dht DHT;
  9. //功能性函数的初始声明
  10. void conToNet();
  11. void handleRoot();//初始声明根目录请求处理函数
  12. void handleNotFound();//初始声明无效目录请求处理函数
  13. //初始声明全局变量
  14. float temp,humi;//温度和湿度
  15. char local_temp_humi_values[250];
  16. //全局引脚定义
  17. int dataPin=D5;//初始化引脚,用于指定传感器
  18. //setup
  19. void setup()//setup函数仅执行一次
  20. {
  21.   Serial.begin(9600);//定义调试用串口波特率,串口0
  22.   conToNet();//连接wifi
  23.   tempreture_humidity_server.begin();//启动服务器
  24.   tempreture_humidity_server.on("/",HTTP_GET,handleRoot);//配置根目录访问处理函数
  25.   tempreture_humidity_server.onNotFound(handleNotFound);//配置无效目录访问处理函数
  26.   Serial.println("HTTP tempreture_humidity_server started");//显示服务器启动成功
  27. }
  28. void loop(){
  29.   //从数据引脚读取数据
  30.   DHT.read22(dataPin);//执行DHT类中的read22方法
  31.   
  32.   //提取对应的温湿度数据
  33.   temp=DHT.temperature;//提取DHT类中的温度属性
  34.   humi=DHT.humidity;//提取DHT类中的湿度属性
  35.   //参数串口输出
  36.   Serial.print("Temperature = ");
  37.   Serial.print(temp);
  38.   Serial.print(" ℃ ");
  39.   Serial.print("    Humidity = ");
  40.   Serial.print(humi);
  41.   Serial.print(" % ");
  42.   //延迟一段时间,否则代码报错
  43.   delay(2000);//程序空运行2000ms
  44.   snprintf(local_temp_humi_values,sizeof(local_temp_humi_values),"{"temperature":%2.1f,"humidity":%2.1f}",temp,humi);
  45.   //{"temperature":29.4,"humidity":34.1}是json格式
  46.   Serial.println(local_temp_humi_values);
  47.   tempreture_humidity_server.handleClient();
  48. }
  49. //访问函数
  50. void handleRoot()
  51. {
  52.   tempreture_humidity_server.send(200,"text/plain",local_temp_humi_values);
  53. }
  54. void handleNotFound()
  55. {
  56.   tempreture_humidity_server.send(404,"text/plain","404:Not found");
  57. }
  58. //wifi连接函数
  59. void conToNet()
  60. {
  61.   Serial.print("Connecting");
  62.   wifiMulti.addAP("711206","64431286");//加载多个可能有效的路由器ID和密码
  63.   wifiMulti.addAP("vivo S5","1234567890");
  64.   wifiMulti.addAP("abc","1234567890");
  65.   wifiMulti.addAP("203","203forever");
  66.   while(wifiMulti.run()!=WL_CONNECTED)
  67. {
  68.   delay(1000);
  69.   Serial.print(".");
  70. }
  71.   Serial.println();
  72.   Serial.print("WiFi Connected!!\nName:");
  73.   Serial.println(WiFi.SSID());
  74.   Serial.print("IP Address:");
  75.   Serial.println(WiFi.localIP());
  76. }
复制代码
来源:https://www.cnblogs.com/xiaoyeah/p/17403022.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具