Qualcomm APQ8009 hardware board certificate Azure program and here's the step to describes how Avatar connect with Azure IoT SDK., include:
- Configuring Azure IoT Hub.
- Registering your IoT device.
- Build and deploy Azure IoT SDK from Cloud into hardware board.
You should have following items ready before beginning the process:
- Prepare your development environment:
- Download and install latest JDK from here.
- Download Android Studio on your Windows machine and follow the installation instructions.
- Computer with Git client installed and access to the Azure-iot-Sdks GitHub public repository.
- Provision your device and get it's credentials.
- Qualcomm APQ8009 hardware board.
- Make sure desktop is ready as per instructions given in Prepare your development environment.
- Enable USB debugging on your device. On Android 4.0 and newer, go to Settings > Developer options. Note: On Android 4.2 and newer, Developer options is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options.
- Plug in your device to your development machine with a USB cable. If you're developing on Windows, you might need to install the appropriate USB driver for your device. For help installing drivers, see the OEM USB Drivers document.
- Connect the device to internet & execute adb command below;
./adb devices
./adb shell
ps | grep avatar
- Turn on Wifi and configure to connect to internet (commands to configure wifi to connect to internet automatcailly...)
Please find Azure Android java device sample code here.
3.1 Modify the sample for screenless device.
- The sample application will require user interaction to click a button on screen to receive messages from IoT hub. If the target device is a screenless device, you may modify the sample code to have the app to receive message right after sending messages without user interactions.
- Following is the example of modification:
public class MainActivity extends AppCompatActivity {
String connString = "[device connection string]";
//IotHubClientProtocol curTestProtocol = IotHubClientProtocol.HTTPS;
//IotHubClientProtocol curTestProtocol = IotHubClientProtocol.MQTT;
// setup a variable to switch the usage of Azure connection protocol globally.
IotHubClientProtocol curTestProtocol = IotHubClientProtocol.HTTPS;
. . .
public void SendMessage() throws URISyntaxException, IOException {
. . .
// Comment/uncomment from lines below to use HTTPS or MQTT protocol
//IotHubClientProtocol protocol = IotHubClientProtocol.HTTPS;
//IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;
IotHubClientProtocol protocol = curTestProtocol;
. . .
}
. . .
public void btnReceiveOnClick(View v) throws URISyntaxException, IOException {
. . .
// Comment/uncomment from lines below to use HTTPS or MQTT protocol
//IotHubClientProtocol protocol = IotHubClientProtocol.HTTPS;
//IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;
IotHubClientProtocol protocol = curTestProtocol;
. . .
}
. . .
}
protected void onCreate(Bundle savedInstanceState) {
. . .
try {
SendMessage();
btnReceiveOnClick(null); // call button click event handler
}
. . .
}
public void btnReceiveOnClick(View v) throws URISyntaxException, IOException {
. . .
try {
// Thread.sleep(2000);
int maxMsgCount = 1; // exit the while loop when this number of messages is received.
long maxTimeout = 10000; // in milliseconds
long elapsedTime = 0;
System.out.println("Start to receive messages from IoTHub...");
while (maxMsgCount > counter.get()) {
Thread.sleep(500);
elapsedTime += 500;
if (elapsedTime >= maxTimeout) {
System.out.println("Timeout!");
break;
}
}
System.out.println("Stop receiving messages from IoTHub!");
}
. . .
}
3.2 Build the Sample.
- Start a new instance of Android Studio and open Android project from here:
azure-iot-sdks/java/device/samples/android-sample/
- Go to MainActivity.java, replace the [device connection string] placeholder with connection string of the device you have created in Provision your device and get its credentials and save the file. An example of IoT Hub Connection String is as below:
HostName=[YourIoTHubName];SharedAccessKeyName=[YourAccessKeyName];SharedAccessKey=[YourAccessKey]
- Build your project by going to Build menu > Make Project.
3.3 Run and Validate the Samples.
In this section you will run the Azure IoT client SDK samples to validate
Communication between your device and Azure IoT Hub. You will send messages to the Azure IoT Hub service and validate that IoT Hub has successfully receive the data. You will also monitor any messages sent from the Azure IoT Hub to client
3.3.1 Run the Sample:
- Select one of your project's files and click Run from the toolbar.
- In the Choose Device window that appears, select the Choose a running device radio button, select your device, and click OK.
- Android Studio will install the app on your connected device and starts it.
3.3.2 Send Device Events to IoT Hub:
- See Manage IoT Hub to learn how to observe the messages IoT Hub receives from the application.
- As soon as you run the app on your device (or emulator), it will start sending messages to IoTHub.
- Check the Android Monitor window in Android Studio. Verify that the confirmation messages show an OK. If not, then you may have incorrectly copied the device hub connection information.
3.3.3 Receive messages from IoT Hub
- See Manage IoT Hub to learn how to send cloud-to-device messages to the application.
- Click the Receive Messages button from the sample App UI loaded on your device or in the emulator. If you modify the application code to receive message right after sending message, you could skip this step.
- Check the Android Monitor window in Android Studio. You should be able to see the command received.
Comments