一、项目开发的目的:
智能农业产品通过实时采集CO2浓度、光照强度、土壤指数、空气指数等环境参数,自动开启或者关闭指定设备。可以根据用户需求,随时进行处理,为设施农业综合生态信息自动监测、对环境进行自动控制和智能化管理提供科学依据。通过模块采集温度传感器等信号,经由无线信号收发模块传输数据,实现对大棚温湿度的远程控制。
二、项目开发的思路:
1.获取服务器的IP地址,连接你所需要的服务器。
2.连接服务器之后获取模拟沙盘中的信息。
3.实现客户端对模拟沙盘的操控。
三、项目效果图:
四、项目APP的具体步骤:
1.使用Gradle包下面的build.gradel/app中添加依赖库,记得syno now一下。
dependencies {
//使用AsyncHttpClient的第三方插件
compile 'com.loopj.android:android-async-http:1.4.9'
//使用OkHttpClient的第三方插件
compile 'com.squareup.okhttp3:okhttp:3.4.1'
}
2、获取服务器的IP地址进入沙盘服务器
首先创建一个公共类来获取API接口,以此来获取服务器的数据
public class HttpUtil {
//用static做静态布局供全局使用
private static final String BASE_URL = "https://"+ MainActivity.URL+":8890/type/jason/action/";
//用OkHttpClient进行http请求,OkHttpClient比AsyncHttpClient获取更快
private static OkHttpClient client=new OkHttpClient();
//MediaType是用OkHttpClient所要传递的json数据格式的方法
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
//OkHttpClient中的get与post方法
public static void getClient(String url,Callback callback) {
Request request=new Request.Builder().url(getAbsoluteUrl(url)).build();
client.newCall(request).enqueue(callback);
}
public static void postClient(String url, JSONObject jsonObject,Callback callback){
//RequestBody是OkHttpClient中post获取json的实例对象
RequestBody body=RequestBody.create(JSON, jsonObject.toString());
Request request = new Request.Builder().url(getAbsoluteUrl(url)).post(body).build();
client.newCall(request).enqueue(callback);
}
创建对话框的代码:
private void modify() {
//定义对话框,同时定义对话框中的输入框
final EditText editText = new EditText(this);
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);
builder.setTitle("欢迎您,请先设置服务器IP");
builder.setView(editText);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//获取对话框中所输入的IP,进入正确的服务器
URL= editText.getText().toString();
//进行界面跳转
Intent intent=new Intent(MainActivity.this,AgricultureActivity.class);
startActivity(intent);
}
});
builder.show();
}
进入界面需要运用http请求获取沙盘的数据
public class FirstFragment extends Fragment