武汉千烨科技 武汉千烨科技
首页
公司介绍
  • 系统平台

    • 物联网平台
    • 专属物联平台-插座类
    • 语音中控平台
    • 屏显显-在线信息发布
    • CRM系统
    • WMS系统
    • OA系统
    • erp系统
    • 少儿编程
  • Ai智能语音工牌

    • Ai智能语音工牌
  • ROS智能机器人小车

    • ROS智能机器人小车
  • Stm32开发套件

    • stm32F103系列控制板用户手册
    • stm32F407系列控制板用户手册
  • 智能插座开发套件

    • 智能插座示例代码讲义
    • 智能插座验收和用户使用手册
    • esp32C3插座功能引脚使用说明
    • esp8266插座功能引脚使用说明
    • 智能插座介绍、配网、控制视频讲解
    • 示例代码视频讲解
  • ESP开发套件

    • ESP32
    • ESP8266
  • 4G开发套件

    • 合宙air780E
    • 中移ML307A/R
    • 移远E20
  • ZigBee开发套件
  • NB-Iot开发套件
csdn博文 (opens new window)
淘宝网店 (opens new window)
视频教程 (opens new window)
  • 物联网平台
  • 专属物联平台-插座类
  • 语音中控平台
  • 屏显显-在线信息发布
  • CRM系统
  • WMS系统
  • OA系统
  • erp系统
  • 少儿编程
  • 关于我们
  • 联系我们

武汉千烨科技

物联网软硬件完整解决方案定制、开发、生产和维护!现有产品包括AI智能插座、4G AI语音工牌、闸机、ROS AI机器人小车等;现有各平台系统(可定制)包括物联网平台、语音中控平台、CRM系统、WMS系统、OA系统、ERP系统、屏显显(在线信息发布系统)、少儿编程(叽哇快跑)等等;欢迎咨询来访!
首页
公司介绍
  • 系统平台

    • 物联网平台
    • 专属物联平台-插座类
    • 语音中控平台
    • 屏显显-在线信息发布
    • CRM系统
    • WMS系统
    • OA系统
    • erp系统
    • 少儿编程
  • Ai智能语音工牌

    • Ai智能语音工牌
  • ROS智能机器人小车

    • ROS智能机器人小车
  • Stm32开发套件

    • stm32F103系列控制板用户手册
    • stm32F407系列控制板用户手册
  • 智能插座开发套件

    • 智能插座示例代码讲义
    • 智能插座验收和用户使用手册
    • esp32C3插座功能引脚使用说明
    • esp8266插座功能引脚使用说明
    • 智能插座介绍、配网、控制视频讲解
    • 示例代码视频讲解
  • ESP开发套件

    • ESP32
    • ESP8266
  • 4G开发套件

    • 合宙air780E
    • 中移ML307A/R
    • 移远E20
  • ZigBee开发套件
  • NB-Iot开发套件
csdn博文 (opens new window)
淘宝网店 (opens new window)
视频教程 (opens new window)
  • 物联网平台
  • 专属物联平台-插座类
  • 语音中控平台
  • 屏显显-在线信息发布
  • CRM系统
  • WMS系统
  • OA系统
  • erp系统
  • 少儿编程
  • 关于我们
  • 联系我们
  • 产品
心之雅
2024-01-11
目录

智能插座示例代码讲义

智能插座示例代码讲义1.2

[TOC]

# 讲解思路

# 原理图讲解(略)

# 示例代码讲解

  1. 功能点
  2. 硬件连接
  3. 接口定义
  4. 关键代码
  5. 工程代码解读
  6. 编译,下载
  7. 效果演示(略)

# 原理图简要讲解(略)

# lesson01-led

# 功能点

led初始化

led开,关,翻转

# 硬件连接

IO2<------>LIGHT(LED)

# 接口定义

//led.h
/**
  * @brief  led_init初始化
  * @retval 无
  * @note 无
  */
void led_init(void);

/**
  * @brief  led_set设置
  * @param(in)  value led开和关值:1开;0关
  * @retval 无
  * @note 无
  */
void led_set(unsigned char value);

/**
  * @brief  led_toggle状态反转
  * @retval 无
  * @note 无
  */
void led_toggle(void);

/**
  * @brief  led状态值获取
  * @retval led状态值
  * @note 无
  */
unsigned char led_status_get();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 关键代码

1)模式配置

// LED:配置gpio2为output mode
pinMode(LED, OUTPUT);

2)控制led开关

digitalWrite(LED, value);
1
2
3
4
5
6
7
8

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson02-relay

# 功能点

relay初始化

relay开,关,翻转

# 硬件连接

IO13<------>RELAY

image-20230817100745284

# 接口定义

//relay.h
/**
  * @brief  继电器初始化
  * @retval 无
  * @note 无
  */
void relay_init(void);

/**
  * @brief  继电器状态反转
  * @retval 无
  * @note 无
  */
void relay_toggle();

/**
  * @brief  继电器设置
  * @param(in)  value 继电器状态值,1:开;0关
  * @retval 无
  * @note 无
  */
void relay_set(unsigned char value);

/**
  * @brief  继电器状态获取
  * @retval 继电器状态值,1:开;0关
  * @note 无
  */
unsigned char relay_status_get();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 关键代码

1)模式配置

// RELAY:配置gpio13为output mode
pinMode(RELAY, OUTPUT);

2)控制relay开关

digitalWrite(RELAY, value);
1
2
3
4
5
6
7
8

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson03-key

# 功能点

key初始化

key输入检测

# 硬件连接

IO0<------>KEY

image-20230817100745284

# 接口定义

//key.h
/**
  * @brief  key_init
  * @retval 无
  * @note 无
  */
void key_init(void);

/**
  * @brief  key_press_wait
  * @retval 无
  * @note 无
  */
unsigned char key_status_get();
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 关键代码

1)模式配置

// KEY:配置gpio0为intput mode
pinMode(KEY, INPUT);

2)读取key输入信号是高还是低

digitalRead(KEY);
1
2
3
4
5
6
7
8

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson04-hlw8012

# 功能点

hlw8012初始化

电压,电流,功耗读取

# 硬件连接(略)

# 接口定义

//hlw8012.h
double getCurrent();
unsigned int getVoltage();
unsigned int getActivePower();
1
2
3
4

# 关键代码

1)HLW8012初始化
  // Initialize HLW8012
  hlw8012.begin(CF_PIN, CF1_PIN, SEL_PIN, CURRENT_MODE, true,2000000);
  hlw8012.setResistors(CURRENT_RESISTOR, VOLTAGE_RESISTOR_UPSTREAM, VOLTAGE_RESISTOR_DOWNSTREAM);

2)电压,电流,功耗获取
hlw8012.getVoltage();
hlw8012.getCurrent();
hlw8012.getActivePower();
1
2
3
4
5
6
7
8
9

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson05-wifi

# 功能点

wifi初始化,连接

# 硬件连接

# 接口定义

# 关键代码

// 连接WiFi
WiFi.begin(wifiSsid, wifiPassword);

// 打印wifi信息
Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
Serial.println(WiFi.localIP());
Serial.println(WiFi.subnetMask());
Serial.println(WiFi.gatewayIP());
Serial.println(WiFi.dnsIP());
Serial.println(String("\"mac\":") + WiFi.macAddress());
1
2
3
4
5
6
7
8
9
10

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson06-tcpClient

# 功能点

tcpClient连接,数据发送和接收

# 硬件连接

# 接口定义

# 关键代码

// 连接WiFi
WiFi.begin(wifiSsid, wifiPassword);

// 连接tcp服务器
client.connect(tcpServerAddress, tcpServerPort)

//发送数据
client.print(sendData);

//接收数据
recvData = client.readStringUntil('\n');
1
2
3
4
5
6
7
8
9
10
11

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson07-tcpServer

# 功能点

tcpServer连接,数据发送和接收

# 硬件连接

# 接口定义

# 关键代码

// 连接WiFi
WiFi.begin(wifiSsid, wifiPassword);

// 启动tcp服务器
server.begin();

//判断是否有客户端连接
client = server.available();

//接收数据
String revcData = client.readStringUntil('\n');

//发送数据
client.print(sendData);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson08-httpClient

# 功能点

httpClient连接,数据发送和接收

# 硬件连接

# 接口定义

# 关键代码

// 连接WiFi
WiFi.begin(wifiSsid, wifiPassword);

// 连接http服务器
client.connect(httpServerAddress, httpServerPort)

//接收数据
String revcData = client.readStringUntil('\n');

//组装http格式消息,发送数据
sprintf(message, "GET %s%s HTTP/1.1\r\nHost:%s\r\nConnection: keep-alive\r\n\r\n",
                url, fileName, httpServerAddress);
client.print(message);
1
2
3
4
5
6
7
8
9
10
11
12
13

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson09-httpServer

# 功能点

httpServer启动,数据发送和处理来自客户端的请求

# 硬件连接

# 接口定义

# 关键代码

// 连接WiFi
WiFi.begin(wifiSsid, wifiPassword);

1
2
3
//适用于esp8266
// 启动http服务器
server.on("/", handleIndex);
server.begin();

//返回发送数据
server.send(200, "text/html", "hi,qianyetech");

//处理来自客户端的请求
server.handleClient();
1
2
3
4
5
6
7
8
9
10
//适用于esp32
// 启动http服务器
server.begin();

//监听是否有客户端可获取
WiFiClient client = server.available(); 

//读取数据和回复get请求
String request = client.readStringUntil('\r');
            client.readStringUntil('\n');

            if (request.startsWith("GET"))
            {
                if (request.indexOf("/") != -1)
                {
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/html");
                    client.println();

                    client.println("<h1>hi,qianyetech</h1>");
                }
            }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

# lesson10-mqtt发布与订阅

# 功能点

mqtt服务连接,话题订阅和发布

# 硬件连接

# 接口定义

# 关键代码

// 连接WiFi
WiFi.begin(wifiSsid, wifiPassword);

// mqtt连接
mqttClient.connect(clientId.c_str(), NULL, 0, true,NULL)

//订阅和发布
mqttClient.subscribe(topic, 0);
mqttClient.publish(topic, payload, retain);

1
2
3
4
5
6
7
8
9
10

# 工程代码解读

vscode打开工程代码

# 编译,下载

# 效果演示(略)

上次更新: 2024/12/22, 16:46:08
最近更新
01
武汉千烨科技有限公司
02-05
02
CRM系统体验
01-25
03
OA系统体验
01-25
更多文章>
Copyright © 2023-2024 qytech
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式