📅  最后修改于: 2023-12-03 14:49:47.760000             🧑  作者: Mango
本项目通过使用Android App和Google Firebase实现对一个LED灯的远程控制。用户可以使用App登录并发送指令来控制LED灯的开关状态。
google-services.json
文件并将其放置在Android App的app
目录下。在Android Studio中打开项目,并在app/build.gradle
文件中添加Firebase依赖:
implementation 'com.google.firebase:firebase-database:19.7.0'
在App的MainActivity
中初始化Firebase:
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class MainActivity extends AppCompatActivity {
// 声明Firebase数据库引用
private DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化Firebase数据库引用
mDatabase = FirebaseDatabase.getInstance().getReference();
}
}
实现控制LED灯的方法:
private void turnOnLED() {
// 更新Firebase数据库中的LED状态为开启
mDatabase.child("led").setValue("on");
}
private void turnOffLED() {
// 更新Firebase数据库中的LED状态为关闭
mDatabase.child("led").setValue("off");
}
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
activity_main.xml
中添加两个按钮用于控制LED状态。<Button
android:id="@+id/button_on"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="turnOnLED"
android:text="Turn On" />
<Button
android:id="@+id/button_off"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="turnOffLED"
android:text="Turn Off" />
MainActivity
中添加监听器来实时检测LED状态的变化:@Override
protected void onStart() {
super.onStart();
// 添加值事件监听器
mDatabase.child("led").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String status = dataSnapshot.getValue(String.class);
// 根据LED状态更新界面
if (status.equals("on")) {
// LED状态为开启
} else if (status.equals("off")) {
// LED状态为关闭
}
}
@Override
public void onCancelled(DatabaseError error) {
// 处理错误
}
});
}
通过这个项目,我们可以使用Android App远程控制一个LED灯。此外,我们还使用Google Firebase实时数据库来存储和同步LED的状态。使用Firebase使得数据实时更新并与硬件设备进行同步,提供了一个可靠且方便的远程控制方法。