Microchip AVR-IoT WA開発ボードを入手しました。実行ファイルをMicrochip のサイトからダウンロードしてインストールし、AVR-IoT WA開発ボードに実装されているセンサーのデータがAWSに送られ、AWS Cloud sandboxに表示させます。手順を次に示します。

  1. AVR-IoT WA開発ボードにマイクロUSBケーブルを接続してパソコンと接続すると、エクスプローラを使用するとパソコンから次のように「CURIOSITY」ドライブが見えます。なお、AVR-IoT WA開発ボードの青のLEDがゆっくり点滅しています。
  2. 表示されている「CLICK-ME.HTM」ファイルをダブルクリックするとMicrochipのサイトが表示されるので、次の表示の「Get the latest Firmware」ボタンを押して、移動したGitHubからAVR-IoT WA開発ボードの実行ファイル「AVR-IoT-WA-4.1.0.hex」をダウンロードし、「CURIOSITY」ドライブに置きます。
  3. WiFiと接続を行うために、サイト上に表示されている次の画面からSSIDとパスワードを設定し、「Download Configuration」ボタンを押し「WIFI.CFG」ファイルを作成します。作成した「WIFI.CFG」ファイルを「CURIOSITY」ドライブに置きます。
  4. サイト上に次のようにAVR-IoT WA開発ボードのセンサーからのデータが表示されます。
  5. なお、次のように、AVR-IoT WA開発ボードの青と緑のLEDが点灯し、黄色のLEDが点滅します。
  6. 上記の設定を一度行えば、AVR-IoT WA開発ボードを接続すれば自動的にプログラムが実行され、AWSに接続します。
  7. プログラムソースコードを「https://github.com/microchip-pic-avr-solutions/avr-iot-aws-sensor-node-studio」から取得し、開発環境Atmel Studio 7.0を使って変更します。
  8. AVR-IoT WA開発ボードからさらに追加情報を送信して、AWS Cloud sandboxに表示させます。追加する情報は、AVR-IoT WA開発ボード上の「SW0」スイッチのON/OFFデータとします。Atmel Studio 7.0を使って、次のように「application_manager.c」ファイルの「sendToCloud」関数を変更し、作成したHEXファイルを「CURIOSITY」ドライブに置きます。
    • 9行目を追加し、18行目を19行目に置き換えます。

    application_manager.c

    static void sendToCloud(void)
    {
    	static char json[PAYLOAD_SIZE];
    	static char publishMqttTopic[PUBLISH_TOPIC_SIZE];
    	ledTickState_t ledState;
    	int rawTemperature = 0;
    	int light = 0;
    	int len = 0;
    	uint8_t sw0 = SW0_GetValue() != 0;
    	
    	memset((void*)publishMqttTopic, 0, sizeof(publishMqttTopic));
    	sprintf(publishMqttTopic, "%s/sensors", cid);
    	// This part runs every CFG_SEND_INTERVAL seconds
    	if (shared_networking_params.haveAPConnection)
    	{
    		rawTemperature = SENSORS_getTempValue();
    		light = SENSORS_getLightValue();
    		//        len = sprintf(json,"{\"Light\":%d,\"Temp\":%d.%02d}", light,rawTemperature/100,abs(rawTemperature)%100);
    		len = sprintf(json,"{\"Light\":%d,\"Temp\":%d.%02d,\"Switch 0\":%u}", light,rawTemperature/100,abs(rawTemperature)%100, sw0);
    
  9. AWS Cloud sandboxに次の表示が追加され、AVR-IoT WA開発ボード上の「SW0」スイッチを押すごとに表示が変化します。
  10. 、AWS Cloud sandboxに表示されたトグルスイッチをオンオフすることにより、AVR-IoT WA開発ボードの緑のLEDのON/OFFを切り替えます。Atmel Studio 7.0を使って、次のように「application_manager.c」ファイルの「MAIN_dataTask」関数を変更し、、作成したHEXファイルを「CURIOSITY」ドライブに置きます。
    • 7行目から16行目のコードを17行目の上に記述します。

    application_manager.c

    uint32_t MAIN_dataTask(void *payload)
    {
    	ledTickState_t ledState;
       ・・・
    	// This is milliseconds managed by the RTC and the scheduler, this return
    	// makes the timer run another time, returning 0 will make it stop
    	if(!getToggleState()) {
    		ledState.Full2Sec = LED_OFF_STATIC;
    		LED_modeGreen(ledState);
    	}
    	else
    	{
    		ledState.Full2Sec = LED_ON_STATIC;
    		LED_modeGreen(ledState);
    	}
    	return MAIN_DATATASK_INTERVAL;
    
  11. AWS Cloud sandboxに次のように表示されたtoggle「toggle」スイッチを切り替え、「Send to Device」ボタンを押すごとに、AVR-IoT WA開発ボード上の緑のLEDが切り替えに対応して点灯または消灯します。