跳到主要内容

2 篇博文 含有标签「esp32」

esp32开发板

查看所有标签

关于ESP32接入MQTT服务器(基于OneNet)

· 阅读需 2 分钟
小辉猫
Embedded Systems Developer @ China

此篇主要介绍如何使用ESP32接入OneNet的MQTT服务器。

事前准备:程序需要WiFi库函数以及PubSubClient库函数,可在library中直接下载,随即在主函数头文件上声明

#include <WiFi.h>         //wifi库函数
#include <WiFiClient.h> //wifi库函数
#include <PubSubClient.h> //MQTT协议 库函数 用于连接onenet物联网平台

1.注册OneNet平台账户 管理员界面 2.创建产品,随即在设备管理中创建设备,并使用数据流模式,接入协议采用MQTT协议 设备管理界面 3.获取设备ID和APIKEY,在官方推出的token计算工具中计算token

4.在程序部分声明相关信息

const char* mqtt_server = "183.230.4.96";   //onenet 服务端ip地址
const int port = 1883 ; //端口号
const char* mqtt_pubid = "id"; //产品ID
const char* mqtt_devid = "project"; //产品名称
const char* mqtt_password = "token";

5.创建一个PubSub客户端

WiFiClient wc;
PubSubClient pc(wc); // 创建一个PubSub客户端, 传入创建的WIFI客户端

6.执行MQTT服务器连接

  pc.setServer("183.230.40.96",1883);//设置客户端连接的服务器,连接Onenet服务器, 使用1883端口
pc.connect(mqtt_devid, mqtt_pubid, mqtt_password);

7.发布数据

   String payload = "{\"id\": 123,\"dp\": {\"temperature\": [{\"v\": " + String(temperature) + "}]}}";
构造完整的topic路径
String topic = "$sys/project_id/项目名称/dp/post/json";
pc.publish(topic.c_str(), payload.c_str());
String payload0 = "{\"id\": 123,\"dp\": {\"humidity\": [{\"v\": " + String(humidity) + "}]}}";
构造完整的topic路径
String topic0 = "$sys/project_id/项目名称/dp/post/json";
pc.publish(topic0.c_str(), payload0.c_str());

8.注意保持MQTT心跳

  pc.setKeepAlive(5);
pc.loop();

使用平台数据面板查看单片机上传的数据

关于ESP系列处理器连接TFT屏

· 阅读需 1 分钟
小辉猫
Embedded Systems Developer @ China

准备 : ESP开发板 TFT屏幕(SPI协议) 杜邦线若干

1.连接线路

2.下载TFT_eSPI库

TFT_eSPI库

3.修改TFT_eSPI库中的User_Setup文件 可以在代码头声明include《User_Setup.h》,随即按住Ctrl,单击User_Setup.h文件,进入文件界面 文中大部分代码注释了,只需将自己的屏幕型号和相关信息取消注释即可,例如

#define ILI9341_DRIVER
#define TFT_WIDTH 240
#define TFT_HEIGHT 320

4.esp单片机的硬件spi可以映射在任意引脚上 只需要在这里修改自己实际连接的引脚即可

#define TFT_MISO     19 
#define TFT_MOSI 21
#define TFT_SCLK 20
#define TFT_CS 1
#define TFT_DC 42
#define TFT_RST 2

5.可以在User_Setup.h文件末尾修改SPI速度 SPI速度