More Related Content Similar to ESP8266EXで位置推定 Similar to ESP8266EXで位置推定 (20) ESP8266EXで位置推定9. 設定方法
Arduino 1.6.4 からはサードパーティ製のパッ
ケージが簡単にインストールできるBoard
Managerが追加されたので
“Installing with Boards Manager” *
の通りにやれば手軽。
9
* https://github.com/esp8266/Arduino#installing-with-boards-manager
Start Arduino and open Preferences window.
Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into
Additional Board Manager URLs field. You can add multiple URLs, separating them with
commas.
Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't
forget to select your ESP8266 board from Tools > Board menu after installation).
13. (余談)2割でWifi、残りを使う
ESP8266EX is embedded with Tensilica L106 32-
bit micro controller (MCU), which features extra
low power consumption and 16-bit RSIC. The
CPU clock speed is 80MHz. It can also reach a
maximum value of 160MHz. Real Time Operation
System (RTOS) is enabled. Currently, only 20% of
MIPS has been occupied by the WiFi stack, the
rest can all be used for user application
programming and development.
13
http://download.arduino.org/products/UNOWIFI/0A-ESP8266-Datasheet-EN-v4.3.pdf
18. Q&A
Q: 1/16秒って短くない?
A: Arduino IDEはソフトウェア的に
リセットピンも操作するので、
リセット直後にコマンドを送れる。
18
ATMEGA168の1番ピン(RESET)が
通常時はプルアップされていて
スケッチ書き込み時には
USBシリアル変換基板がLOに
引っ張る仕組み
35. Baudが途中で変化している
初回メッセージは74880Baudだが
続きのゴミは115200Baudで見ると、定期的に
よく似たメッセージが送られてきている
35
ets Jan 8 2013,rst cause:2, boot mode:(3,2)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
ets Jan 8 2013,rst cause:4, boot mode:(3,2)
wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
初回メッセージ
(74880Baud)
定期的メッセージ
(115200Baud)
52. 電気二重層キャパシタで駆動
52
** Scan Networks **
number of available networks:15
(略: スキャンに成功)
** Scan Networks **
Exception (0):
epc1=0x4020f601 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00
ctx: sys
sp: 3ffffda0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3fffff40: 40204df0 00000000 3ffe94e0 3ffe94ec
3fffff50: 00000000 00000103 00000000 0000001b
3fffff60: 00000000 ffffffff 40204a3f 3ffec6a0
3fffff70: 3ffe94e0 3fffdcc0 3ffe8c80 3ffe8c80
3fffff80: 00000050 3ffec6a0 3fffdab0 00000000
3fffff90: 40204367 3fffdab0 00000000 402029a3
3fffffa0: 3ffe8c80 40000f49 3fffdab0 40000f49
<<<stack<<<
「@ェrjrA(!鬼ヒu巾奚XヒQ兊�ム*!Bス瘰�
電源を切っても
1回スキャンに成功する。
2回目で死ぬ。
60. SPIFFS
SPI Flash File System
ESP8266EX上のフラッシュメモリ上に
ファイルシステムを作ってそこに書きこむ
フラッシュメモリがそもそも4MBあって、
そのうち設定によって1Mか3Mを
ファイルシステムとして使える(意外と広い)
60
https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md
64. 実際のコード(メモ)
←setup
64
if (!SPIFFS.begin()) {
Serial.println("Failed to mount file system");
return;
}
File f = SPIFFS.open("/data", "a");
if(!f) {
Serial.println("file write error");
return;
}
f.print("class,");
f.println(btnBlack);
for (int thisNet = 0; thisNet < numSsid;
thisNet++) {
f.print(WiFi.SSID(thisNet));
f.print(",");
f.println(WiFi.RSSI(thisNet));
}
f.print("finish,0");
f.close();
周辺のWifiアクセスポイントを
スキャンしてSSIDと電波強度と
その時に押されていたボタンと
をファイルに追記
66. 実際のコード(メモ)
66
void printFileContent(){
File f = SPIFFS.open("/data", "r");
if(!f) {
Serial.println("file read error");
return;
}
Serial.println("open");
while(1){
String line = f.readStringUntil('¥n');
if(line.length() == 0) break;
Serial.println(line);
}
f.close();
Serial.println("close");
SPIFFS.remove("/data");
}
if(Serial.available() > 0){
String s = Serial.readStringUntil('¥n');
if(s.startsWith("show")){
printFileContent();
toScan = false;
}
68. サイズ感
SPIFFSとESP8266Wifiを使ったコードでも
まだまだ余裕がある。
68
最大434,160バイトのフラッシュメモリのうち、スケッチが221,999バイト
(51%)を使っています。
最大81,920バイトのRAMのうち、グローバル変数が31,564バイト(38%)を
使っていて、ローカル変数で50,356バイト使うことができます。
最大434,160バイトのフラッシュメモリのうち、スケッチが252,029バイト
(58%)を使っています。
最大81,920バイトのRAMのうち、グローバル変数が33,076バイト(40%)
を使っていて、ローカル変数で48,844バイト使うことができます。
再掲:空っぽのスケッチ(p.22)
72. 寄与率
25階の匠大塚
HW01Fはモバイ
ルWifiっぽい
72
[(-0.75174650644165308, 'Endo_Lighting_GW_BC863D'),
(-0.32922164450111607, '203Za-479863'),
(-0.16863513660418045, 'CB_PERSONAL'),
(-0.15253474410936466, 'takumi-otsuka'),
(-0.13745041107642145, '305ZT-OPRO7'),
(-0.11052354781540112, 'takumi-office'),
(-0.10845149321438578, 'GUEST@CYBOZU'),
(0.0, 'URoad-9BFA78'),
(0.0, 'URoadWPS-9BFA79'),
(0.0, 'logitecgameuser'),
(8.2469479800687644e-06, 'CWLOG'),
(0.0086698186017501577, 'D_MAC_VOICE'),
(0.014008637452839746, 'Den of Cavy'),
(0.037548926177205628, 'aterm-d2be63-gw'),
(0.047522837348979427, 'aterm-d2be63-g'),
(0.15630282157435069, 'CBWIRELESSLAN'),
(0.16803078872845839, 'HW01F-B37A33'),
(0.24211192295107467, 'HW01F-B369AF'),
(0.30078688910126239, 'SlankDevNet'),
(0.33380203768152689, 'HW01F-B378EB'),
(0.46999316370163002, 'GL06P-0863615DD918'),
(0.50892947486630757, 'Cykoknak')]