参考资料:
esp 烧录固件 和 烧录程序
esp 通信测试程序
ili9341 tft显示屏使用
零件:
Arduino uno
ili9341 tft
esp01s
usb 烧录器
最初的想法是, 弄一个BTC 和 ETH 价格显示的小电视,找了找手上有的硬件就这几样,于是就开始了折腾。
首先声明我是菜鸡一个, C++ 也就学了半桶水,硬件更是十分业余,我的方法也许你不一定能直接套用。
一开始就有个很严重的问题, 就是 Arduino 插上 我这块屏幕就没有多余的接口,来给esp做软串口通信了, 所以我只能使用 硬串口即 Arduino 上的 RX 和 TX 口, 网上有些文章说可以互相通信的,反正我是没弄成功,我的方法是,直接使用 esp 读取网站 json 获取BTC 的价格,通过串口发送到 Arduino 经过数据处理显示到屏幕上。
esp01 升级 和 烧录 参考上面的 esp 烧录固件 和 烧录程序 文章。
arduino ide 写入 esp01 的程序:
/*This sketch demonstrates how to scan WiFi networks.The API is almost the same as with the WiFi Shield library,the most obvious difference being the different file you need to include:
*/#include <ESP8266WiFi.h>void setup() {Serial.begin(9600);Serial.println(F("\nESP8266 WiFi scan example"));// Set WiFi to station modeWiFi.mode(WIFI_STA);// Disconnect from an AP if it was previously connectedWiFi.disconnect();delay(100);
}void loop() {String ssid;int32_t rssi;uint8_t encryptionType;uint8_t* bssid;int32_t channel;bool hidden;int scanResult;Serial.println(F("Starting WiFi scan..."));scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);if (scanResult == 0) {Serial.println(F("No networks found"));} else if (scanResult > 0) {Serial.printf(PSTR("%d networks found:\n"), scanResult);// Print unsorted scan resultsfor (int8_t i = 0; i < scanResult; i++) {WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);Serial.printf(PSTR(" %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"),i,channel,bssid[0], bssid[1], bssid[2],bssid[3], bssid[4], bssid[5],rssi,(encryptionType == ENC_TYPE_NONE) ? ' ' : '*',hidden ? 'H' : 'V',ssid.c_str());delay(0);}} else {Serial.printf(PSTR("WiFi scan error %d"), scanResult);}// Wait a bit before scanning againdelay(5000);
}
Arduino uno 的程序:
void setup()
{//波特率务必与要通讯的模块保持一致,否则通讯失败Serial.begin(9600);
}
void loop()
{//因为串口是一位一位的发送所以在这里缓存完再发送if (Serial.available()) //判断串口缓存区是否有数据{size_t counti = Serial.available();uint8_t sbuf[counti];Serial.readBytes(sbuf, counti); //读取串口数据Serial.write(sbuf, counti); //将读到的数据通过TX引脚发出去}
}
程序弄好把 Arduino 与 esp01 连接
esp01 -------- Arduino
RX -------- TX
TX -------- RX
v3.3 -------- v3.3
VCC -------- VCC
打开 Arduino IDE 串口监视器,成功的话显示如下
这说明esp01 已经通过串口发送信息到 Arduino uno 了, 剩下的的就自己去折腾吧。。。。。