打印
[DemoCode下载]

刚刚做的ESP8266遥控灯,感觉还可以

[复制链接]
5475|57
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 598330983 于 2017-3-22 17:43 编辑

版本:0.001
--init.lua
print("set up wifi mode")
wifi.setmode(wifi.STATION)
wifi.sta.config("ssidxxxx","pwdxxxxxx")
wifi.sta.connect()
print("IP unavaiable, Waiting...")
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip()~= nil then

     tmr.stop(1)
     print("Config done, IP is "..wifi.sta.getip())
     dofile("kaiguan.lua")
end

end)


沙发
598330983|  楼主 | 2017-3-22 16:46 | 只看该作者
这个是初始化文件,配置网络信息,等待完成。。。。还是很不错的,参考了贝壳的初始化代码,做了优化。

使用特权

评论回复
板凳
598330983|  楼主 | 2017-3-22 16:47 | 只看该作者
--kaiguan.lua
LED=3
gpio.mode(LED,gpio.OUTPUT)
svr=net.createServer(net.TCP, 30)

function receiver(sck,data)
   if (data=="ON")
   then
   gpio.write(LED,gpio.LOW)
      sck:send("LED is ON")
   else
   gpio.write(LED,gpio.HIGH)
      sck:send("LED is OFF")
   end
   print("Receive: "..data)


--   sck:close()
end

if svr then
   svr:listen(80,function(conn)
                                                  conn:on("receive",receiver)
                                                  conn:send("Hell world,my LED Light")
                        end)
end


使用特权

评论回复
地板
598330983|  楼主 | 2017-3-22 16:50 | 只看该作者
这个是联网后的执行开关文件,创建服务,进行侦听端口,通过手机的TCP调试软件发指令。
联网成功后会有欢迎信息,Hell world,my LED  Light
然后相应接收事件。。
收到后对数据比对,如果是ON字符串,就打开,并发送给手机那个LED的开关状态。。。

使用特权

评论回复
5
598330983|  楼主 | 2017-3-22 16:52 | 只看该作者
LED遥控灯,TCP的.zip (700 Bytes)



后面的版本我随着学习的深入加大复杂度,比如调节亮度。比如链接服务器。。。比如实现自动光照控制和遥控控制的结合。

使用特权

评论回复
6
598330983|  楼主 | 2017-3-22 16:55 | 只看该作者

使用特权

评论回复
7
598330983|  楼主 | 2017-3-22 16:56 | 只看该作者

使用特权

评论回复
8
598330983|  楼主 | 2017-3-22 16:57 | 只看该作者
等再研究研究,就可以用这个小东西挂单片机上玩大型的控制了。

使用特权

评论回复
9
598330983|  楼主 | 2017-3-22 17:25 | 只看该作者
下载了好多TCP手机助手,好多带广告,还比较大,经过比选,发现一个好用的,发来

TCP&UDP 测试工具
应用简介:这个工具只能作为CS模式的客户端,输入IP,端口号,发送数据即可。 举个例子: 服务器采用TCP模式,IP: 192.168.1.101, 监听端口:1234 在此应用程序中选择TCP模式 输入 IP:192.168.1.101 端口: 1234 输入想要发送的内容,点发送按钮即可 服务器发送的数据会在接收框里出现。 【基本信息】 作者:车春立 更新时间:2014-12-25 版本:1.0 系统:Android 2.2.x以上 语言:中文


com.example.tcpudptester_1.zip (271.85 KB)





使用特权

评论回复
10
598330983|  楼主 | 2017-3-22 17:26 | 只看该作者
另外如果有漂亮的没有广告的版本,欢迎推荐给我啊。。拜托了。

使用特权

评论回复
11
说书先生| | 2017-3-22 19:59 | 只看该作者

撸啊编程

使用特权

评论回复
12
稳稳の幸福| | 2017-3-22 20:26 | 只看该作者
那单片机只能从串口中获取指令和传递指令了。

使用特权

评论回复
13
734774645| | 2017-3-22 21:30 | 只看该作者
下载后认真看了一遍,这是我见过写的最好的TCP控制LED程序。

使用特权

评论回复
14
598330983|  楼主 | 2017-3-23 10:05 | 只看该作者
准备自己学学那个安卓开发

使用特权

评论回复
15
mintspring| | 2017-3-23 19:10 | 只看该作者
很好用,我试了一下。。

使用特权

评论回复
16
zhuotuzi| | 2017-3-24 00:08 | 只看该作者
创建服务,进行侦听端口,通过手机的TCP调试软件发指令

使用特权

评论回复
17
598330983|  楼主 | 2017-3-24 08:46 | 只看该作者
接下来做个模式为STATIONAP的,可以直接在手机上设置WIFI信息。

使用特权

评论回复
18
643757107| | 2017-3-24 23:41 | 只看该作者
期待楼主上位机全套做齐。

使用特权

评论回复
19
mintspring| | 2017-3-29 20:21 | 只看该作者
该APP分为两个窗口设计,参考了官方提供的例程。

主窗口和通信窗口,启动软件后在主窗口设置IP和PORT,点击链接跳转到通信窗口,也可以从通信窗口返回
主窗口代码为:
  • 变量 已切换 逻辑型
  • 事件 按钮1.被单击()
  • 已切换 =
  • 客户1.连接服务器(编辑框1.内容,编辑框2.内容,5000) '在模拟器中,本地IP10.0.2.2
  • '如果要在外网连接内网里的服务器,可以使用nat123进行端口映射,例如:客户1.连接服务器("si.nat123.net",1,5000)
  • 'nat123的具体使用方法请参考存放在资源文件里的那张图片
  • '注意:E4A的客户组件目前只能与易语言的服务器组件配合使用,其他的可能无**常连接通讯
  • 保存对象("客户1",客户1) '保存客户组件
  • 保存设置("地址",编辑框1.内容)       
  • 保存设置("端口",编辑框2.内容)
  • 结束 事件
  • 事件 客户1.连接完毕(结果 逻辑型)
  • 如果 结果 =
  • 弹出提示("连接成功")
  • 如果 已切换 =
  • 切换窗口(创建 通信窗口)
  • 结束 如果
  • 已切换 =
  • 否则
  • 信息框("LED Light","连接服务器失败","确定")
  • 结束 如果
  • 结束 事件
  • 事件 主窗口.创建完毕()
  • 保存窗口("主窗口",主窗口)
  • 结束 事件
  • 事件 编辑框1.内容被改变(新内容 文本型)
  • 结束 事件
  • 事件 编辑框2.内容被改变(新内容 文本型)
  • 结束 事件
  • 事件 按钮2.被单击()
  • 结束程序()       
  • 结束 事件
  • ——————————————————————————————————————————————————
  • 通信窗口

代码为:
  • 变量 客户1 客户
  • 事件 通信窗口.创建完毕()
  • 客户1 = 读取对象("客户1") '读取在主窗口中保存的客户组件
  • 结束 事件
  • 事件 客户1.收到数据(数据 字节型())
  • 编辑框1.内容 = 编辑框1.内容 & "\n" & "服务器:" & "\n" & 字节到文本(数据,"GBK") '收到服务器发来的字节集数据,转换成文本
  • 编辑框1.置光标位置(取文本长度(编辑框1.内容))
  • 结束 事件
  • 事件 按钮1.被单击()
  • 编辑框1.内容 = 编辑框1.内容 & "\n" & "客户端:" & "\n" & 编辑框2.内容
  • 客户1.发送数据(文本到字节(编辑框2.内容,"GBK")) '向服务器发送数据
  • 结束 事件
  • 事件 按钮3.被单击()
  • 客户1.断开连接() '断开与服务器的连接
  • 结束 事件
  • 事件 按钮2.被单击()
  • 客户1.连接服务器(读取设置("地址"),"80",5000)
  • 结束 事件
  • 事件 客户1.连接断开()
  • 弹出提示("连接已断开")
  • 结束 事件
  • 事件 按钮4.被单击()
  • 切换窗口(读取窗口("主窗口"))
  • 结束 事件
  • 事件 按钮5.被单击()
  • 客户1.发送数据(文本到字节("ON","GBK")) '向服务器发送数据       
  • 结束 事件
  • 事件 按钮6.被单击()
  • 客户1.发送数据(文本到字节("OFF","GBK")) '向服务器发送数据       
  • 结束 事件



                                                                         


使用特权

评论回复
20
mintspring| | 2017-3-29 20:22 | 只看该作者

该APP分为两个窗口设计,参考了官方提供的例程。

主窗口和通信窗口,启动软件后在主窗口设置IP和PORT,点击链接跳转到通信窗口,也可以从通信窗口返回

主窗口代码为:

  • 变量 已切换 逻辑型
  • 事件 按钮1.被单击()
  •         已切换 =
  •         客户1.连接服务器(编辑框1.内容,编辑框2.内容,5000) '在模拟器中,本地IP10.0.2.2
  •         '如果要在外网连接内网里的服务器,可以使用nat123进行端口映射,例如:客户1.连接服务器("si.nat123.net",1,5000)
  •         'nat123的具体使用方法请参考存放在资源文件里的那张图片
  •         '注意:E4A的客户组件目前只能与易语言的服务器组件配合使用,其他的可能无**常连接通讯
  •         保存对象("客户1",客户1) '保存客户组件
  •         保存设置("地址",编辑框1.内容)        
  •         保存设置("端口",编辑框2.内容)
  • 结束 事件
  • 事件 客户1.连接完毕(结果 逻辑型)
  •         如果 结果 =
  •                 弹出提示("连接成功")
  •                 如果 已切换 =
  •         
  •                         切换窗口(创建 通信窗口)
  •                 结束 如果
  •                 已切换 =
  •         否则
  •                 信息框("LED Light","连接服务器失败","确定")
  •         结束 如果
  • 结束 事件
  • 事件 主窗口.创建完毕()
  •         保存窗口("主窗口",主窗口)
  • 结束 事件
  • 事件 编辑框1.内容被改变(新内容 文本型)
  • 结束 事件
  • 事件 编辑框2.内容被改变(新内容 文本型)
  • 结束 事件
  • 事件 按钮2.被单击()
  •         结束程序()        
  • 结束 事件
  • ——————————————————————————————————————————————————
  • 通信窗口

代码为:

  • 变量 客户1 客户
  • 事件 通信窗口.创建完毕()
  •         客户1 = 读取对象("客户1") '读取在主窗口中保存的客户组件
  • 结束 事件
  • 事件 客户1.收到数据(数据 字节型())
  •         编辑框1.内容 = 编辑框1.内容 & "" & "服务器:" & "" & 字节到文本(数据,"GBK") '收到服务器发来的字节集数据,转换成文本
  •         编辑框1.置光标位置(取文本长度(编辑框1.内容))
  • 结束 事件
  • 事件 按钮1.被单击()
  •         编辑框1.内容 = 编辑框1.内容 & "" & "客户端:" & "" & 编辑框2.内容
  •         客户1.发送数据(文本到字节(编辑框2.内容,"GBK")) '向服务器发送数据
  • 结束 事件
  • 事件 按钮3.被单击()
  •         客户1.断开连接() '断开与服务器的连接
  • 结束 事件
  • 事件 按钮2.被单击()
  •         客户1.连接服务器(读取设置("地址"),"80",5000)
  • 结束 事件
  • 事件 客户1.连接断开()
  •         弹出提示("连接已断开")
  • 结束 事件
  • 事件 按钮4.被单击()
  • 切换窗口(读取窗口("主窗口"))        
  • 结束 事件
  • 事件 按钮5.被单击()
  •         客户1.发送数据(文本到字节("ON","GBK")) '向服务器发送数据        
  • 结束 事件
  • 事件 按钮6.被单击()
  •         客户1.发送数据(文本到字节("OFF","GBK")) '向服务器发送数据        
  • 结束 事件


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

249

主题

5397

帖子

22

粉丝