LinxVIEW论坛-斯科道

标题: ESP8266编程资源荟萃 [打印本页]

作者: Scadao    时间: 2019-10-16 12:06
标题: ESP8266编程资源荟萃
ESP8266官方支持的VI库





作者: Scadao    时间: 2019-10-16 12:20

泰国LabVIEW极客分享的开源ESP8266 VI库

编译器官网PWS板说明

其VI库与官方推荐的PWS板件兼容!





作者: Scadao    时间: 2019-10-17 02:31
编译器官方出品的PWS板入门指南


Programmable-Wireless-Stamp-PWS-Getting-Started.pdf

1.79 MB, 下载次数: 6


作者: Scadao    时间: 2019-10-20 01:39
WeMos D1板Arduino板级支持包下载链接:
http://arduino.esp8266.com/stable/package_esp8266com_index.json



作者: Scadao    时间: 2019-10-20 01:48
WeMos D1串口驱动与资料官网:
https://wiki.wemos.cc/products:d1:d1
作者: Scadao    时间: 2019-10-26 20:43
泰国LabVIEW极客针对含ESP8266板子PWS的相关VI库,可通过下面选项设置通过Arduino IDE来下载板级支持包:
https://raw.githubusercontent.com/QWaveSystems/PWS/master/package/versions/package_qwavesyspws_index.json



作者: Scadao    时间: 2019-10-26 21:21
美国编译器官方制造的PWS板子,VIPM支持的VI库链接:
vipm://qwavesystems_tsxperts_programmable_wireless_stamp_(pws)_home_student

vipm://qwavesystems_tsxperts_programmable_wireless_stamp_(pws)_standard

作者: Scadao    时间: 2019-10-26 21:40
PWS板件使用用户指南:
https://tsxperts.com/wp-content/uploads/2014/03/Programmable-Wireless-Stamp-PWS-Specifications.pdf


Programmable-Wireless-Stamp-PWS-Specifications.pdf

1.9 MB, 下载次数: 3


作者: Scadao    时间: 2019-10-26 22:00
本帖最后由 Scadao 于 2019-10-27 22:29 编辑

WeMos D1板原理图和ESP8266规格书见附件

esp8266ex技术规格书.pdf

983.99 KB, 下载次数: 4

d1_v2.0.0原理图.pdf

53.3 KB, 下载次数: 5


作者: Scadao    时间: 2019-10-26 23:33
本帖最后由 Scadao 于 2019-10-29 10:28 编辑

WeMos D1 GPIO引脚定义
WeMos D1的外形与Arduino Uno很相似,但由于集成了ESP8266,因此引脚的定义相比Arduino也略有差异。

引脚
WeMos D1包含:

数字IO引脚11个。除了D0引脚外,其余引脚均支持pwm、I2C、中断、单总线。
模拟输入引脚1个(最大支持3.3v输入)。
可以看出,虽然外形与Arduino Uno很相似,但模拟引脚仅有1个。数字引脚(包括RX,TX)共有11个,不过其中10个引脚支持pwm、I2C、中断、单总线让人有点小吃惊。

需要注意的一点是:WeMos D1上数字引脚的一侧引脚数量远大于11个,这是因为该板上D3与D15、D4与D14、D5与D13、D6与D12、D7与D11、D9与板载LED 它们两两之间是互通的。
具体引脚的定义可以参考我整理的引脚定义库。

引脚定义库


/*
    Name:       pins_wemos_d1.h
    Created:    11/26/2017 11:36:44 AM
    Author:     Landriesnidis
    --------------------------------------
    Pin definition functions for WeMos D1
*/




#ifndef Pins_WeMos_D1_h
#define Pins_WeMos_D1_h


static const uint8_t PIN_D0 = 3;            //RX
static const uint8_t PIN_D1 = 1;            //TX
static const uint8_t PIN_D2 = 16;           
static const uint8_t PIN_D3_D15 = 5;        //SCL
static const uint8_t PIN_D4_D14 = 4;        //SDA
static const uint8_t PIN_D5_D13 = 14;       //SCK
static const uint8_t PIN_D6_D12 = 12;       //MISO
static const uint8_t PIN_D7_D11 = 13;       //MOSI  
static const uint8_t PIN_D8 = 0;
static const uint8_t PIN_D9_LED = 2;        //LED
static const uint8_t PIN_D10 = 15;          //SS


static const uint8_t PIN_A0 = 17;


static const uint8_t PIN_RX = 3;
static const uint8_t PIN_TX = 1;
static const uint8_t PIN_SCL = 5;
static const uint8_t PIN_SDA = 4;
static const uint8_t PIN_SCK = 114;
static const uint8_t PIN_MISO = 12;
static const uint8_t PIN_MOSI = 13;
static const uint8_t PIN_SS = 15;
static const uint8_t PIN_LED = 2;


#endif /* Pins_WeMos_D1_h */


实物图

为确保不出乌龙,附上我的WeMos D1照片:





作者: Scadao    时间: 2019-10-26 23:44
本帖最后由 Scadao 于 2019-10-29 10:54 编辑

WeMos D1引脚对应Arduino规范




作者: Scadao    时间: 2019-10-27 20:31
PWS板帮助文档:





作者: ywqs    时间: 2019-10-27 21:35
Scadao 发表于 2019-10-26 21:40
PWS板件使用用户指南:
https://tsxperts.com/wp-content/uploads/2014/03/Programmable-Wireless-Stamp-P ...

温老师!请教一下!我安装PWS,但是没有例子,编辑枚举时,无法修改这个引脚的枚举值。
作者: ywqs    时间: 2019-10-27 21:36
Scadao 发表于 2019-10-26 21:40
PWS板件使用用户指南:
https://tsxperts.com/wp-content/uploads/2014/03/Programmable-Wireless-Stamp-P ...

温老师!请教一下!我安装PWS,但是没有例子,编辑枚举时,无法修改这个引脚的枚举值。
作者: Scadao    时间: 2019-10-27 22:06
本帖最后由 Scadao 于 2019-10-27 22:07 编辑
ywqs 发表于 2019-10-27 21:36
温老师!请教一下!我安装PWS,但是没有例子,编辑枚举时,无法修改这个引脚的枚举值。

选择第一个环形文本控件:






作者: ywqs    时间: 2019-10-27 22:22
Scadao 发表于 2019-10-27 22:06
选择第一个环形文本控件:

谢谢!OK了。
作者: Scadao    时间: 2019-10-27 22:45
ESP8266技术参考122页



作者: Scadao    时间: 2019-10-27 22:48
ESP8266常见问题


ESP8266常见问题.pdf

1.5 MB, 下载次数: 2


作者: Scadao    时间: 2019-10-28 23:44
ESP8266 arduino 内核文档链接:

https://arduino-esp8266.readthedocs.io/en/2.5.2/


ESP8266 Arduino 内核封装库即板级支持包下载链接:

https://github.com/esp8266/Arduino

作者: Scadao    时间: 2019-10-29 00:20
数字引脚对应编程见附件VI,截图如下——



有必要说明下PWM输出是软件实现的,非硬核PWM输出,D0~D16均可实现,内核文档说明如下:

Analog output

analogWrite(pin, value) enables software PWM on the given pin. PWMmay be used on pins 0 to 16. Call analogWrite(pin, 0) to disable PWMon the pin. value may be in range from 0 to PWMRANGE, which isequal to 1023 by default. PWM range may be changed by callinganalogWriteRange(new_range).

PWM frequency is 1kHz by default. CallanalogWriteFreq(new_frequency) to change the frequency. Valid valuesare from 100Hz up to 40000Hz.

The ESP doesn’t have hardware PWM, so the implementation is by software.With one PWM output at 40KHz, the CPU is already rather loaded. The morePWM outputs used, and the higher their frequency, the closer you get tothe CPU limits, and the less CPU cycles are available for sketch execution.


数字引脚对应.rar

3.61 KB, 下载次数: 4


作者: Scadao    时间: 2019-10-29 10:00
本驱动程序针对Windows10 64位安装成功!

WeMos D1串口驱动程序.rar

225.27 KB, 下载次数: 5


作者: Scadao    时间: 2019-10-29 10:58
本主题帖子前面主要罗列的是WeMos D1 R1板相关信息,针对R2版,图示如下:









作者: Scadao    时间: 2019-11-12 20:48
ESP8266用Arduino IDE通过贝壳物联接入天猫,可以小程序,和语音控制

ESP8266(nodeMCU固件)连接WiFi,并登录贝壳物联服务器

远程控制通讯——基于NodeMCU固件的ESP8266控制LED灯并返回控制结果



作者: Scadao    时间: 2019-11-12 21:04
使用smartconfig配置WIFI,连接物联网

#include <ESP8266WiFi.h>
WiFiClient client;
#define relay1 2
#define key 5//将dht11的data口接在8266的GPIO2上
const char *ssid = "Charlie Testing AP";
const char *password = "11111111";
const char *host = "121.42.180.30";
char flag=0;

bool autoConfig()
{
int a=0;
pinMode(key,INPUT);
if(digitalRead(key) == LOW)
flag=1;
else
flag=0;
while(!digitalRead(key));

if(flag==1)
{
return false;
}
else
{
WiFi.begin();
while (WiFi.status() != WL_CONNECTED)
{
Serial.println("AutoConfig Success");
Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
WiFi.printDiag(Serial);
delay(1000);
a++;
if(a==30)
{
a=0;
return false;
break;
}
}
if(false)
{
Serial.println("");
Serial.println("wifi line faild !");
}
else
{
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
return true;
}
}
}

void smartConfig()
{
WiFi.mode(WIFI_STA);
Serial.println("\r\nWait for Smartconfig");
WiFi.beginSmartConfig();
while (1)
{
Serial.print("Wait soft line..\r\n");
if (WiFi.smartConfigDone())
{
Serial.println("SmartConfig Success");
Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
WiFi.setAutoConnect(true); // 设置自动连接
break;
}
delay(1000);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void line_tcp()
{
Serial.println(WiFi.localIP());
const int httpPort =8181;
if (!client.connect(host, httpPort))
{
Serial.println("connection failed");
return;
}
Serial.print("connecting to ");
Serial.println(host);
client.write("{\"M\":\"checkin\",\"ID\":\"****\",\"K\":\"**********\"}\r\n");//登陆设备,修改成自己的ID和key
delay(100);
}
void setup()
{
Serial.begin(115200);
if (!autoConfig())
{
Serial.println("Start AP mode");
smartConfig();
}
line_tcp();
}

void loop()
{
char valueread;
while(client.available())
{
String line = client.readStringUntil('\r');
Serial.print(line);
int i;
for(i=0;i<=150;i++)
{
if((line=='p') &&( line[i+1]=='l'))
{
digitalWrite(relay1,HIGH);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is on\",\"SIGN\":\"ok\"}\r\n");
}

if((line=='s') && (line[i+1]=='t'))
{
digitalWrite(relay1,LOW);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"ok\"}\r\n");
}


}
}
client.write("{\"M\":\"say\",\"ID\":\"****\",\"C\":\"123456\"}\r\n");//修改自己的ID,向设备发送信息,防止掉线
delay(6000);
}


作者: Scadao    时间: 2019-11-12 21:25
贝壳物联通讯协议TCP连接测试教程



作者: Scadao    时间: 2019-11-15 23:13
Portable式安装指南





作者: Scadao    时间: 2019-11-16 00:51
本帖最后由 Scadao 于 2019-11-16 00:55 编辑

PWS的板级安装包网络连线安装不成功:因arduino.esp8266.com中的内容已移向其他地,所以人工下载win32-xtensa-lx106-elf-gb404fb9-2.tar.gzhttps://github.com/esp8266/Arduino/releases/download/2.3.0/win32-xtensa-lx106-elf-gb404fb9-2.tar.gz

最后将其拷贝到路径:..\Arduino15\staging\packages\











作者: Scadao    时间: 2019-11-16 01:01

Arduino ESP8266内核安装说明文档中心




作者: Scadao    时间: 2019-11-16 06:59
ESP8266其SD卡读写操作编译和DS1307时钟设置均编译成功——





作者: ywqs    时间: 2019-11-16 11:09
Scadao 发表于 2019-11-16 00:51
PWS的板级安装包网络连线安装不成功:因arduino.esp8266.com中的内容已移向其他地,所以人工下载win32-xten ...

温老师好!下载后直接拷贝就行了吗?
作者: Scadao    时间: 2019-11-16 13:01
ywqs 发表于 2019-11-16 11:09
温老师好!下载后直接拷贝就行了吗?

你要确保其它均已下载完毕,到这压缩包下载卡住了,才通过上文链接下载拷贝!
作者: ywqs    时间: 2019-11-16 17:58
这个I2C的引脚有点乱,使用ESP8266的支持包时,引脚(I2C)为GPIO4/SDA,GPIO5/SCL.  直接用PWS库时,GPIO2/SDA,GPIO14/SCK.  好像有点易混淆。
作者: Scadao    时间: 2019-11-16 20:09
ywqs 发表于 2019-11-16 17:58
这个I2C的引脚有点乱,使用ESP8266的支持包时,引脚(I2C)为GPIO4/SDA,GPIO5/SCL.  直接用PWS库时,GPIO2/SD ...

ESP8266的I2C是模拟的,这个可不用太过纠结!PWS的引脚使用更吻合官方文档——





作者: ywqs    时间: 2019-11-16 21:10
Scadao 发表于 2019-11-16 20:09
ESP8266的I2C是模拟的,这个可不用太过纠结!PWS的引脚使用更吻合官方文档——

嗯!但是使用官方库,好像不能同时使用SPI和I2C,时钟引脚相同。
作者: Scadao    时间: 2019-11-16 21:34
本帖最后由 Scadao 于 2019-11-16 21:36 编辑
ywqs 发表于 2019-11-16 21:10
嗯!但是使用官方库,好像不能同时使用SPI和I2C,时钟引脚相同。

是的!没错!如果需要更多功能,可能需要ESP32芯片选用。
作者: Scadao    时间: 2019-11-17 23:08
访问DS3231和DS1307芯片的地址一样:都是0x68

WiFi Init.vi编译下载经验证,封装的库有错误!!

Arduino IDE 1.6.5文本编译下载control4.ino成功!并通过贝壳物联小程序控制成功!
(必须拷贝aJson文件夹到Arduino IDE 1.6.5安装路径libraries文件夹


WiFi_Test.rar

22.47 KB, 下载次数: 0


作者: Scadao    时间: 2019-11-17 23:33
如下DS1307时钟程序运行出错!










欢迎光临 LinxVIEW论坛-斯科道 (http://linxview.com/) Powered by Discuz! X3.2