基于GPRS远程开关和OneNET平台实现共享净水机控制

思路:

       如下图所示:

手机或电脑等终端设备发送http命令给OneNET物联网平台,OneNET通过GPRS连接将开关命令发送给GPRS远程开关,GPRS远程开关通过控制净水器或其它电器的220V电源实现对电器设备的开启/关闭控制。

       OneNET平台是中国移动公司推出的针对物联网硬件管理控制的云平台,终端设备(手机/电脑/微信小程序/支付宝小程序/APP/PC端应用程序)可以通过http请求发送控制命令给OneNET也可以从OneNET获取设备状态。

       GPRS远程开关这里我们选择上海琅铭电子科技有限公司专为共享经济推出的SAC07GSA模块,该模块针对共享经济控制需求,自带供电系统,无需用户配置供电系统,它通过控制被控电器的220V供电实现对电器设备的开关控制,市场上所有的传统电器设备都可通过该模块实现共享经济的转换,详细资料请参看http://www.lmcraft.com.

 

步骤:

  1. 登录OneNET平台注册用户
    登录OneNET官网:https://open.iot.10086.cn/
    注册流程请参看OneNET官方文档:https://open.iot.10086.cn/doc/art436.html#104
     
  2. 创建产品
    流程请参看OneNET官方文档:https://open.iot.10086.cn/doc/art437.html#104
    注意:协议一定要选择EDP协议,目前模块只支持EDP协议。
    过程中用户需要记录两个数据:产品ID正式环境注册码。
  3. 配置SAC07GSA模块的工作模式为OneNET模式

配置方法请参考上海琅铭电子的官网文档:

http://www.lmcraft.com/doc/使用移动OneNET物联网平台.pdf

配置完之后,在OneNET平台的设备列表中就能找到与模块序列号相对应的设备了。

 

    4. 硬件接线

如上图所示,插座线输入端接模块左侧,插座先输出端接右侧,给被控电器供电。

请参考官方资料:

http://www.lmcraft.com/doc/SAC07GSA_datasheet(V1.10).pdf

5.  发送控制命令进行控制
可以通过app/浏览器/pc应用程序发送http命令进行控制。控制命令具体格式可以参看官网资料:
http://www.lmcraft.com/doc/使用移动OneNET物联网平台.pdf
https://open.iot.10086.cn/doc/art665.html#108

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gprs远程监控单机演示unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ScktComp, ComCtrls;type TForm1 = class(TForm) ServerSocket1: TServerSocket; Button1: TButton; Timer1: TTimer; Label10: TLabel; StatusBar1: TStatusBar; Memo1: TMemo; Memo2: TMemo; Label11: TLabel; Label12: TLabel; Label16: TLabel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; CheckBox1: TCheckBox; Edit2: TEdit; Label4: TLabel; Label5: TLabel; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Button2: TButton; Button3: TButton; Button4: TButton; Label6: TLabel; Label7: TLabel; Timer2: TTimer; procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; ip, Port : string;implementationprocedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);begin ip := Socket.RemoteAddress; Port := inttostr(Socket.RemotePort); StatusBar1.Panels[0].Text := ‘ 下位机DTU已成功连接!‘; StatusBar1.Panels[1].Text := ‘ 已连接IP及端口:‘+ip+‘:‘+port+‘ 时间:‘+TimeToStr(now);; Button1.Enabled := true;end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);var s, s_hex : string; i : integer;begin s := Socket.ReceiveText; memo2.Lines.Add(‘(TCP)来自: ‘ + Socket.RemoteAddress + ‘:‘+inttostr(Socket.RemotePort) +‘ 接收到:‘+inttostr(length(s))+‘(bytes) 数据如下:‘); if RadioButton1.Checked = true then begin for i:=1 to length(s) do s_hex := s_hex+inttohex(ord(s[i]),2)+ ‘ ‘; // memo2.Lines.Add(s_hex); end else memo2.Lines.Add(s);end;procedure TForm1.Button1Click(Sender: TObject);var i : integer; s_memo, s_hex: String;begin if (memo1.Text = ‘‘)then ShowMessage(‘发送数据不能为空!‘) else try begin if (RadioButton1.Checked = false) then begin for I := 0 to memo1.Lines.Count - 1 do ServerSocket1.Socket.Connections[0].SendText(memo1.lines[i]); //如果多台下位机同时与服务器相连,可选用不同的线程发送,既:Socket.Connections[0] end else begin try s_memo := StringReplace(memo1.text,‘ ‘,‘‘,[rfReplaceAll]); for i := 1 to length(s_memo) div 2 do s_hex := s_hex+char(strtoint(‘+copy(s_memo,(2*i-1),2))); ServerSocket1.Socket.Connections[0].SendText(s_hex); except ShowMessage(‘发送16进制(Hex编码)输入有错!‘); end; end; end; except ShowMessage(‘发送数据失败!‘); end;end;procedure TForm1.FormCreate(Sender: TObject);begin Button1.Enabled := false; ServerSocket1.Service := ServerSocket1.Socket.LocalAddress; ServerSocket1.Active := true; StatusBar1.Panels[0].Text := ‘ 上位机TCP侦听端口:5050‘; memo1.Clear; memo2.Clear; Label11.Caption := DateToStr(now);end;procedure TForm1.Button2Click(Sender: TObject);begin Button1.Enabled := false; ServerSocket1.Active := false; ServerSocket1.Service := ServerSocket1.Socket.LocalAddress; ServerSocket1.Port := StrToInt(edit1.Text); ServerSocket1.Active := true; StatusBar1.Panels[0].Text := ‘ 上位机TCP侦听端口:‘+edit1.Text;end;procedure TForm1.CheckBox1Click(Sender: TObject);begin if CheckBox1.Checked = true then begin Label4.Enabled := false; Label5.Enabled := false; edit2.Enabled := false; Timer1.Enabled := true; Timer1.Interval := strtoint(edit2.Text); end; if CheckBox1.Checked = false then begin edit2.Enabled := true; Timer1.Enabled := false; Label4.Enabled := true; Label5.Enabled := true; end;end;procedure TForm1.Timer1Timer(Sender: TObject);begin if (memo1.Text <> ‘‘) and (Button1.Enabled = true) then Button1.Click;end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);begin StatusBar1.Panels[0].Text := ‘ 下位机TCP连接已断开!‘; StatusBar1.Panels[1].Text := ‘‘;end;procedure TForm1.Button3Click(Sender: TObject);begin close;end;procedure TForm1.Button4Click(Sender: TObject);begin memo1.Clear; memo2.Clear;end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值