物联网+Android+甲烷控制系统

4 篇文章 0 订阅
3 篇文章 0 订阅


前言

甲烷是一种有机化合物,分子式是CH₄,分子量为16.043。甲烷是最简单的有机物,也是含碳量最小(含氢量最大)的烃。甲烷是一种在常温环境下,无色无气味的气体。为了有效的发现并检测甲烷,特此推迟这款物联网程序系统。有效的控制减少此空间中的甲烷值。当甲烷达到我们指定的值的时候,会执行某些操作。

比如:打开一个风扇进行排气,把甲烷有机物排除。

一、效果图

提示:仅供参考:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

二、工具类

存放云平台各个参数信息,提供无参构造,有参构造,Getter、Setter方法。以方便后期调用使用。

 private static String ip;
 private static Integer port;
 private static Integer projectID,GateWayID,LoRaGateWayID,methaneMax;
 private static String fen,methane;
 private static String AccessToken;

三、使用步骤


1.引入库

代码如下(示例):
在项目build.gradle下添加以下离线第三方项目
在这里插入图片描述

compile project(path: ':nlecloud-sdk')

2.登上到云平台

代码如下(示例):

NetWorkBusiness netWorkBusiness = new NetWorkBusiness("", "http://" + SettingUtils.getIp() + ":" + SettingUtils.getPort() + "/");
                SignIn signIn = new SignIn(editUserName.getText().toString(),editPassword.getText().toString());
                netWorkBusiness.signIn(signIn, new NCallBack<BaseResponseEntity<User>>(getApplicationContext()) {
                    //回调方法,是否成功都会调用。最好是在次方法中进行简单业务处理。我这里已经很简单了
                    @Override
                    protected void onResponse(BaseResponseEntity<User> response) {
                        if (response == null){
                            Toast.makeText(MainActivity.this, "请检查用户密码错误...", Toast.LENGTH_SHORT).show();
                            return;
                        }
                        User resultObj = response.getResultObj();
                        String accessToken = resultObj.getAccessToken();
                        SettingUtils.setAccessToken(accessToken);
                        Toast.makeText(MainActivity.this, "欢迎回来:" + resultObj.getUserID(), Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(MainActivity.this,ShowMain.class);
                        intent.putExtra("accessToken",accessToken);
                        startActivity(intent);
                    }
                });

提示:该处使用的url网络请求的数据。
在AndroidManifest.xml中添加网络权限

<uses-permission android:name="android.permission.INTERNET" />

3、访问数据

//需要一个token和一个云平台ip
netWorkBusiness = new NetWorkBusiness("accessToken","云平台ip");
//会根据工具类的信息进行读取
netWorkBusiness.getSensor(SettingUtils.getLoRaGateWayID().toString(), SettingUtils.getMethane(), new NCallBack<BaseResponseEntity<SensorInfo>>(getApplicationContext()) {
                @Override
                protected void onResponse(BaseResponseEntity<SensorInfo> response) {
                    String value = response.getResultObj().getValue();
                    showMethane.setText(value);
                    if (Double.valueOf(value) > SettingUtils.getMethaneMax()){
                        aSwitch.setChecked(true);
                        contor(true);
                    } else {
                        aSwitch.setChecked(false);
                        contor(false);
                    }
                }
            });

4、修改信息

在这里插入图片描述
当修改完数据保存数据之后,此时同同步。不需要退出登陆。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case R.id.menuSetting:
            Intent setting = new Intent(this,Setting.class);
            startActivity(setting);
            break;
        case R.id.menuLogout:
            SettingUtils.setAccessToken("");
            netWorkBusiness = null;
            timer.cancel();
            timer = null;
            Intent main = new Intent(this,MainActivity.class);
            startActivity(main);
    }
    return true;
}

源码

源码以开源,一步到位。GitHub

总结

提示:这里对文章进行总结:

可手动进行执行器(继电器)控制,但是前提条件是把定时器关掉。不然会出现自动化权限大于一切。
提示:开发者可把此定时器赋值 null

boolean isStart = true;
    @Override
    public void onClick(View view) {
        if (isStart){
            timer = new Timer();
            timer.schedule(timerTask,1000,1000);
            isStart = false;
        }
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值