CCC_122:博客只用于学习交流,不涉及任何商业用途,如果有错误之处,欢迎指正。

在上一个博客的基础上 探索ESP8285(2)搭建Windows版MQTT服务器

我们来通过EMQX服务器点亮ESP8285模块上的LED灯。

首先查得ESP8285模块上的LED灯引脚是GPIO4,低电平亮起,所以我们先定义GPIO口

在setup里设置引脚为输出模式

在连接里修改订阅的主题为 /mqtt/test/

在callback函数里修改LED引脚参数

编译上传到ESP8285模块上,接下来测试效果:

打开MQTTBox,连接好服务器,在Payload上输入1,然后按Publish发布信息。

ESP8285模块接收到信息后会自动打开LED。 如果是发送0或者其他的字符,LED灯关闭。

以下是整个测试代码:

    #include <ESP8266WiFi.h>#include <PubSubClient.h>#define PIN_LED 4// Update these with values suitable for your network.const char* ssid = "....";const char* password = "....";//const char* mqtt_server = "iot.eclipse.org";const char* mqtt_server = "192.168.1.162";const String macAddress = WiFi.macAddress();//const char* clientID = macAddress.c_str();const char* clientID = "client001";const char* userName = "user001";const char* passWord = "psd001";WiFiClient espClient;PubSubClient client(espClient);long lastMsg = 0;char msg[50];int value = 0;void setup() {      pinMode(PIN_LED, OUTPUT);     // Initialize the LED pin as an outputSerial.begin(115200);setup_wifi();client.setServer(mqtt_server, 1883);client.setCallback(callback);}void setup_wifi() {delay(10);// We start by connecting to a WiFi networkSerial.println();Serial.print("Connecting to ");Serial.println(ssid);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());}void callback(char* topic, byte* payload, unsigned int length) {Serial.print("Message arrived [");Serial.print(topic);Serial.print("] ");for (int i = 0; i < length; i++) {Serial.print((char)payload[i]);}Serial.println();// Switch on the LED if an 1 was received as first characterif ((char)payload[0] == '1') {digitalWrite(PIN_LED, LOW);   // Turn the LED on (Note that LOW is the voltage level// but actually the LED is on; this is because// it is acive low on the ESP-01)} else {digitalWrite(PIN_LED, HIGH);  // Turn the LED off by making the voltage HIGH}}void reconnect() {// Loop until we're reconnectedwhile (!client.connected()) {Serial.print("Attempting MQTT connection...");// Attempt to connectif (client.connect(clientID,userName,passWord)) {Serial.println("connected");// Once connected, publish an announcement...client.publish("/mqtt/test/", "hello world");// ... and resubscribeclient.subscribe("/mqtt/test/#");} else {Serial.print("failed, rc=");Serial.print(client.state());Serial.println(" try again in 5 seconds");// Wait 5 seconds before retryingdelay(5000);}}}void loop() {if (!client.connected()) {reconnect();}client.loop();//      long now = millis();
//      if (now - lastMsg > 2000) {
//        lastMsg = now;
//        ++value;
//        snprintf (msg, 75, "hello world #%ld", value);
//        Serial.print("Publish message: ");
//        Serial.println(msg);
//        client.publish("outTopic", msg);
//      }}

探索ESP8285(3)通过EMQX服务器点亮一个LED灯相关推荐

  1. java gpio_单片机基础——使用GPIO输出点亮一个LED灯

    1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  2. 从零点亮一个led灯

    Stm32学习笔记一:stm32cubemx和keil5从零开始点亮一个LED灯 一.软件材料准备:stm32cubemx和keil5软件(下载方式可自行上网搜,这里不再详细叙述) 二.硬件材料准备: ...

  3. 使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯

    使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯 软件下载 基于Arduino环境搭建 点亮一个LED灯 上传成功 修改代 ...

  4. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  5. lajp linux教程,linux IMX6 汇编点亮一个LED灯

    驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...

  6. C51单片机1.点亮一个LED灯

    文章目录 一.实验原理 二.实验电路图 三.代码实现 一.实验原理 LED发光二极管具有单项导通性,通过5mA左右的电流就能正常点亮发光二极管,电流越大,LED的亮度就越强,但是如果通过的电流过大,就 ...

  7. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

  8. linux内核3.4 led驱动,JZ2440_V3_内核驱动程序_点亮一个LED灯(示例代码)

    为了用内核驱动程序点亮一个LED灯,真是费尽周折,参考了韦东山的<嵌入式linux驱动开发完全手册>(以下简称<完全手册>)和网上很多人的blog,最终在@Carlos·Wei ...

  9. 如何利用CubeMX生成代码驱动STM32H750点亮一个LED灯

    如何利用CubeMX生成代码驱动STM32H750点亮一个LED灯 CubeMX软件的配置 GPOI或者说引脚配置 第一步 第二步 工程文件的配置 最后一步:完整生成好的代码 CubeMX软件的配置 ...

  10. 3.基础实验-实验01-点亮一个LED灯

    目录 3.1 实验01-点亮一个LED灯 3.1.1 STM32CubeMX软件配置 ​3.1.2 代码编写 3.1.3 编译与下载程序 3.1.4 查看实验结果 3.1 实验01-点亮一个LED灯 ...

最新文章

  1. 现在使用计算机的工作原理是,计算机的工作原理是什么
  2. css 横线_CSS-画一个太极阴阳图
  3. python 类 对象 魔法方法概念+习题
  4. ASP.NET Core 2.2 : 扒一扒新的Endpoint路由方案
  5. html引入latex,如何在html文件中使用MathJax或LaTex?
  6. hervorgehen ( aus ... )
  7. Bootstrap3学习笔记
  8. cgroup学习(六)——attach task
  9. 韩顺平 jdbc 之 mysql,(韩顺平讲解)jdbc学习(四)---java连接mysql
  10. 技术大众化--10款无需编程的App DIY开发工具
  11. apt-get update 更新失败----如何清除破损而且陈旧的PPA仓库 (W: Failed to fetch http://ppa.launchpad.net/jonathonf/pyt)
  12. php圆的面积计算公式,圆的面积怎么计算如何求解
  13. 新手教程,网站建设第一步:织梦之家Dede程序的下载和安装
  14. 计算机中year函数怎么使用,excel2010中YEAR函数的使用方法
  15. 微信小程序wxml如何判断字符串中汉语某字符_微信小程序开发经典案例解析“嗨兔儿”...
  16. Excel插入图片实现单击放大或缩小
  17. 练手小项目——别踩白块小游戏
  18. python均线斜率_【每日一策】Matlab量化交易策略之 均线拐头配合出场
  19. Android MIFARE读写器详解2
  20. linux上好玩的东西

热门文章

  1. html表格的行合并代码,HTML代码制作的表格合并单元格教程
  2. 微观经济学 读书笔记
  3. bzoj2442codevs4654[Usaco2011 Open]修剪草坪
  4. 软件_可用rtmp直播地址20200517
  5. Micropython加速物联网开发4 - SPI驱动5110LCD屏
  6. 打开小米随身wifi的无线网卡功能
  7. 追赶法求解方程组(C语言)
  8. 一文看懂数字孪生,工信部权威白皮书
  9. PSPNet: Pyramid Scene Parsing Network论文解读
  10. Git SSL公钥密钥生成