{"id":1036,"date":"2018-11-01T16:09:39","date_gmt":"2018-11-01T07:09:39","guid":{"rendered":"http:\/\/goji2100.com\/blog\/?p=1036"},"modified":"2019-09-16T11:22:03","modified_gmt":"2019-09-16T02:22:03","slug":"esp-wroom-02-32-wi-fi-%e3%83%a9%e3%82%b8%e3%82%b3%e3%83%b3%e3%82%ab%e3%83%bc%ef%bc%88%e6%94%b9%ef%bc%89","status":"publish","type":"post","link":"https:\/\/goji2100.com\/blog\/?p=1036","title":{"rendered":"ESP-WROOM-02\/32 Wi-Fi \u30e9\u30b8\u30b3\u30f3\u30ab\u30fc\uff08\u6539\uff09"},"content":{"rendered":"<p><span style=\"color: #ff0000;\"><strong>\u3054\u6ce8\u610f\uff1a\u30b9\u30de\u30db\u306e\u6700\u65b0\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30bb\u30f3\u30b5\u30fc\u5024\u53d6\u5f97\u304c\u5236\u9650\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3001\u65b0\u3057\u3044\u8a18\u4e8b\u300c<a href=\"https:\/\/goji2100.com\/blog\/?p=1220\">ESP-WROOM-02\/32 Wi-Fi \u30e9\u30b8\u30b3\u30f3\u30ab\u30fc\uff08\u6539\uff12\uff09<\/a>\u300d\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044(*- -)(*_ _)\u30da\u30b3\u30ea<\/strong><\/span><br \/>\n<\/br><br \/>\n\u65e7\u8a18\u4e8b\u300c<a href=\"https:\/\/goji2100.com\/blog\/?p=453\" target=\"_blank\" rel=\"noopener noreferrer\">ESP-WROOM-02 Wi-Fi\u30e9\u30b8\u30b3\u30f3\u30ab\u30fc<\/a>\u300d\u306f\u3001\u6295\u7a3f\u65e5\u304c\u300c2015\/09\/15\u300d\u3068\u304b\u306a\u308a\u53e4\u3044\u3067\u3059\u304c\u3001\u3053\u306e\u30d6\u30ed\u30b0\u4e2d\u3067\u306f\uff12\u756a\u76ee\u306b\u6765\u8a2a\u8005\u306e\u591a\u3044\u8a18\u4e8b\u3067\u3059\u3002\uff08\uff11\u756a\u306f\u300cScratch Board\u3092\u4f5c\u308b\u300d\u3067\u3059(^-^;\uff09<\/p>\n<p>\u65e7\u8a18\u4e8b\u306f\u4eca\u3067\u3082\u305d\u306e\u307e\u307e\u3067\u52d5\u4f5c\u3057\u307e\u3059\u304c\u3001\u4e45\u3005\u306b\u66f4\u65b0\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30e2\u30fc\u30bf\u30fc\u30c9\u30e9\u30a4\u30d0\u30fc\u306f\u3001\u5f53\u6642\u3068\u5909\u308f\u3089\u305a\u5b89\u4fa1\u3067\u5165\u624b\u53ef\u80fd\u3067\u3059\u306e\u3067\u305d\u306e\u307e\u307e\u306b\u3057\u3066\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u6539\u8a02\u3057\u307e\u3059\u3002<br \/>\n\u5143\u8a18\u4e8b\u3067\u306f\u3001<strong>\u30b9\u30de\u30db\u30a2\u30d7\u30ea<\/strong>\u3084<a href=\"https:\/\/goji2100.com\/blog\/?p=534\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>\u81ea\u4f5c\u306e\u30ea\u30e2\u30b3\u30f3<\/strong><\/a>\u3067UPD\u901a\u4fe1\u3092\u4f7f\u3063\u3066\u64cd\u4f5c\u3059\u308b\u65b9\u5f0f\u3067\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u30b9\u30de\u30db\u306e\u30b8\u30e3\u30a4\u30ed\u30bb\u30f3\u30b5\u30fc\u3092\u4f7f\u3063\u3066\u64cd\u4f5c\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3001\u30e9\u30b8\u30b3\u30f3\u30ab\u30fc\u304cWeb\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u52d5\u4f5c\u3057\u3001\u30b9\u30de\u30db\u306e\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u63a5\u7d9a\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\uff08\u30b9\u30de\u30db\u306f iPhone \u307e\u305f\u306f Android\uff09<\/p>\n<p><strong>\u64cd\u4f5c\u30a2\u30d7\u30ea\u753b\u9762<\/strong><br \/>\n<a href=\"http:\/\/goji2100.com\/blog\/wp-content\/uploads\/2018\/11\/IMG_3151-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1039\" src=\"http:\/\/goji2100.com\/blog\/wp-content\/uploads\/2018\/11\/IMG_3151-1-169x300.png\" alt=\"\" width=\"169\" height=\"300\" srcset=\"https:\/\/goji2100.com\/blog\/wp-content\/uploads\/2018\/11\/IMG_3151-1-169x300.png 169w, https:\/\/goji2100.com\/blog\/wp-content\/uploads\/2018\/11\/IMG_3151-1-607x1080.png 607w, https:\/\/goji2100.com\/blog\/wp-content\/uploads\/2018\/11\/IMG_3151-1.png 750w\" sizes=\"(max-width: 169px) 100vw, 169px\" \/><\/a><\/p>\n<p><!--more \u3010\u7d9a\u304d\u3092\u8aad\u3080\u3011--><\/p>\n<p><strong>\u672c\u4f53\u3078\u306e\u7d44\u8fbc\u307f<\/strong><br \/>\n\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30e9\u30a4\u30c8\u3001\u8b66\u7b1b\u3001\u5de6\u53f3\u306e\u30e2\u30fc\u30bf\u30fc\u30c9\u30e9\u30a4\u30d0\u3078\u306e\u63a5\u7d9a\u306b\u3053\u306e\u8a18\u4e8b\u3068\u7570\u306a\u308b\u30dd\u30fc\u30c8\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u8a72\u5f53\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3001\u307e\u305f\u3001\u8907\u6570\u53f0\u306e\u30e9\u30b8\u30b3\u30f3\u30ab\u30fc\u3092\u4f5c\u308b\u5834\u5408\u306f\u305d\u308c\u305e\u308c\u306eSSID\u3092\u91cd\u8907\u3057\u306a\u3044\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n\u3053\u308c\u3089\u306e\u5909\u66f4\u3092\u884c\u3063\u305f\u5f8c\u306b\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u3001ESP-WROOM-02\u307e\u305f\u306fESP-WROOM-32\u3078\u66f8\u8fbc\u307f\u307e\u3059\u3002<\/p>\n<p><strong>\u8d77\u52d5<\/strong><br \/>\n\u672c\u4f53\u306f\u96fb\u6e90\u30aa\u30f3\u3067\u3001Wi-Fi\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u3068\u3057\u3066\u8d77\u52d5\u3057\u307e\u3059\u306e\u3067\u3001\u30b9\u30de\u30db\u3067\u672c\u4f53\u306eSSID\uff08ESPCar10\uff09\u3078\u30d1\u30b9\u30ef\u30fc\u30c9\uff08ESP12345\uff09\u3092\u5165\u529b\u3057\u3066\u63a5\u7d9a\u3057\u307e\u3059\u3002<br \/>\n\u63a5\u7d9a\u3067\u304d\u305f\u3089\u3001\u30b9\u30de\u30db\u30d6\u30e9\u30a6\u30b6\u306eURL\u306b\u672c\u4f53\u306eIP\u30a2\u30c9\u30ec\u30b9(http:\/\/192.168.4.1)\u3092\u5165\u529b\u3057\u3066\u63a5\u7d9a\u3057\u307e\u3059\u3002<br \/>\n\u30b9\u30de\u30db\u306b\u64cd\u4f5c\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u3001\u64cd\u4f5c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><strong>\u64cd\u4f5c\u65b9\u6cd5<\/strong><br \/>\n\u8d77\u52d5\u3057\u305f\u3068\u304d\u306b\u8868\u793a\u3055\u308c\u308b\u300c\u56db\u89d2\u306e\u7bb1\u67a0\u306e\u4e2d\u592e\u306b\u3042\u308b\u8d64\u3044\u4e38\u300d\u304c\u30b9\u30de\u30db\u3092\u50be\u3051\u308b\u3053\u3068\u3067\u50be\u3051\u305f\u65b9\u5411\u306b\u79fb\u52d5\u3057\u307e\u3059\u3001\u8d64\u3044\u4e38\u304c\u79fb\u52d5\u3059\u308b\u65b9\u5411\u306b\u672c\u4f53\u304c\u79fb\u52d5\u3057\u307e\u3059\u3002<br \/>\n\u79fb\u52d5\u3059\u308b\u901f\u3055\u3084\u65b9\u5411\u306f\u30b9\u30de\u30db\u306e\u50be\u304d\u306b\u9023\u52d5\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u50be\u304d\u3092\u5909\u3048\u3066\u64cd\u4f5c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n\u307b\u307c\u6c34\u5e73\u306b\u3059\u308b\u3068\u505c\u6b62\u3057\u307e\u3059\u3002<br \/>\n\u300c\u30af\u30e9\u30af\u30b7\u30e7\u30f3\u300d\u30dc\u30bf\u30f3\u306f\u62bc\u3059\u3068\u672c\u4f53\u306b\u63a5\u7d9a\u3057\u305f\u5727\u96fb\u30b9\u30d4\u30fc\u30ab\u30fc\u3092\u9f13\u52d5\u3057\u307e\u3059\u3002<br \/>\n\u300c\u30e9\u30a4\u30c8\u300d\u306f\u672c\u4f53\u306b\u63a5\u7d9a\u3057\u305fLED\u3092\u70b9\u6ec5\u3057\u307e\u3059\u3001\u3053\u306e\u30dc\u30bf\u30f3\u306f\u30c8\u30b0\u30eb\u52d5\u4f5c\u3067\u3059\u3002<br \/>\n\uff0a\u30e9\u30a4\u30c8\u306f\u30b9\u30de\u30db\u3068\u306e\u901a\u4fe1\u304c\u9014\u7d76\u3048\u305f\u5834\u5408\u306b\u306f\u30010.5\u79d2\u9593\u9694\u3067\u70b9\u6ec5\u3057\u307e\u3059\u3002<\/p>\n<p>ESP-WROOM-02\u3001ESP-WROOM-32\u3067\u306e<a href=\"https:\/\/goji2100.com\/blog\/?p=1066\"><strong>\u63a5\u7d9a\u56f3\u306f\u5225\u8a18\u4e8b<\/strong><\/a>\u306b\u3057\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/strong><br \/>\n\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f<a href=\"http:\/\/goji2100.com\/blog\/wp-content\/uploads\/2018\/11\/CarController-2.zip\">\u3053\u3061\u3089\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a>\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>CarController.ino \u30e1\u30a4\u30f3<\/p>\n<pre class=\"lang:arduino decode:true \" title=\"CarController.ino\">#ifdef ESP8266\r\n#include &lt;ESP8266WiFi.h&gt;\r\n#include &lt;WiFiClient.h&gt;\r\n#include &lt;ESP8266WebServer.h&gt;\r\nESP8266WebServer server(80);\r\n#else\r\n#include &lt;WiFi.h&gt;\r\n#include &lt;WiFiClient.h&gt;\r\n#include &lt;WebServer.h&gt;\r\nWebServer server(80);\r\n#endif\r\n\r\nconst char *ssid = \"ESPCar10\";\r\nconst char *pass = \"ESP12345\";\r\n\r\n#ifdef ESP32\r\n#define LED_Light 32\r\n#define LED_Hone  33\r\n#define PWM_RF    27\r\n#define PWM_RR    14\r\n#define PWM_LF    12\r\n#define PWM_LR    13\r\n#else\r\n#define LED_Light  2\r\n#define LED_Hone  15\r\n#define PWM_RF     5\r\n#define PWM_RR    13\r\n#define PWM_LF     4\r\n#define PWM_LR    12\r\n#endif\r\n\r\n#define PWM_CH0    0\r\n#define PWM_CH1    1\r\n#define PWM_CH2    2\r\n\r\n#include \"index_html.h\"\r\n\r\nvoid handleNotFound() {\r\n  String message = \"File Not Found\\n\\n\"\r\n                   + server.uri() + \" \"\r\n                   + ((server.method() == HTTP_GET) ? \"GET\" : \"POST\")\r\n                   + \"\\nArguments: \" + server.args() + \"\\n\";\r\n  for (int i = 0; i &lt; server.args(); i++)\r\n    message += \" \" + server.argName(i) + \": \" + server.arg(i) + \"\\n\";\r\n  server.send(404, \"text\/plain\", message);\r\n}\r\n\r\nint NoDat = 0;\r\nint Val_C = 0;  \/\/ Horn\r\n\r\nvoid handleRC() {\r\n  NoDat = 0;\r\n  for (int i = 0; i &lt; server.args(); i++) {\r\n    int Val_i = server.arg(i).toInt();\r\n    Serial.print(server.argName(i) + \"=\" + server.arg(i) + \", \");\r\n    switch (server.argName(i)[0]) {\r\n      case 'F': digitalWrite(LED_Light, Val_i); break;\r\n      case 'C': if (Val_C += Val_i) AnalogWrite(LED_Hone, 512, PWM_CH2); break;\r\n      case 'R': AnalogWriteD(PWM_RF, PWM_RR, (Val_i * 16), PWM_CH0); break;\r\n      case 'L': AnalogWriteD(PWM_LF, PWM_LR, (Val_i * 16), PWM_CH1); break;\r\n    }\r\n  }\r\n  Serial.println();\r\n  server.send(200, \"text\/plain\", \"\\n\\n\\n\");\r\n}\r\n\r\nvoid setup(void) {\r\n  Serial.begin(115200);\r\n  Serial.printf(\"\\nStart\\n\");\r\n\r\n  pinMode(LED_Light, OUTPUT); digitalWrite(LED_Light, 0);\r\n  pinMode(LED_Hone , OUTPUT); digitalWrite(LED_Hone , 0);\r\n  pinMode(PWM_LF   , OUTPUT); digitalWrite(PWM_LF   , 0);\r\n  pinMode(PWM_LR   , OUTPUT); digitalWrite(PWM_LR   , 0);\r\n  pinMode(PWM_RF   , OUTPUT); digitalWrite(PWM_RF   , 0);\r\n  pinMode(PWM_RR   , OUTPUT); digitalWrite(PWM_RR   , 0);\r\n\r\n  WiFi.softAP(ssid, pass);\r\n  IPAddress myIP = WiFi.softAPIP();\r\n  Serial.print(\"AP address: \");  Serial.println(myIP);\r\n\r\n  server.on(\"\/\", []() { server.send(200, \"text\/html\", index_html); });\r\n  server.on(\"\/rc\", handleRC);\r\n  server.onNotFound(handleNotFound);\r\n  server.begin();\r\n  Serial.println(\"HTTP server started\");\r\n}\r\n\r\nvoid loop(void) {\r\n  server.handleClient();\r\n  if (Val_C &amp;&amp; --Val_C == 0) AnalogWrite(LED_Hone, 0, PWM_CH2);\r\n  if (NoDat &gt; 50) {\r\n    AnalogWriteD(PWM_RF, PWM_RR, 0, PWM_CH0);\r\n    AnalogWriteD(PWM_LF, PWM_LR, 0, PWM_CH1);\r\n    AnalogWrite (LED_Hone,  (Val_C = 0), PWM_CH2);\r\n    digitalWrite(LED_Light, !digitalRead(LED_Light));\r\n    NoDat = 0;\r\n  } else NoDat++;\r\n  delay(10);\r\n}\r\n<\/pre>\n<p>AnalogWrite.ino AnalogWrite \u51e6\u7406<\/p>\n<pre class=\"lang:arduino decode:true \" title=\"AnalogWrite.ino\">#define SWAP(a, b) { int c = a; a = b; b = c; }\r\n\r\n#ifdef ESP32\r\n\r\n#define PWM_BITW  10\r\n#define PWM_FREQ  500\r\nconst int pwmFreq[] = { PWM_FREQ, PWM_FREQ, PWM_FREQ, PWM_FREQ, PWM_FREQ, PWM_FREQ, -1 };\r\n\r\n\r\nvoid AnalogWrite(int pin1, int pwm, int pwmCH) {\r\n  AnalogWriteD(pin1, 0, pwm, pwmCH);\r\n}\r\n\r\nvoid AnalogWriteD(int pin1, int pin2, int pwm, int pwmCH) {\r\n  static int sw = -1, pwmPin[4] = { -1, -1, -1, -1 };\r\n\r\n  if (sw == -1)\r\n    for (sw = 0; (pwmFreq[sw] != -1); sw++)\r\n      ledcSetup(sw, pwmFreq[sw], PWM_BITW);\r\n\r\n  if (pwm &lt; 0) SWAP(pin1, pin2);\r\n  if (pwmPin[pwmCH] != pin1) {\r\n    if (pin2 != 0) {\r\n      ledcAttachPin(pin2, (pwmCH + 4));\r\n      ledcWrite((pwmCH + 4), 0);\r\n    }\r\n    ledcAttachPin((pwmPin[pwmCH] = pin1), pwmCH);\r\n  }\r\n  ledcWrite(pwmCH, (((pwm = abs(pwm)) > 1024) ? 1024 : pwm));\r\n}\r\n\r\n#else\r\nvoid AnalogWrite(int pin1, int pwm, int pwmCH) {\r\n  analogWrite(pin1, pwm);\r\n}\r\n\r\nvoid AnalogWriteD(int pin1, int pin2, int pwm, int pwmCH) {\r\n  if (pwm &lt; 0) SWAP(pin1, pin2);\r\n  analogWrite(pin2, 0);\r\n  analogWrite(pin1, (((pwm = abs(pwm)) > 1023) ? 1023 : pwm));\r\n}\r\n#endif\r\n<\/pre>\n<p>inde_html.h \u64cd\u4f5c\u753b\u9762\u306e\u5b9a\u7fa9<\/p>\n<pre class=\"lang:arduino decode:true  \" title=\"index_html.h\">const String index_html = \"\\\r\n&lt;!DOCTYPE html&gt; \\\r\n&lt;html lang='ja'&gt; \\\r\n&lt;head&gt; \\\r\n&lt;meta charset='UTF-8'\/&gt; \\\r\n&lt;meta name='viewport' content='width=320, initial-scale=1.0, user-scalable=no'&gt; \\\r\n&lt;title&gt;Car Controller&lt;\/title&gt; \\\r\n&lt;style type='text\/css'&gt;&lt;!-- \\\r\n.btn_LX { width:124px; height: 36px; text-align:center; padding:8px; border-radius:7px; background-color:#CCCCCC; } \\\r\n--&gt; \\\r\n&lt;\/style&gt; \\\r\n&lt;\/head&gt; \\\r\n&lt;body&gt; \\\r\n&lt;div id='poss' style='color:black;'&gt;&lt;\/div&gt; \\\r\n&lt;canvas id='cv' width=260 height=260&gt;&lt;\/canvas&gt; \\\r\n&lt;div class=divCenter&gt; \\\r\n &lt;input type=button class='btn_LX' id='ex_R' onclick='Btn(8)' value='\u30af\u30e9\u30af\u30b7\u30e7\u30f3'&gt; \\\r\n &lt;input type=button class='btn_LX' id='ex_S' onclick='Btn(9)' value='\u30e9\u30a4\u30c8'&gt; \\\r\n&lt;\/div&gt; \\\r\n\\\r\n&lt;script type='text\/javascript'&gt; \\\r\n  var xhr = new XMLHttpRequest(), reqSend = 0, reqRet = 0; \\\r\n  xhr.onreadystatechange = HttpRes; \\\r\n  function HttpRes()  { \\\r\n    if (xhr.readyState == 4 &amp;&amp; xhr.status == 200) reqRet = 1; \\\r\n  } \\\r\n\\\r\n  function HttpReq(v) { \\\r\n    xhr.open('GET', '\/rc?' + v); \\\r\n    xhr.send(null); \\\r\n    reqRet = 0; \\\r\n  } \\\r\n\\\r\n  function nmn(n) { \\\r\n    if (n &gt; -5 &amp;&amp; n &lt; 5) return(0); \\\r\n    if (n &lt; -64) n = -64; \\\r\n    if (n &gt;  64) n =  64; \\\r\n    return(n); \\\r\n  } \\\r\n\\\r\n  var vals = '', FLv = 0, CLv = 0, Rv = 0, Lv = 0; \\\r\n  function Btn(n) { \\\r\n    if (n == 8) { \\\r\n      CLv = 20; \\\r\n      reqSend++; \\\r\n    } else if (n == 9) { \\\r\n       FLv = ((FLv == 1) ? 0 : 1); \\\r\n       document.getElementById('ex_S').style.backgroundColor = ((FLv) ? '#F0F8FF' : '#CCCCCC'); \\\r\n       reqSend++; \\\r\n    } \\\r\n  } \\\r\n\\\r\n  window.addEventListener('deviceorientation', (ev) =&gt; { \\\r\n    var xx = nmn(Math.round(ev.beta )); \\\r\n    var yy = nmn(Math.round(ev.gamma)); \\\r\n    Rv = Lv = -xx; \\\r\n    yy &gt;&gt;= 1; \\\r\n    Rv -= yy; \\\r\n    Lv += yy; \\\r\n    document.getElementById('poss').innerHTML = '&lt;\/br&gt;X : ' + xx + ' , Y : ' + yy; \\\r\n    posg(xx, yy); \\\r\n    reqSend++; \\\r\n  }); \\\r\n\\\r\n  var sx = 1234, sy = 0; \\\r\n  var ctx = document.getElementById('cv').getContext('2d'); \\\r\n  function posg(x, y) { \\\r\n    if (sx == 1234) { \\\r\n      ctx.beginPath(); \\\r\n      ctx.fillStyle = 'gray'; \\\r\n      ctx.fillRect(0, 0, 260, 260); \\\r\n      ctx.fill(); \\\r\n      ctx.stroke(); \\\r\n    } else { \\\r\n      ctx.beginPath(); \\\r\n      ctx.fillStyle = 'gray'; \\\r\n      ctx.strokeStyle = 'gray'; \\\r\n      ctx.lineWidth = 2; \\\r\n      ctx.arc(130 + (sy * 4), 130 + (sx * 2), 18, 0, (Math.PI * 2), true); \\\r\n      ctx.fill(); \\\r\n      ctx.stroke(); \\\r\n    } \\\r\n\\\r\n    ctx.beginPath(); \\\r\n    ctx.fillStyle = 'pink'; \\\r\n    ctx.strokeStyle = 'red'; \\\r\n    ctx.lineWidth = 2; \\\r\n    ctx.arc(130 + (y * 4), 130 + (x * 2), 16, 0, (Math.PI * 2), true); \\\r\n    ctx.fill(); \\\r\n    ctx.stroke(); \\\r\n    sy = y; \\\r\n    sx = x; \\\r\n    reqSend++; \\\r\n  } \\\r\n\\\r\n  var timer = window.setInterval(() =&gt; { \\\r\n    vals = ''; \\\r\n    if (reqSend &gt; 0) { \\\r\n      vals = 'F=' + FLv + '&amp;C=' + CLv + '&amp;L=' + Lv + '&amp;R=' + Rv; \\\r\n      CLv = 0; \\\r\n    } \\\r\n    reqSend = 0; \\\r\n    HttpReq(vals); \\\r\n  }, 50); \\\r\n\\\r\n  posg(0, 0); \\\r\n&lt;\/script&gt; \\\r\n&lt;\/body&gt; \\\r\n&lt;\/html&gt;\\n\";\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u3054\u6ce8\u610f\uff1a\u30b9\u30de\u30db\u306e\u6700\u65b0\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30bb\u30f3\u30b5\u30fc\u5024\u53d6\u5f97\u304c\u5236\u9650\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3001\u65b0\u3057\u3044\u8a18\u4e8b\u300cESP-WROOM-02\/32 Wi-Fi \u30e9\u30b8\u30b3\u30f3\u30ab\u30fc\uff08\u6539\uff12\uff09\u300d\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044(*- -)(*_ _)\u30da\u30b3\u30ea \u65e7\u8a18\u4e8b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,26,39,9,4,3],"tags":[],"_links":{"self":[{"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1036"}],"collection":[{"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1036"}],"version-history":[{"count":41,"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1036\/revisions"}],"predecessor-version":[{"id":1243,"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1036\/revisions\/1243"}],"wp:attachment":[{"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/goji2100.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}