DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hongsir2078
今日帖子: 15
在线用户: 14
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:40:59
标题:
[分享]中移动[OneNet IOT]物联网平台智能控制插座(附送HTTP API封装源码) 浏览:1074
加入我的收藏
楼主: [分享]中移动[OneNet IOT]物联网平台智能控制插座(附送HTTP API封装源码)

这个把月,捣腾了一个利用OneNet物联网平台控制的智能开关。
1、硬件:AC220v转DC5电源模块、DC5v转DC3v IC、5v继电器模组、ESP8266芯片
2、ROM:刷入NodeMcu,采用Lua脚本编写
3、连接:MQTT协议接入OneNet平台
4、采集与控制:OneNet平台HTTP API
5、模式:
   1)初始化时候采用AP模式,状态灯开始以0.5秒频闪;
     手机WiFi连接以Setup-xxx的SSID,免密码;
     连接后,网页访问:192.168.1.1后,输入可以上网的WIFI SSID及密码。
      
   2)系统由AP模式转为终端模式,尝试连接输入的WIFI,连接成功后状态灯熄灭
     配置完成,可以通过OneNet控制。如果有微信公众号,亦可在公众号中控制
   
   3)单独使用:如果不想互联网控制,可以长按“Reset”按钮6秒后,系统恢复
     到AP模式。在192.168.1.1网页的下方,有本地控制功能按钮。

碰到的难点:
1、本来编程就是一个爱好,一句:聪明的程序员用Delphi,所以只会Delphi!
   但捣腾的时候,您必须要学习:
   Lua脚本语言
   WEB前端框架(轻量的CSS框架:spectre、milligram;轻量的JS框架:zepto)
   HTML语法

2、ESP8266运行内容好像才32k,在用HTTP SERVER时很容易爆内存重启
   代码必须检查清楚,而且精炼

3、OneNet的MQTT与一般开源MQTT SERVER不同,它不能在后台手动创建TOPIC,
   但可以在设备端用MQTT加入到一个TOPIC时,自动会创建。
   另外MQTT上传数据时候TOPIC必须使用系统的:$dp
   这样数据才会关联到创建的“数据流”中反映出状态。
   切记:MQTT TOPIC 不是 OneNet的“数据流”

为什么选择OneNet呢?
无他,对于个人来说免费(会有设备上限,但对比百度来说松动很多)。

为什么采用双模式方式切换(AP和终端模式)?
1、市场上有很多是采用高通方案:IOT设备上电后,手机APP直接往广播或组播地址发WIFI的SSID和密码。IOT设备就去截获,然后登陆。但此模式与路由器会产生兼容问题,在
转发广播包/或组播包会不全导致加入不成功;
2、IOT设备永远在终端模式,不能本地控制。部分厂家做到本地控制都是通过广播/或
组播截获实现,兼容性参考第1点。
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:41:58
1楼: 废话少说,上图:
此帖子包含附件:
JPEG 图像
大小:442.4K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:42:23
2楼: 内部:
此帖子包含附件:
JPEG 图像
大小:365.6K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:43:33
3楼: AP模式下HTTP SERVER输出的控制页面:
此帖子包含附件:
JPEG 图像
大小:105.2K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:51:19
4楼: 中移动OneNet平台HTTP API控制代码:

unit Main;

interface

uses
  NE.OneNet,  //引用单元
...
  protected
    //定义回调
    procedure OnOnline(const AisOnline: Boolean);
    procedure OnDebugMsg(const ADebugMsg: string);
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

//回调
procedure TMainForm.OnOnline(const AisOnline: Boolean);
begin
  Button2.Enabled := AisOnline;
  Button3.Enabled := AisOnline;
end;

procedure TMainForm.OnDebugMsg(const ADebugMsg: string);
begin
  if not ADebugMsg.IsEmpty then
    Memo1.Lines.Add(ADebugMsg);
end;

//输入APIKey和DeviceID
procedure TMainForm.FormCreate(Sender: TObject);
begin
  OneNet.APIKey := 'xxxxxxxxx';  //<--输入您申请的APIKey(可以是设备的,亦可以是全局的)
  OneNet.DeviceID := 'xxxxxxx';  //<--输入您的设备ID
  //关联事件
  OneNet.OnOnline := Self.OnOnline;
  OneNet.OnDebugMsg := Self.OnDebugMsg;
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
  OneNet.Online;
end;

procedure TMainForm.Button2Click(Sender: TObject);
begin
  OneNet.DeviceData;
end;

procedure TMainForm.Button3Click(Sender: TObject);
begin
  OneNet.RunCmds('xxxx', 'xxx');
end;

使用就这么简单
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:53:40
5楼: 附送HTTP API封装源码及DEMO

封装单元:NE.OneNet
此帖子包含附件:nickemma_20181210135340.rar 大小:6.9K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:56:55
6楼: 检测设备是否在线:
此帖子包含附件:
JPEG 图像
大小:47.8K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:57:11
7楼: 控制命令下发:
此帖子包含附件:
JPEG 图像
大小:67.6K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 13:57:26
8楼: 本来还有个视频,但是。。。算了。
----------------------------------------------
-
作者:
男 joman (joman) ▲▲▲△△ -
注册会员
2018/12/10 14:44:57
9楼: 不错😊
----------------------------------------------
DelphiWebMVC官网 http://www.delphiwebmvc.com
作者:
男 ucmmcu (ucmmcu) ▲▲▲△△ -
注册会员
2018/12/10 15:06:55
10楼: good,软硬件结合
----------------------------------------------
-
作者:
男 xjia (xjia) ★☆☆☆☆ -
盒子活跃会员
2018/12/10 16:07:41
11楼: 不错,感谢分享。
btw: 想不通为什么那么多的设备都不支持断网(互联网)使用
----------------------------------------------
-
作者:
男 dlfsystem (dlfsystem) ★☆☆☆☆ -
盒子活跃会员
2018/12/10 16:10:26
12楼: 不错
----------------------------------------------
-
作者:
男 doersoft (XMG-ZY) ▲▲▲▲▲ -
普通会员
2018/12/10 16:53:48
13楼: 不错....
----------------------------------------------
delphi golang|git
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2018/12/10 17:32:30
14楼: 不错,这小东西有点意思
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。
又不靠它 delphi 吃饭,怕甚?
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/10 18:12:07
15楼: @xjia 
  想不通为什么那么多的设备都不支持断网(互联网)使用

如果单纯从技术的角度来说,就算家里路由断网,也是可以局域网控制的,并不需要一定要连接互联网。但是从商业角度来说,各个厂家都在打造自己的生态圈,你要控制,就必须安装他们的APP。APP内有一堆广告推送的收入,另外还可以捆绑了用户。明白没。
 
技术角度解决:
  APP发起控制命令,首先先判断网络是否正常,如果网络正常则云平台方式操作,如果网络异常,将采用广播/组播方式发送控制命令。
  另外IOT硬件也必须实现在网络异常的情况下,检测广播/组播发过来的命令。
----------------------------------------------
-
作者:
男 bjlg (蓝天) ★☆☆☆☆ -
盒子活跃会员
2018/12/10 20:46:40
16楼: @ nickemma 
 是啊,就像是京东那个他们说的和实际的就不一样
----------------------------------------------
http://delphi-z.ru>http://delphi.icm.edu.pl/ftp/http://delphi-z.ru
作者:
男 blueflag (昆了) ★☆☆☆☆ -
盒子活跃会员
2018/12/11 10:29:39
17楼: 这东西好,可以扩展下去~
----------------------------------------------
-
作者:
男 keymark (keymark) ▲△△△△ -
注册会员
2018/12/11 11:20:41
18楼: 电弧  吸死   按此在新窗口浏览图片  功耗。另外可以做网页版不必。。手机APP  框个浏览器就行
按此在新窗口浏览图片
8266 很好的。
----------------------------------------------
m3u8播放器:DPlayer/hlsjs-p2p-engine/ckplayer/flashls-dev/sewise-player/http不能播https某些情况下dns服务:coredns/http服务:miniweb/!http://www.lib4dev.com/topics/delphi>http://www.lib4dev.com/topics/pascal?p=34&s=!http://www.lib4dev.com/topics/delphi
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/11 13:05:16
19楼: @ keymark (keymark)
您说的话有点精简,理解不了。

1.电弧?吸死?
你想说的是不是继电器如果带负载太大的时候会产生电弧反馈?导致继电器永远吸死,无法再操作呢?如果这样可以加隔离元件。另外我的继电器模组输入端带光耦隔离保护的。
还有,也考虑过大负载会出现问题,所以我设计是控N,而不是控L。

2.功耗
如果不计算原件损耗,5v电压时候整体才100ma左右,约等于0.5w。一天0.5w*24/1000,等于0.012度电。

3.网页版
页面只是初始化时候使用,可以免app。而且带本地离线(互联网)操作。个人喜欢
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/11 13:11:56
20楼: @blueflag (昆了)
如果有时间,将会加入计量模块和计划任务。
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/19 12:23:40
21楼: 更新:智能插排1
此帖子包含附件:
JPEG 图像
大小:222.3K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/19 12:23:51
22楼: 更新:智能插排2
此帖子包含附件:
JPEG 图像
大小:348.0K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/19 12:24:15
23楼: 更新:APP控制界面1
此帖子包含附件:
JPEG 图像
大小:59.7K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/19 12:24:26
24楼: 更新:APP控制界面2
此帖子包含附件:
JPEG 图像
大小:71.9K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/19 12:24:51
25楼: 更新:AP模式下加入WIFI的页面
此帖子包含附件:
JPEG 图像
大小:172.8K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/12/19 12:28:20
26楼: 虽然到捣腾一下,但是也耗时两个多月,现在已经接近量产的产品了。

也做了几个插座给朋友使用(朋友用来控制鱼池、鱼缸的增氧水泵),效果非常满意。
----------------------------------------------
-
作者:
男 aq031 (清风明月) ★☆☆☆☆ -
盒子活跃会员
2018/12/29 14:04:47
27楼: 不会电路, 楼主能说下, 怎么样入门吗
----------------------------------------------
作者:
男 feiyanm (feiyanm) ▲▲▲△△ -
注册会员
2018/12/29 14:25:35
28楼: 不用懂电路,可以直接买点儿各种模块用用,比如红外模块(控制电视、空调)、继电器模块(控制各种开关)、wifi(蓝牙、zigbee)模块(可以遥控各种设备)、各种传感器模块(温度、气体、火焰等等),玩两下就上手了,剩下的就是通讯和管理了。
其实,大规模管理才是比较难的。
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2018/12/31 11:57:01
29楼: 楼主nickemma是本论坛软硬皆通第一人!
----------------------------------------------
-
作者:
男 redboy136 (redboy136) ★☆☆☆☆ -
盒子活跃会员
2018/12/31 12:31:23
30楼: 有思想和创意,赞!!!!!!!!!!
----------------------------------------------
你梦我圆
作者:
男 luchao900 (哈你宝贝) ▲▲▲△△ -
注册会员
2018/12/31 21:32:37
31楼: 楼主好厉害,软硬皆通,全面发展,这才是科研人员能够将思想转化成实际的基本功
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行42.96875毫秒 RSS