[无线通信]

小菜菜想做个智能家用垃圾桶寻求需要那些配件

[复制链接]
1610|13
手机看帖
扫描二维码
随时随地手机跟帖
gaoyang9992006| | 2018-12-18 21:50 | 显示全部楼层
看你在哪儿使用
如果只是在家用这功能,也就是手机跟这个垃圾桶在一个局域网很容易,你只需要一个手机APP,一个WIFI模块,一个电机驱动板(可以用模电自己搭建,也可以直接用小继电器驱动)一个电机(用于开启垃圾桶和盖上垃圾桶的动力),另外还需要简单的机械传动装置。

使用特权

评论回复
gaoyang9992006| | 2018-12-18 21:50 | 显示全部楼层
看你在哪儿使用
如果只是在家用这功能,也就是手机跟这个垃圾桶在一个局域网很容易,你只需要一个手机APP,一个WIFI模块,一个电机驱动板(可以用模电自己搭建,也可以直接用小继电器驱动)一个电机(用于开启垃圾桶和盖上垃圾桶的动力),另外还需要简单的机械传动装置。

使用特权

评论回复
评论
gaoyang9992006 2018-12-18 21:55 回复TA
@lpinging01025 :开发手机APP有个简单的方法用E4A 中文开发,丰富的例子,一看就会。 
lpinging01025 2018-12-18 21:54 回复TA
手机APP是不是要自己开发呀……有这方面的源程序吗?因为手机APP控制 
gaoyang9992006| | 2018-12-18 21:53 | 显示全部楼层
如果你不是在家用,而是远程遥控(就是你和垃圾桶可能跨越千山万水)
你这需要一个中继的服务器了。
除了上面的东西你要搭建一个服务器或者租用一个网络服务器,服务器上要编写中继用的服务(可以用简单的PHP实现)。
垃圾桶用WIFI模块跟服务器通信,接收指令,上传状态。
APP给服务器发送指令,接收服务器传来的状态。
当然这个模块推荐便宜好用的ESP8266来做,可以直接烧录NODEMCU固件,然后用脚本就可以轻松编写好整个程序。

使用特权

评论回复
gaoyang9992006| | 2018-12-18 21:58 | 显示全部楼层
给你个我之前学习时候的例子
通过TCP协议控制LED(设备端)
本程序采用lua脚本语言编写,使用两个程序文件,init.lua负责加入WIFI网络的初始化工作,完成后执行另外一个文件kaiguan.lua

在kaiguan.lua实现创建TCP服务器,并监听端口指令,注册回调函数,在函数里实现接收内容的判断,并根据内容执行开灯或关灯指令。

  • --init.lua
  • print("set up wifi mode")
  • wifi.setmode(wifi.STATION)
  • wifi.sta.config("360WiFi-SJB","shejibu123")
  • 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)


———————————————————————————————————————————————————————
  • --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
———————————————————————————————————
这是esp8266端的nodeMCU固件跑的程序。



使用特权

评论回复
gaoyang9992006| | 2018-12-18 21:58 | 显示全部楼层
下面是手机APP的程序的代码

E4A开发TCP协议的安卓上位机
该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")) '向服务器发送数据
  • 结束 事件



使用特权

评论回复
gaoyang9992006| | 2018-12-18 22:00 | 显示全部楼层
这是整个工程需要的所有源码和生成好的APP My LED Light.rar (158.19 KB)

使用特权

评论回复
gaoyang9992006| | 2018-12-18 22:01 | 显示全部楼层
908655c18fdaa17d55.png
软件界面,这是一个简单的局域网通信控制LED灯开关的例子,跟你的应用很类似。

使用特权

评论回复
评论
lpinging01025 2018-12-18 22:08 回复TA
今天特别感谢 你。 

使用特权

评论回复
javon| | 2019-2-22 10:43 | 显示全部楼层
远程的不建议用WIFI,建议 用2G 或者NB

使用特权

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

本版积分规则

2

主题

7

帖子

0

粉丝