栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

模拟冰箱系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模拟冰箱系统

模拟冰箱系统,选用设备:电动推杆(模拟冰箱门),行程开关,照明灯(ADAM4150), 温度传感器 zigbee。

1)实时获取温度数据。

2) 界面上的长按开冰箱、长按关冰箱按钮能控制冰箱门的开关。

3) 通过行程开关来监控冰箱门拉开到一定距离以上时来打开冰箱内的照明灯,反之关闭。

4) 界面上要有灯开关动画效果。

package com.coolweather.monidianbingxiang;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.nle.mylibrary.forUse.mdbus4150.Modbus4150;
import com.nle.mylibrary.forUse.zigbee.ZigBee;
import com.nle.mylibrary.transfer.DataBusFactory;


import java.text.DecimalFormat;

public class MainActivity extends AppCompatActivity {

    private ImageButton btnMore;
    private ImageView ivFridge,ivLight;
    private Button button1,button2;
    private TextView tvTem;

    private boolean isOpenFridge,isOpenLihgt,isCloseFridge;

    private AnimationDrawable fridgeA;

    private Modbus4150 modbus4150;
    private ZigBee zigBee;
    private String tem="";
    private DecimalFormat df=new DecimalFormat("00.00");//小数处理

    private Handler handler=new Handler()
    {
        @Override
        public void handleMessage(Message msg)
        {
            super.handleMessage(msg);
            tvTem.setText(tem);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        init();
        startThread();
    }
    private void startThread(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true){
                    try {
                        double[] v = zigBee.getFourEnter();
                        if (v!=null){
                            tem = df.format(v[3]);
                            Message message = Message.obtain();
                            handler.sendMessage(message);
                        }
                        Thread.sleep(500);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }

    private void init() {
        isOpenFridge=isOpenLihgt=false;
        modbus4150 = new 
        Modbus4150(DataBusFactory.newSocketDataBus("172.18.1.16",2001),null);
        zigBee = new ZigBee(DataBusFactory.newSocketDataBus("172.18.1.16",2002),null);
    }

    private void initView() {
        btnMore=findViewById(R.id.btnMore);
        tvTem=findViewById(R.id.tvTem);
        ivFridge=findViewById(R.id.ivFridge);
        ivLight=findViewById(R.id.ivLight);
        button1=findViewById(R.id.button1);
        button2=findViewById(R.id.button2);
        btnMore.setonClickListener(new View.onClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,MainActivity2.class);
                startActivity(intent);
            }
        });
        button1.setonClickListener(new View.onClickListener() {
            @Override
            public void onClick(View v) {
                ctrlFright1(isOpenFridge);
            }
        });
        button2.setonClickListener(new View.onClickListener() {
            @Override
            public void onClick(View v) {
                ctrlFright2(isCloseFridge);
            }
        });
    }
    private void ctrlFright1(boolean isOpenFridge){
        if(!isOpenFridge)
        {
            try {
                modbus4150.ctrlRelay(3,false,null);
                modbus4150.ctrlRelay(2,false,null);
                modbus4150.ctrlRelay(1,true,null);
            } catch (Exception e) {
                e.printStackTrace();
            }
            ivLight.setImageResource(R.drawable.lamp_on);
            ivFridge.setImageResource(R.drawable.open_fridge);
            fridgeA = (AnimationDrawable)ivFridge .getDrawable();
            fridgeA.start();
            this.isOpenFridge = true;
        }
    }
    private void ctrlFright2(boolean isCloseFridege){
        if(!isCloseFridege){
            try {
                //modbus4150.ctrlRelay(2,false,null);
                //modbus4150.ctrlRelay(3,true,null);
                modbus4150.ctrlRelay(1,false,null);
            } catch (Exception e) {
                e.printStackTrace();
            }
            ivLight.setImageResource(R.drawable.lamp_off);
            ivFridge.setImageResource(R.drawable.close_fridge);
            fridgeA = (AnimationDrawable)ivFridge .getDrawable();
            fridgeA.start();
            this.isOpenFridge = false;
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332448.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号