※この記事の内容は少し古くなっています。最新版はこちらです。

Arduino UNO互換のD1ボードの最大の違いはWiFi機能が搭載されていることです。
WiFi機能は IoT(Internet of Things) には必要な機能です。
IoTの中心となるGoogle HomeやAmazon Alexaなどのスマートスピーカーとの連動をする準備をまとめます。

1.D1ボードを買います。
 Arduino UNO R3互換、ESP8266搭載のWiFi 開発ボード、WeMos D1を入手します。
アマゾンで買えます。明日着くのがありがたい。数日待てるならもう少し安く買えます

2.USBドライバをインストールします。
 D1ボードのUSBドライバをダウンロードしてインストールします。

3.Arduino IDEをインストールします。
 ソフト開発環境(IDE)はArduinoのが使える点が有り難い。
Arduino 1.6.5 WIndows installer をダウンロードしてインストールします。
(esp8266-google-home-notifier 1.0.6はこれ以降のバージョンではコンパイルエラーをおこします)

4.Arduino IDEを設定します。
 1)Arduino IDEを起動して、
ファイル>環境設定>Additional Board Manager URLs で、
http://arduino.esp8266.com/stable/package_esp8266com_index.json と入れてOKをクリックします。
 2)ツール>ボード>Boards manager...で空欄に esp8266 と入れて、
esp8266 by ESP8266 communityのバージョン2.4.1(または2.4.2でも可)をInstall します。
(esp8266-google-home-notifier 1.0.6はこれ以降のバージョンではコンパイルエラーをおこします)
 3)ツールからボード設定します。
ボード>WeMos D1 R1(またはLOLIN(Wemos) D1 R2 & miniでも可)
Flash Size>4M(3M SPIFFS)
CPU Frequency>80MHz
Upload Speed>115200
ポート>COM3(←実際にD1ボードが刺さっているCOMポート)
書込装置>Arduino as ISP

5.スマートスピーカーと連携します。
 1)Google home miniなどGoogle homeユーザは、
スケッチ>Include Library>Manage Libraries...で空欄にgoogleと入れて、
esp8266-google-home-notifier 1.0.6 と esp8266-google-home-tts 1.0.7 を Install します。
(これでD1ボードから自由にGoogle homeをしゃべらせることができます)
 2)Echo DotなどAmazon Alexaユーザは、
https://github.com/witnessmenow/esp8266-alexa-wemo-emulator
サイトのClone or Downloadボタン>Download ZIPクリックでダウンロードします。
スケッチ>Include Library>Add ZIP Libraries...>esp8266-alexa-wemo-emulator-master.zipを選択します。
(これでD1ボードからIFTTTを介さなくても、室内の電源のON/OFFができます)

6.IFTTT(イフト)と連携します。
 1)IoTにはIFTTTが必須ではないでしょうか?例えば室外からのスマホでの遠隔操作などにWebHooks機能をつかいます。まだでしたらIFTTTの登録をおすすめします。
 2)D1ボードとIFTTTとの連動はESP8266IFTTTを使います。
サイトのClone or Downloadボタン>Download ZIPクリックでダウンロードします。
スケッチ>Include Library>Add ZIP Libraries...>ESP8266IFTTT-master.zipを選択します。

///////////////////////////// ESP8266IFTTTスケッチ例 /////////////////////////////////
//スケッチの冒頭に一行入れます。小文字のESP8266Ifttt.hだとコンパイルできません。
#include <ESP8266IFTTT.h>

/*IFTTT_WEBHOOK_NAMEのところにIFTTT Webhook's nameを、IFTTT_KEYに IFTTT Webhook api keyを入れます。
IFTTT Webhook api keyはIFTTT>My Applets>Web Hooks>Web Hooksのロゴマーク>Documentation、またはhttps://ifttt.com/maker_webhooks>Documentationで出てきます。*/

//もしトリガーだけなら・・・
IFTTT.trigger(IFTTT_WEBHOOK_NAME, IFTTT_KEY);

//もしvalueがあれば・・・(但しvalueは文字列に限ります。"~~"でくくってください)
IFTTT.trigger(IFTTT_WEBHOOK_NAME, IFTTT_KEY, value1, value2, value3);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
これで準備完了です。
あとはファイル>スケッチの例>からいろいろ試して見るといいでしょう。
スケッチのコンパイルおよびボードへの転送はメニューバー下の→(右矢印)ボタンでできます。

これでできることは、
1.Google homeやAlexaから、IFTTTを使って家の電気をつけたり消したりできます。
(赤外線を使った家電製品もコントロールできます。家の外からスマホを使ってもできます)
2.Alexaからは、IFTTTを使わずesp8266AlexaWemoEmulaterで、家の電気をつけたり消したりできます。
3.Google homeでesp8266-google-home-notifierを使って、好きな言葉をしゃべらせることができます。
4.Google home(や多分Alexaも)から、IFTTTを使ってGoogle Spredsheetに各種データを保存できます。

【スケッチ作成上の注意】
PinMODEはプリント基板の表面の表示ではなく、裏側の表示に従ってください。
デジタル I/Oピンは11個あり、すべて3.3Vです。
D0以外のすべての IOピンは interrupt/pwm/I2C/one-wire機能があります。
アナログ入力ピンは1つで最大3.2Vです。
内蔵LEDは、GPIO2です。