0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ESP8266 Arduino Example を試す

Last updated at Posted at 2017-05-28

ESP8266 Arduino の Example を試す

書きかけ

スケッチ例

ESP8266

  • Blink
    LED_BUILTINは1番ピンにアサインされています。(pins_arduino.hで定義されています。ボード設定を変更すると定義も応じて変わる)1番ピンにLEDをつなぐと点灯2秒、消灯1秒でブリンクします。

  • BlinkWithoutDelay
    LED Blink ですが、Delayではなく、millis()なる関数を使って時間を計っています。 millis()はボードがプログラムの実行を開始した時から現在までの時間をミリ秒単位で返します。

  • CallSDKFunctions
    シリアルポートを使います。baudレート115,200でwifi_station_get_hostname:を出力します。シリアルは、これをつかいました。

wifi_station_get_hostname()

で、ホスト名が取れます。

  • CheckFlashConfig


    IDEのEEPROM設定とハードウェアの一致

    ESPのリファレンスはここがわかりやすいか?
CheckFlashConfig.ino
ESP.getFlashChipId();        //Flash real id:   001640A1H
ESP.getFlashChipRealSize();  //Flash real size: 4194304
ESP.getFlashChipSize();      //Flash ide  size: 524288
ESP.getFlashChipSpeed();     //Flash ide speed: 40000000
ESP.getFlashChipMode();      //Flash ide mode:  DIO
Flash Chip configuration wrong! //ideSize != realSize
  • ConfigFile
    ArduinoJson.h: No such file or directory
    と表示が出てコンパイルできませんでした。

ArduinoJsonはここからダウンロードできます。私はArduinoJson-v5.10.0.zipをダウンロードしました。このファイルをC:\Program Files\Arduinoにおきました。その上で、
Arduino IDE にインストールします。
スケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインストール
ここまでくればコンパイルすることができます。
このサンプルはESP-WROOM-02のSPIFFSとういう領域のファイルを作って、読み書きをしています。

ESP-WROOM-02 の取り説によると、SPI Flash が4MB 搭載されているとのこと。
This module is mounted with an 4 MB external SPI flash to store user programs.



このプログラムを動作させるときは、GPI16 とRESETをショートさせておく。

このプログラムはsetup で

  1. RTC Memory を読み込んでプリント
  2. RTC Memory へ乱数を書き込んで、
  3. メモリーの先頭のCRC32 (巡回冗長検査)でメモリーの中身が正しいかどうかを判断
  4. 5 秒のDeep Sleep に入る。
  5. 5秒後、Deep Sleep から起き、リセットが発生しる。
    setupが再起動する。先に書き込んだ乱数がプリントされる。
RTCUserMemory.ino
// uint32_t --- 4byteアラインのポインタ
// sizeof(rtcData)は 512 になるので、RTCMemory の全領域のメモリにアクセスするための構造体
struct {
  uint32_t crc32; // ---Cyclic Redundancy Check
  byte data[508];
} rtcData;

//RTC Memory から読み込む
ESP.rtcUserMemoryRead(0, (uint32_t*) &rtcData, sizeof(rtcData))
//RTC Memory へ書き込む
ESP.rtcUserMemoryWrite(0, (uint32_t*) &rtcData, sizeof(rtcData))
// 5秒のDeepSleep Mode へ
  ESP.deepSleep(5e6);

ESP8266 Non-OS APIの情報表示 [programming_guide]
(http://www.espressif.com/sites/default/files/20a-esp8266_rtos_sdk_programming_guide_en_v1.4.0.pdf)に記載がある。
このサンプルプログラムだけSerial.begin(74880);となっているので注意が必要。

ESP starting.
'--------------------

system_get_time(): 275065
system_get_rst_info() reset reason: REASON_EXT_SYS_RST
system_get_free_heap_size(): 47888
system_get_os_print(): 0
system_get_os_print(): 1
system_get_chip_id(): 0x84D533
system_get_sdk_version(): 1.5.3(aec24ac9)
system_get_boot_version(): 5
system_get_userbin_addr(): 0x0
system_get_boot_mode(): SYS_BOOT_ENHANCE_MODE
system_get_cpu_freq(): 160
system_get_flash_size_map(): FLASH_SIZE_4M_MAP_256_256
wifi_get_opmode(): 1 - STATION_MODE
wifi_get_opmode_default(): 1 - STATION_MODE
wifi_get_broadcast_if(): 1

SoftAP Configuration

'--------------------
ssid: TestAP
password: testtesttest
ssid_len: 6
channel: 1
authmode: AUTH_WPA2_PSK
ssid_hidden: 0
max_connection: 4
beacon_interval: 34476ms
'--------------------

wifi_get_channel(): 1
wifi_get_phy_mode(): PHY_MODE_11N
system_get_time(): 342587

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?