11-开发板接入小五物联实现远程控制(Wi-Fi模块,远程升级自己的程序)

https://www.cnblogs.com/yangfengwu/p/9411134.html

基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-18540610442.6.36a74814ZSaRsu&id=569295486025

这一节为教程最终版功能演示,现在不必深究,早晚自己全部都会实现的(静静的跟着我学哈)

这一节学习远程升级自己的程序

如果要远程升级自己的程序,需要自己下载底层的升级程序,因为需要修改一些参数,让模块远程访问自己

的升级软件

如果前面下载了,可以用下面的方式清除程序

如果这种方式清除不了,可以

现在打开远程升级软件

修改些东西,因为自己这个软件既可以升级WIFI也可以升级GPRS,所以需要做对应的修改

  

好现在下进去程序

我给大家准备了一个测试的程序(其实就是自己云端默认的程序,上上姐默认远程下载的程序)

local RelayNowState=0
local RelayNowStateCopy=0
globalSendData ="nil";

local UsartReceiveData="";
local UsartReceiveDataCnt=0;
local UsartReceiveDataCntCopy=0;

RelayPin = 2;

if  file.open("switch.lua", "r") then
    if  file.read() == "relay=1" then
        gpio.write(RelayPin,1)
        gpio.mode(RelayPin,gpio.OUTPUT)
        print("relay=1")
    else
        gpio.write(RelayPin,0)
        gpio.mode(RelayPin,gpio.OUTPUT)
        print("relay=0")
    end
    file.close();
end

local DataDisposeTimerCnt = 0;
local DataDisposeTimer = tmr.create()
DataDisposeTimer:register(10, 1, function()
    RelayNowState = gpio.read(RelayPin)
    if  RelayNowState ~= RelayNowStateCopy then
        RelayNowStateCopy = RelayNowState
        globalSendData = "switch;relay="..RelayNowState
    end

    if  UsartReceiveDataCnt ~= 0 then
        DataDisposeTimerCnt=DataDisposeTimerCnt + 1;
    if  DataDisposeTimerCnt>=10 then
            UsartReceiveDataCnt = 0;
        DataDisposeTimerCnt=0;
            globalSendData = UsartReceiveData;
            UsartReceiveData="";
    end
    end
    if  Mymqtt ~= nil and MqttConnectedFlage == true then
        if  globalSendData ~= "nil" then
            Mymqtt:publish(PublishTopic,globalSendData, 0, 0, function(client)
            end)
            globalSendData = "nil"
        end
    end
end)
DataDisposeTimer:start()

function MqttDisposeMethod(client, topic, data)
    uart.write(0,data)
    list = split(data, ‘;‘)
    if  string.find(list[1],"switch") ~= nil then
        if  list[2] ~= nil then
            if  file.open(list[1]..".lua", "w+") then
                file.write(list[2])
                file.close()
            end
            if  list[2] == "relay=0"  then
                 gpio.write(RelayPin,0)
                 gpio.mode(RelayPin,gpio.OUTPUT)
            elseif  list[2] == "relay=1"  then
                 gpio.write(RelayPin,1)
                 gpio.mode(RelayPin,gpio.OUTPUT)
            end
            globalSendData = data;
        end
    elseif  string.find(list[1],"query")  then
        if  list[2] ~= nil then
            if  list[2] == "switch" then
                RelayNowState = gpio.read(RelayPin)
                globalSendData = "switch;relay="..RelayNowState
            end
        end
    end
end

--[[
uart.setup(0, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1)
uart.on("data",0,function(data)
    UsartReceiveData = UsartReceiveData..data;
    UsartReceiveDataCnt = UsartReceiveDataCnt + 1;
    DataDisposeTimerCnt = 0;
end, 0)]]

为了测试明显,咱修改个地方,用手机APP直接远程控制

这个灯

好了现在远程下载

可以用手机也可以直接用软件

更新完成后

现在用手机再控制试一试

  

  

现在用手机再试一试更新程序(需要更改个地方,因为是为了方便所有人,为了避免更新冲突)

根据自己的修改哈

好现在用手机去更新程序

更新完

可以自己再试一试切换,或者试一试清除所有文件

以后几节就要开始真正的学习啦!!!勤快点哈

原文地址:https://www.cnblogs.com/yangfengwu/p/9414119.html

时间: 2024-08-29 04:44:58

11-开发板接入小五物联实现远程控制(Wi-Fi模块,远程升级自己的程序)的相关文章

12-开发板接入小五物联实现远程控制(stm32采集温湿度传感器DHT11)

采集DHT11温湿度数据, 使用stm32f103zet6 的GPIOG11引脚读取SHT11数据,通过串口打印采集的温湿度 dht11.c文件: #include "dht11.h" #include "delay.h" //复位DHT11 void DHT11_Rst(void) { DHT11_IO_OUT(); //SET OUTPUT DHT11_DQ_OUT=0; //拉低DQ delay_ms(20); //拉低至少18ms DHT11_DQ_OUT=

1-51单片机开发板介绍(所讲内容,功能介绍)

今天算是测试好了自己的51开发板,这是学习51单片机的第一篇文章,所以就介绍一下自己的开发板的一些功能 自己会把所有的功能讲的明明白白,说一下哈,自己的教程注重于基础,实际应用和综合使用, 基础: 自己会把基础讲的明明白白,透透彻彻 实际应用: 我会把自己做过的一些项目的案例和教程结合起来分享给大家,,会告诉大家真实的项目应该怎样做. 综合使用: 因为自己电路,单片机,FPGA,STM32,PLC,上位机,Android等等或多或少的都做过项目,所以我会综合起来讲,所有的东西都会一点一点的写出来

(转)关于三星cortex A9 Sate4412 开发板 uboot 启动的一些问题释疑

说明:本文转载自:http://blog.csdn.net/gooogleman/article/details/17238079 作者:gooogleman                   日期:2013.11.27 最近,发现4412 和S5PV210的一些iNand/TF启动方式有些不同,4412 的一些磁盘索引不是固定在某一个通道的上的,而S5PV210 是固定的,这就导致一些人在烧写4412 ,分区格式化的时候会莫名其妙,不知所以然,现在看看代码,看是4412 代码到底是为何会这样

SAMSUNG S3C2440 ARM LINUX 开发板 上手初体验 --开发环境搭建

1,linux开发环境搭建 2,程序测试 easyOpentag驱动安装,打开连接,选择ARM-linux 链接:http://pan.baidu.com/s/1pJKK4w7 密码:a0re 1,环境搭建 我的系统版本 [email protected]:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release: 14.04 Cod

使用C#应用程序与Arduino开发板进行通信

在本文中,我们将一个Arduino Pro Mini开发板连接到PC,并且使用C# Windows应用程序与其进行通信. 将硬件连接到PC是非常有利的,不仅是因为你可以发送命令以及监控状态,还可以实时调试代码.当你正在努力制作一个模块,想知道模块的响应以及跟踪你的状态机时,检查变量会特别有帮助. 关于Arduino Pro Mini和C# 首先,我想向大家描述一下我选择Arduino Pro Mini的原因. 在我看来,小尺寸是当今设计的一个优势. 如今,随着便携式物联网设备的日益普及,对小型化

ARM嵌入式开发板推荐

arm嵌入式主板具有低成本.高性能.低功耗的特点,是一个嵌入在设备里面做控制.数据处理使用的CPU板,承担着"大脑"的角色,主要是作为工控主板使用.短短几年,ARM嵌入式的异军突起,日益广阔. ARM嵌入式正在成为带动IT产业新增长点,其主要应用在消费类电子行业和工业控制领域,在中国工业控制领域,与国民生产.通讯.医疗.航天.交通相关的嵌入式应用持续快速增长,同时随着智能设备终端应用市场的快速发展,ARM嵌入式产品不断深入人们的日常生活,并推动终端产品的智能水平不断提升.工业和日常智能

三星Exynos4412开发板RP4412升级烧写时注意按开机键5秒左右

关于荣品4412开发板使用中相关问题,仅作参考. 注意:RP4412开发板升级烧写换到inand启动时一定要按开机键5S左右. 问:用的荣品三星Exynos4412开发板,我把RP4412的iNAND内容清空后,按照升级方法所说的在命令行运行writer_4412_file.bat,升级完后开发板不能从iNAND启动.什么原因? 答:烧写的文件是1G内存的还是2G内存的.确定下烧对文件. 问:好像是1G,我在试试看试了还是不行呢怎么办,现在都没法启动了. 答:你确认下有没有严格按照步骤来烧写文件

ARM开发板上iconv调用失败的解决方法

当前流行的字符编码格式有:US-ASCII.ISO-8859-1.UTF-8.UTF-16BE.UTF-16LE.UTF-16.GBK.GB2312等,其中GBK.GB2312是专门处理中文编码的.而libiconv是一个常用的编码转换库,支持常用的多种编码之间的转换.在Linux下,工具链gcc有专门的libiconv库,所有不用移植,但在arm-linux下就没那么幸运了,需要我们额外移植libiconv库,不过,过程还是比较简单的. 一.字符编码转换libiconv库介绍 libiconv

基于MT7688模块的开发笔记10——通过TFTP实现Ubuntu与开发板之间的文件传输

本篇文章是上一篇文章的继续,在这篇文章里我通过在Ubuntu上搭建TFTP服务器,实现了在MT7688开发板上上传和下载Ubuntu中的文件,这为后面的程序开发提供了方便. 一.安装TFTP服务器:安装tftp-hpa和tftpd-hpa软件 1.1安装第一个软件 [email protected]:/home# apt-get install tftp-hpa Reading package lists... Done Building dependency tree Reading stat