将温度传感器获取室温显示在手机APP上

首先,该功能是基于手机通过wifi单片机功能上的,我们在原来的android项目中添加数据接收的代码与数据显示的控件,再通过线程不断地读取接收到的数据,已达到环境温度的实时显示。

1.android端布局的更改

增加一个按钮和一个TextView

2.android代码增加

test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (out!=null){
                    mHandler = new Handler();
                    //相当于定时器,每隔2s执行一次该线程
                    runnable = new Runnable() {
                        @Override
                        public void run() {
                            try {
                                out.print("3");
                                out.flush();
                                InputStream in = mSocket.getInputStream();
                                byte[] buffer = new byte[in.available()];
                                in.read(buffer);
                                String msg = new String(buffer);
                                display.setText("当前室温:"+msg+"°");
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                            mHandler.postDelayed(this, 5000); //相当于定时器,每隔5s执行一次该线程
                        }
                    };
                    mHandler.post(runnable);
                }
            }
        });

3.单片机接线


连接wifi模块之后(可以参考单片机端)
温度传感器使用的是18b20,如果接错线,很有可能会烧掉,务必将有字一面对自己
左 —— GND
中 —— 2
右 —— 5V
PS:中右针脚和杜邦线需要连1K电阻

4.单片机代码

在之前代码的判断条件中增加一个if语句

else if (comdata.startsWith("3", 11))
      {
        sensors.requestTemperatures(); // 发送命令获取温度
        Serial.print("当前温度: ");
        Serial.println(sensors.getTempCByIndex(0)); 
        delay(500); 
        wifi.println("AT+CIPSEND=0,5");
        delay(500);
        wifi.println(sensors.getTempCByIndex(0));
      }

android端输入
服务器地址:192.168.4.1
端口号:8080

更多推荐

将温度传感器获取室温显示在手机APP上