« 2014年9月 | トップページ | 2015年10月 »

2015年9月の記事

ブログエディター変更

ブログエディターの変更をトライ中。

これまでは、Windows Live Writerを使っていたのですが、Windows10ではインストールできなくなってしまった(後、Windows環境は7から10に移行したい)ため、後継が必要となりました。最近はOSXがメイン環境なのでこの際、OSXで動くブログエディータを探したところ、見つかったのは以下:

  • ecto — シェアウエアで執筆時点で2651円
  • MarsEdit — AppStoreで買えるが執筆時点で4800円とお値段高め

価格的にはectoがお手ごろ。ectoを使ってLive Writer相当の機能があるかを確認してみる。

画像の挿入はLive Writerの方はサイズやリンクなど細かな指定が出来たが、ectoだとドラッグで画像の拡大・縮小を行うだけみたい。

IMG_0771.jpg

Live Writerはプログラムコードの貼り付けにSyntaxHighlighterのプラグインが使え大変便利だったが、ectoにはプラグインがなさそう。手動でタグを設定してみる。

#include "mbed.h"

DigitalOut led(LED1);

int main() 
{
    unsigned int i = 0;
    wait(0.1);

    while (1) 
    {        
        printf("Hello World %05d\n", i++);
        led = !led;

        wait(1.0);
    }
}

SyntaxHighlighterのタグをカスタムタグに登録してみた。

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx

DigitalOut led(LED1);

char message1[] = "mbed demo start.\r\nSend message via serial interface.";
char message2[] = "Hello World";

int main() 
{
    unsigned int i = 0;

    pc.printf("%s\n", message1);
    while (1) 
    {
        pc.printf("%s %05d\n", message2, i++);
        led = !led;

        wait(1.0);
    }
}

とりあえず使えそうな感じなので、ectoをレジストしてみるか。

ESP-WROOM-02を直接プログラムしてIFTTTにイベントをポストする

久しぶりの投稿です。

表題の通り、今話題の(もう古い?)WiFiモジュールESP-WROOM-02をmbedやArduinoといった外付けのMCUを使わず、直接プログラムしてIFTTTへのイベントポストを行いました。

環境構築手順

ESP-WROOM-02(ESP8266)の直接プログラムは、Arduino IDEにAdditional Board ManagerとしてESP8266のコンパイラ等を導入することで実現できます。手順は、以下に示す先人のサイトを参考にしました:

ESP-WROOM-02は最近秋月さんが発売した、ESP-WROOM-02 DIP化キットを購入しました。ESP-WROOM-02に、プログラム書き込み用のFT232RLやリセット・プログラム書き込みスイッチを取り付けます。

IMG_0778

IFTTTイベントポストプログラム

コードを以下に示します。WiFiアクセスポイントへ接続し、IFTTTのMaker Channelにイベント名”ESP8266"を送信します。イベントのポスト後はLチカを行うだけです(センサーの接続などはさぼっています)。

 
#include <ESP8266WiFi.h>

#define IFTTT_MAX_SIZE_STRING    512

const char* ssid     = "ssid";
const char* password = "password";
 
const char* host = "maker.ifttt.com";
 
void setup() {
  Serial.begin(115200);
  pinMode(12, OUTPUT);
  delay(100);
 
  // We start by connecting to a WiFi network
 
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  // Connect to IFTTT
  Serial.print("connecting to ");
  Serial.println(host);
 
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }

  // This will send POST to IFTTT server
  char str[IFTTT_MAX_SIZE_STRING] = {0};
  char v1[16] = "";
  char v2[16] = "";
  char v3[16] = "";
  char header[100] = "POST /trigger/ESP8266/with/key/YourSecretKey HTTP/1.1\r\n";
  const char * host = "Host: maker.ifttt.com\r\n";
  char contentLen[50] = {0};
  const char * contentType = "Content-Type: application/json\r\n\r\n";
  char valueData [150] = {0};
  sprintf(valueData,"{\"value1\":\"%s\",\"value2\":\"%s\",\"value3\":\"%s\"}\r\n",v1,v2,v3);
  sprintf(contentLen,"Content-Length: %d\r\n",strlen(valueData));
  sprintf(str,"%s%s%s%s%s",header,host,contentLen,contentType,valueData);
  
  client.print(str);
  delay(10);
}
 
void loop() {
  digitalWrite(12, HIGH);
  delay(500);
  digitalWrite(12, LOW);
  delay(500);
}

IFTTTの通知

電源を入れるか、リセットを行うと、IFTTTのMaker Channelにイベントが通知されます。IFTTTのレシピを作っておくことで以下のようにiOSデバイスのNortificationを発行することができます。(レシピの作り方は先人のサイトが参考になるので割愛)。

IMG_0780

« 2014年9月 | トップページ | 2015年10月 »

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ