关于如何用Android studio写一个小程序实现控制4150上的继电器

首先建立一个简单的主界面,这里以报警灯为例

传输过程为:报警灯-继电器-4150-串口服务器

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="报警灯"
    android:textSize="50sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.31" />

<Button
    android:id="@+id/up"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="打开"
    android:textSize="20sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.247"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.499" />

<Button
    android:id="@+id/down"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="关闭"
    android:textSize="20sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.758"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.499" />

之后开始在java文件中定义刚才设置的按钮

private Button up, down;

引用 

 up = findViewById(R.id.up);
 down = findViewById(R.id.down);

 

由于连接的是4150,不是安卓自带的,所以要加入jar包

jar包路径为

f9832bf5abb14985b808d233986ebe53.png

然后就可以引用4150了

如下

private Modbus4150 modbus4150;

将4150引用(括号内表示的是串口的ip地址和端口号,这里连接的是com2)

modbus4150  = new Modbus4150(DataBusFactory.newSocketDataBus("172.18.12.15", 6002));

 连接ip地址需要一个获取权限的语句

位置和代码如下:

9b7b113ea19b4658a437f2935868388f.png

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

 

 在主界面设置的是用up来打开继电器

代码如下

 up.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    modbus4150.openRelay(0, new MdBus4150RelayListener() {
                       @Override
                       public void onCtrl(boolean isSuccess) {
                           if (isSuccess) {
                               Log.d(TAG,"控制成功!打开");
                           }else {
                               Log.d(TAG,"控制失败!关闭");
                           }
                       }
                   });
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

        });

第一行为指针,表示当输入up时执行下面的语句

openRelay表示的是打开继电器

第五行的0表示为继电器连接4150的端口,我这里连接的是DO0,所以写0

if语句的作用是方便查看命令是否传输到为,省略也可

关闭继电器指令则是换一个指针(我在这里设置的是down)

再把openRelay换成closeRelay即可

 

将手机连接至串口连接的wifi,将程序导入至手机,即可实现区域内控制

 

 

这是一个初学者的笔记,目的是为了便于复习和给跟我一样的初学者一些小小的帮助

如有错误的地方,欢迎大佬们提出问题,我会一一改正!

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值