gettingstarted.html 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="ESP8266/ESP32 WLAN configuration at run time with web interface">
  7. <link rel="canonical" href="https://Hieromon.github.io/AutoConnect/gettingstarted.html">
  8. <meta name="author" content="Hieromon Ikasamo">
  9. <link rel="shortcut icon" href="assets/images/favicon.png">
  10. <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.1.6">
  11. <title>Getting started - AutoConnect for ESP8266/ESP32</title>
  12. <link rel="stylesheet" href="assets/stylesheets/main.6910b76c.min.css">
  13. <link rel="stylesheet" href="assets/stylesheets/palette.196e0c26.min.css">
  14. <meta name="theme-color" content="#4051b5">
  15. <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
  16. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
  17. <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
  18. <link rel="stylesheet" href="css/paragraph.css">
  19. <link rel="stylesheet" href="css/extra.css">
  20. <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css">
  21. <script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-116150854-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})}),document.addEventListener("DOMContentSwitch",function(){ga("send","pageview",document.location.pathname)})</script>
  22. <script async src="https://www.google-analytics.com/analytics.js"></script>
  23. </head>
  24. <body dir="ltr" data-md-color-scheme="" data-md-color-primary="indigo" data-md-color-accent="indigo">
  25. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  26. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  27. <label class="md-overlay" for="__drawer"></label>
  28. <div data-md-component="skip">
  29. <a href="#lets-do-the-most-simple-sketch" class="md-skip">
  30. Skip to content
  31. </a>
  32. </div>
  33. <div data-md-component="announce">
  34. </div>
  35. <header class="md-header" data-md-component="header">
  36. <nav class="md-header-nav md-grid" aria-label="Header">
  37. <a href="https://Hieromon.github.io/AutoConnect/" title="AutoConnect for ESP8266/ESP32" class="md-header-nav__button md-logo" aria-label="AutoConnect for ESP8266/ESP32">
  38. <img src="images/arduino-logo.svg" alt="logo">
  39. </a>
  40. <label class="md-header-nav__button md-icon" for="__drawer">
  41. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
  42. </label>
  43. <div class="md-header-nav__title" data-md-component="header-title">
  44. <div class="md-header-nav__ellipsis">
  45. <span class="md-header-nav__topic md-ellipsis">
  46. AutoConnect for ESP8266/ESP32
  47. </span>
  48. <span class="md-header-nav__topic md-ellipsis">
  49. Getting started
  50. </span>
  51. </div>
  52. </div>
  53. <label class="md-header-nav__button md-icon" for="__search">
  54. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
  55. </label>
  56. <div class="md-search" data-md-component="search" role="dialog">
  57. <label class="md-search__overlay" for="__search"></label>
  58. <div class="md-search__inner" role="search">
  59. <form class="md-search__form" name="search">
  60. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
  61. <label class="md-search__icon md-icon" for="__search">
  62. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
  63. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
  64. </label>
  65. <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
  66. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
  67. </button>
  68. </form>
  69. <div class="md-search__output">
  70. <div class="md-search__scrollwrap" data-md-scrollfix>
  71. <div class="md-search-result" data-md-component="search-result">
  72. <div class="md-search-result__meta">
  73. Initializing search
  74. </div>
  75. <ol class="md-search-result__list"></ol>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. <div class="md-header-nav__source">
  82. <a href="https://github.com/Hieromon/AutoConnect" title="Go to repository" class="md-source">
  83. <div class="md-source__icon md-icon">
  84. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  85. </div>
  86. <div class="md-source__repository">
  87. Hieromon/AutoConnect
  88. </div>
  89. </a>
  90. </div>
  91. </nav>
  92. </header>
  93. <div class="md-container" data-md-component="container">
  94. <main class="md-main" data-md-component="main">
  95. <div class="md-main__inner md-grid">
  96. <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
  97. <div class="md-sidebar__scrollwrap">
  98. <div class="md-sidebar__inner">
  99. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  100. <label class="md-nav__title" for="__drawer">
  101. <a href="https://Hieromon.github.io/AutoConnect/" title="AutoConnect for ESP8266/ESP32" class="md-nav__button md-logo" aria-label="AutoConnect for ESP8266/ESP32">
  102. <img src="images/arduino-logo.svg" alt="logo">
  103. </a>
  104. AutoConnect for ESP8266/ESP32
  105. </label>
  106. <div class="md-nav__source">
  107. <a href="https://github.com/Hieromon/AutoConnect" title="Go to repository" class="md-source">
  108. <div class="md-source__icon md-icon">
  109. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  110. </div>
  111. <div class="md-source__repository">
  112. Hieromon/AutoConnect
  113. </div>
  114. </a>
  115. </div>
  116. <ul class="md-nav__list" data-md-scrollfix>
  117. <li class="md-nav__item">
  118. <a href="index.html" class="md-nav__link">
  119. Overview
  120. </a>
  121. </li>
  122. <li class="md-nav__item md-nav__item--active">
  123. <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
  124. <label class="md-nav__link md-nav__link--active" for="__toc">
  125. Getting started
  126. <span class="md-nav__icon md-icon"></span>
  127. </label>
  128. <a href="gettingstarted.html" class="md-nav__link md-nav__link--active">
  129. Getting started
  130. </a>
  131. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  132. <label class="md-nav__title" for="__toc">
  133. <span class="md-nav__icon md-icon"></span>
  134. Table of contents
  135. </label>
  136. <ul class="md-nav__list" data-md-scrollfix>
  137. <li class="md-nav__item">
  138. <a href="#lets-do-the-most-simple-sketch" class="md-nav__link">
  139. Let's do the most simple sketch
  140. </a>
  141. <nav class="md-nav" aria-label="Let's do the most simple sketch">
  142. <ul class="md-nav__list">
  143. <li class="md-nav__item">
  144. <a href="#run-at-first" class="md-nav__link">
  145. Run at first
  146. </a>
  147. </li>
  148. <li class="md-nav__item">
  149. <a href="#join-to-the-new-access-point" class="md-nav__link">
  150. Join to the new access point
  151. </a>
  152. </li>
  153. <li class="md-nav__item">
  154. <a href="#connection-establishment" class="md-nav__link">
  155. Connection establishment
  156. </a>
  157. </li>
  158. <li class="md-nav__item">
  159. <a href="#run-for-usually" class="md-nav__link">
  160. Run for usually
  161. </a>
  162. </li>
  163. </ul>
  164. </nav>
  165. </li>
  166. </ul>
  167. </nav>
  168. </li>
  169. <li class="md-nav__item">
  170. <a href="menu.html" class="md-nav__link">
  171. AutoConnect menu
  172. </a>
  173. </li>
  174. <li class="md-nav__item">
  175. <a href="basicusage.html" class="md-nav__link">
  176. Basic usage
  177. </a>
  178. </li>
  179. <li class="md-nav__item md-nav__item--nested">
  180. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5" >
  181. <label class="md-nav__link" for="nav-5">
  182. Advanced usage
  183. <span class="md-nav__icon md-icon"></span>
  184. </label>
  185. <nav class="md-nav" aria-label="Advanced usage" data-md-level="1">
  186. <label class="md-nav__title" for="nav-5">
  187. <span class="md-nav__icon md-icon"></span>
  188. Advanced usage
  189. </label>
  190. <ul class="md-nav__list" data-md-scrollfix>
  191. <li class="md-nav__item">
  192. <a href="advancedusage.html" class="md-nav__link">
  193. Advanced usage
  194. </a>
  195. </li>
  196. <li class="md-nav__item">
  197. <a href="adconnection.html" class="md-nav__link">
  198. AutoConnect WiFi connection control
  199. </a>
  200. </li>
  201. <li class="md-nav__item">
  202. <a href="adcpcontrol.html" class="md-nav__link">
  203. Captive portal control
  204. </a>
  205. </li>
  206. <li class="md-nav__item">
  207. <a href="adnetwork.html" class="md-nav__link">
  208. Settings and controls for network and WiFi
  209. </a>
  210. </li>
  211. <li class="md-nav__item">
  212. <a href="adauthentication.html" class="md-nav__link">
  213. Authentication settings
  214. </a>
  215. </li>
  216. <li class="md-nav__item">
  217. <a href="adcredential.html" class="md-nav__link">
  218. Credential accesses
  219. </a>
  220. </li>
  221. <li class="md-nav__item">
  222. <a href="adexterior.html" class="md-nav__link">
  223. Customizing page appearance
  224. </a>
  225. </li>
  226. <li class="md-nav__item">
  227. <a href="adothers.html" class="md-nav__link">
  228. Other operation settings and controls
  229. </a>
  230. </li>
  231. </ul>
  232. </nav>
  233. </li>
  234. <li class="md-nav__item md-nav__item--nested">
  235. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6" >
  236. <label class="md-nav__link" for="nav-6">
  237. Custom Web pages
  238. <span class="md-nav__icon md-icon"></span>
  239. </label>
  240. <nav class="md-nav" aria-label="Custom Web pages" data-md-level="1">
  241. <label class="md-nav__title" for="nav-6">
  242. <span class="md-nav__icon md-icon"></span>
  243. Custom Web pages
  244. </label>
  245. <ul class="md-nav__list" data-md-scrollfix>
  246. <li class="md-nav__item">
  247. <a href="acintro.html" class="md-nav__link">
  248. Custom Web pages with AutoConnect
  249. </a>
  250. </li>
  251. <li class="md-nav__item">
  252. <a href="acelements.html" class="md-nav__link">
  253. AutoConnectElements
  254. </a>
  255. </li>
  256. <li class="md-nav__item">
  257. <a href="acjson.html" class="md-nav__link">
  258. Custom Web pages with JSON
  259. </a>
  260. </li>
  261. <li class="md-nav__item">
  262. <a href="achandling.html" class="md-nav__link">
  263. Handling the custom Web pages
  264. </a>
  265. </li>
  266. </ul>
  267. </nav>
  268. </li>
  269. <li class="md-nav__item md-nav__item--nested">
  270. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7" >
  271. <label class="md-nav__link" for="nav-7">
  272. OTA Updates
  273. <span class="md-nav__icon md-icon"></span>
  274. </label>
  275. <nav class="md-nav" aria-label="OTA Updates" data-md-level="1">
  276. <label class="md-nav__title" for="nav-7">
  277. <span class="md-nav__icon md-icon"></span>
  278. OTA Updates
  279. </label>
  280. <ul class="md-nav__list" data-md-scrollfix>
  281. <li class="md-nav__item">
  282. <a href="otaupdate.html" class="md-nav__link">
  283. OTA Updates
  284. </a>
  285. </li>
  286. <li class="md-nav__item">
  287. <a href="otabrowser.html" class="md-nav__link">
  288. Using Web Browser
  289. </a>
  290. </li>
  291. <li class="md-nav__item">
  292. <a href="otaserver.html" class="md-nav__link">
  293. Using Update Server
  294. </a>
  295. </li>
  296. </ul>
  297. </nav>
  298. </li>
  299. <li class="md-nav__item md-nav__item--nested">
  300. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8" >
  301. <label class="md-nav__link" for="nav-8">
  302. Library APIs
  303. <span class="md-nav__icon md-icon"></span>
  304. </label>
  305. <nav class="md-nav" aria-label="Library APIs" data-md-level="1">
  306. <label class="md-nav__title" for="nav-8">
  307. <span class="md-nav__icon md-icon"></span>
  308. Library APIs
  309. </label>
  310. <ul class="md-nav__list" data-md-scrollfix>
  311. <li class="md-nav__item">
  312. <a href="api.html" class="md-nav__link">
  313. AutoConnect API
  314. </a>
  315. </li>
  316. <li class="md-nav__item">
  317. <a href="apiaux.html" class="md-nav__link">
  318. AutoConnectAux API
  319. </a>
  320. </li>
  321. <li class="md-nav__item">
  322. <a href="apiconfig.html" class="md-nav__link">
  323. AutoConnectConfig API
  324. </a>
  325. </li>
  326. <li class="md-nav__item">
  327. <a href="apielements.html" class="md-nav__link">
  328. AutoConnectElements API
  329. </a>
  330. </li>
  331. <li class="md-nav__item">
  332. <a href="apiupdate.html" class="md-nav__link">
  333. AutoConnectUpdate API
  334. </a>
  335. </li>
  336. <li class="md-nav__item">
  337. <a href="apiextra.html" class="md-nav__link">
  338. Something extra
  339. </a>
  340. </li>
  341. </ul>
  342. </nav>
  343. </li>
  344. <li class="md-nav__item md-nav__item--nested">
  345. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9" >
  346. <label class="md-nav__link" for="nav-9">
  347. Examples
  348. <span class="md-nav__icon md-icon"></span>
  349. </label>
  350. <nav class="md-nav" aria-label="Examples" data-md-level="1">
  351. <label class="md-nav__title" for="nav-9">
  352. <span class="md-nav__icon md-icon"></span>
  353. Examples
  354. </label>
  355. <ul class="md-nav__list" data-md-scrollfix>
  356. <li class="md-nav__item">
  357. <a href="howtoembed.html" class="md-nav__link">
  358. How to embed
  359. </a>
  360. </li>
  361. <li class="md-nav__item">
  362. <a href="datatips.html" class="md-nav__link">
  363. Tips for data conversion
  364. </a>
  365. </li>
  366. <li class="md-nav__item">
  367. <a href="menuize.html" class="md-nav__link">
  368. Attach the menus
  369. </a>
  370. </li>
  371. <li class="md-nav__item">
  372. <a href="wojson.html" class="md-nav__link">
  373. Custom Web pages w/o JSON
  374. </a>
  375. </li>
  376. </ul>
  377. </nav>
  378. </li>
  379. <li class="md-nav__item md-nav__item--nested">
  380. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10" >
  381. <label class="md-nav__link" for="nav-10">
  382. Appendix
  383. <span class="md-nav__icon md-icon"></span>
  384. </label>
  385. <nav class="md-nav" aria-label="Appendix" data-md-level="1">
  386. <label class="md-nav__title" for="nav-10">
  387. <span class="md-nav__icon md-icon"></span>
  388. Appendix
  389. </label>
  390. <ul class="md-nav__list" data-md-scrollfix>
  391. <li class="md-nav__item">
  392. <a href="lsbegin.html" class="md-nav__link">
  393. Inside AutoConnect::begin
  394. </a>
  395. </li>
  396. <li class="md-nav__item">
  397. <a href="credit.html" class="md-nav__link">
  398. Saved credentials access
  399. </a>
  400. </li>
  401. <li class="md-nav__item">
  402. <a href="acupload.html" class="md-nav__link">
  403. File upload handler
  404. </a>
  405. </li>
  406. <li class="md-nav__item">
  407. <a href="colorized.html" class="md-nav__link">
  408. Custom colorized
  409. </a>
  410. </li>
  411. <li class="md-nav__item">
  412. <a href="changelabel.html" class="md-nav__link">
  413. Change label text
  414. </a>
  415. </li>
  416. </ul>
  417. </nav>
  418. </li>
  419. <li class="md-nav__item">
  420. <a href="faq.html" class="md-nav__link">
  421. FAQ
  422. </a>
  423. </li>
  424. <li class="md-nav__item">
  425. <a href="changelog.html" class="md-nav__link">
  426. Change log
  427. </a>
  428. </li>
  429. <li class="md-nav__item">
  430. <a href="license.html" class="md-nav__link">
  431. License
  432. </a>
  433. </li>
  434. </ul>
  435. </nav>
  436. </div>
  437. </div>
  438. </div>
  439. <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
  440. <div class="md-sidebar__scrollwrap">
  441. <div class="md-sidebar__inner">
  442. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  443. <label class="md-nav__title" for="__toc">
  444. <span class="md-nav__icon md-icon"></span>
  445. Table of contents
  446. </label>
  447. <ul class="md-nav__list" data-md-scrollfix>
  448. <li class="md-nav__item">
  449. <a href="#lets-do-the-most-simple-sketch" class="md-nav__link">
  450. Let's do the most simple sketch
  451. </a>
  452. <nav class="md-nav" aria-label="Let's do the most simple sketch">
  453. <ul class="md-nav__list">
  454. <li class="md-nav__item">
  455. <a href="#run-at-first" class="md-nav__link">
  456. Run at first
  457. </a>
  458. </li>
  459. <li class="md-nav__item">
  460. <a href="#join-to-the-new-access-point" class="md-nav__link">
  461. Join to the new access point
  462. </a>
  463. </li>
  464. <li class="md-nav__item">
  465. <a href="#connection-establishment" class="md-nav__link">
  466. Connection establishment
  467. </a>
  468. </li>
  469. <li class="md-nav__item">
  470. <a href="#run-for-usually" class="md-nav__link">
  471. Run for usually
  472. </a>
  473. </li>
  474. </ul>
  475. </nav>
  476. </li>
  477. </ul>
  478. </nav>
  479. </div>
  480. </div>
  481. </div>
  482. <div class="md-content">
  483. <article class="md-content__inner md-typeset">
  484. <h1>Getting started</h1>
  485. <h2 id="lets-do-the-most-simple-sketch">Let's do the most simple sketch<a class="headerlink" href="#lets-do-the-most-simple-sketch" title="Permanent link">&para;</a></h2>
  486. <p>Open the Arduino IDE, write the following sketch and upload it. The feature of this sketch is that the SSID and Password are not coded.</p>
  487. <div class="highlight" style="background: #272822"><pre style="line-height: 125%; margin: 0;"><span></span><code><span style="color: #75715e">#include</span> <span style="color: #75715e">&lt;ESP8266WiFi.h&gt; // Replace with WiFi.h for ESP32</span>
  488. <span style="color: #75715e">#include</span> <span style="color: #75715e">&lt;ESP8266WebServer.h&gt; // Replace with WebServer.h for ESP32</span>
  489. <span style="color: #75715e">#include</span> <span style="color: #75715e">&lt;AutoConnect.h&gt;</span>
  490. <span style="color: #f8f8f2">ESP8266WebServer</span> <span style="color: #f8f8f2">Server;</span> <span style="color: #75715e">// Replace with WebServer for ESP32</span>
  491. <span style="color: #f8f8f2">AutoConnect</span> <span style="color: #a6e22e">Portal</span><span style="color: #f8f8f2">(Server);</span>
  492. <span style="color: #66d9ef">void</span> <span style="color: #a6e22e">rootPage</span><span style="color: #f8f8f2">()</span> <span style="color: #f8f8f2">{</span>
  493. <span style="color: #66d9ef">char</span> <span style="color: #f8f8f2">content[]</span> <span style="color: #f92672">=</span> <span style="color: #e6db74">&quot;Hello, world&quot;</span><span style="color: #f8f8f2">;</span>
  494. <span style="color: #f8f8f2">Server.send(</span><span style="color: #ae81ff">200</span><span style="color: #f8f8f2">,</span> <span style="color: #e6db74">&quot;text/plain&quot;</span><span style="color: #f8f8f2">,</span> <span style="color: #f8f8f2">content);</span>
  495. <span style="color: #f8f8f2">}</span>
  496. <span style="color: #66d9ef">void</span> <span style="color: #a6e22e">setup</span><span style="color: #f8f8f2">()</span> <span style="color: #f8f8f2">{</span>
  497. <span style="color: #f8f8f2">delay(</span><span style="color: #ae81ff">1000</span><span style="color: #f8f8f2">);</span>
  498. <span style="color: #f8f8f2">Serial.begin(</span><span style="color: #ae81ff">115200</span><span style="color: #f8f8f2">);</span>
  499. <span style="color: #f8f8f2">Serial.println();</span>
  500. <span style="color: #f8f8f2">Server.on(</span><span style="color: #e6db74">&quot;/&quot;</span><span style="color: #f8f8f2">,</span> <span style="color: #f8f8f2">rootPage);</span>
  501. <span style="color: #66d9ef">if</span> <span style="color: #f8f8f2">(Portal.begin())</span> <span style="color: #f8f8f2">{</span>
  502. <span style="color: #f8f8f2">Serial.println(</span><span style="color: #e6db74">&quot;WiFi connected: &quot;</span> <span style="color: #f92672">+</span> <span style="color: #f8f8f2">WiFi.localIP().toString());</span>
  503. <span style="color: #f8f8f2">}</span>
  504. <span style="color: #f8f8f2">}</span>
  505. <span style="color: #66d9ef">void</span> <span style="color: #a6e22e">loop</span><span style="color: #f8f8f2">()</span> <span style="color: #f8f8f2">{</span>
  506. <span style="color: #f8f8f2">Portal.handleClient();</span>
  507. <span style="color: #f8f8f2">}</span>
  508. </code></pre></div>
  509. <div class="admonition note">
  510. <p>The above code can be applied to ESP8266. To apply to ESP32, replace <code>ESP8266WebServer</code> class with <code>WebServer</code> and include <code>WiFi.h</code> and <code>WebServer.h</code> of arduino-esp32 appropriately.</p>
  511. </div>
  512. <h3 id="run-at-first"><i class="fa fa-play-circle"></i> Run at first<a class="headerlink" href="#run-at-first" title="Permanent link">&para;</a></h3>
  513. <p>After about 30 seconds, if the ESP8266 cannot connect to nearby Wi-Fi spot, you pull out your smartphone and open <em>Wi-Fi settings</em> from the <em>Settings</em> Apps. You can see the <strong>esp8266ap</strong> <sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup> in the list of <em>"CHOOSE A NETWORK..."</em>. Then tap the esp8266ap and enter password <strong>12345678</strong>, a something screen pops up automatically as shown below.</p>
  514. <p><span style="display:inline-block;width:282px;height:501px;border:1px solid lightgrey;"><img data-gifffer="images/login_ani.gif" data-gifffer-width="280" style="width:280px;" /></span><img src="images/arrow_right.svg" style="vertical-align:top;padding-top:120px;width:48px;margin-left:30px;margin-right:30px;" /><img src="images/stat.png" style="border:1px solid lightgrey;width:280px;" /></span></p>
  515. <p>This is the AutoConnect statistics screen. This screen displays the current status of the established connection, WiFi mode, IP address, free memory size, and etc. Also, the <strong>hamburger icon</strong> is the control menu of AutoConnect seems at the upper right. By tap the hamburger icon, the control menu appears as the below.</p>
  516. <h3 id="join-to-the-new-access-point"><i class="fa fa-cog"></i> Join to the new access point<a class="headerlink" href="#join-to-the-new-access-point" title="Permanent link">&para;</a></h3>
  517. <p>Here, tap <em>"Configure new AP"</em> to connect the new access point then the SSID configuration screen would be shown. Enter the <strong>SSID</strong> and <strong>Passphrase</strong> and tap <strong>apply</strong> to start connecting the access point.</p>
  518. <p><img src="images/menu_login.png" style="border:1px solid lightgrey;width:280px;" /><img src="images/arrow_right.svg" style="vertical-align:top;padding-top:120px;width:48px;margin-left:30px;margin-right:30px;" /><img src="images/config_ssid.png" style="border:1px solid lightgrey;width:280px;" /></p>
  519. <div class="admonition info">
  520. <p class="admonition-title">Can be configured with static IP</p>
  521. <p>Since v1.1.0, <a href="menu.html#configure-new-ap"><strong>Configure new AP</strong></a> menu can configure for WIFI_STA with static IP.</p>
  522. </div>
  523. <h3 id="connection-establishment"><i class="fa fa-rss"></i> Connection establishment<a class="headerlink" href="#connection-establishment" title="Permanent link">&para;</a></h3>
  524. <p>After connection established, the current status screen will appear. It is already connected to WLAN with WiFi mode as WIFI_AP_STA and the IP connection status is displayed there including the SSID. Then at this screen, you have two options for the next step.</p>
  525. <p>For one, continues execution of the Sketch while keeping this connection. You can access ESP8266 via browser through the established IP address after cancel to "<strong>Log in</strong>" by upper right on the screen.<br />
  526. Or, "<strong>RESET</strong>" can be selected. The ESP8266 resets and reboots. After that, immediately before the connection will be restored automatically with WIFI_STA mode.</p>
  527. <p><img src="images/established.png" style="border:1px solid lightgrey;width:280px;" /><img src="images/arrow_right.svg" style="vertical-align:top;padding-top:120px;width:48px;margin-left:30px;margin-right:30px;" /><img src="images/reset.png" style="border:1px solid lightgrey;width:280px;" /></p>
  528. <h3 id="run-for-usually"><i class="fa fa-play-circle"></i> Run for usually<a class="headerlink" href="#run-for-usually" title="Permanent link">&para;</a></h3>
  529. <p>The IP address of ESP8266 would be displayed on the serial monitor after connection restored. Please access its address from the browser. The "Hello, world" page will respond. It's the page that was handled by in the Sketch with "<strong>on</strong>" function of <em>ESP8266WebServer</em>.</p>
  530. <p><img src="images/serial.png" style="vertical-align:top;" /><img src="images/arrow_right.svg" style="vertical-align:top;padding-top:60px;width:48px;margin-left:45px;margin-right:30px;" /><img src="images/hello_world.png" style="border:1px solid lightgrey;width:280px;" /></p>
  531. <script>
  532. window.onload = function() {
  533. Gifffer();
  534. };
  535. </script>
  536. <div class="footnote">
  537. <hr />
  538. <ol>
  539. <li id="fn:1">
  540. <p>When applied to ESP32, SSID will appear as <strong>esp32ap</strong>.&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
  541. </li>
  542. </ol>
  543. </div>
  544. </article>
  545. </div>
  546. </div>
  547. </main>
  548. <footer class="md-footer">
  549. <div class="md-footer-nav">
  550. <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
  551. <a href="index.html" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
  552. <div class="md-footer-nav__button md-icon">
  553. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
  554. </div>
  555. <div class="md-footer-nav__title">
  556. <div class="md-ellipsis">
  557. <span class="md-footer-nav__direction">
  558. Previous
  559. </span>
  560. Overview
  561. </div>
  562. </div>
  563. </a>
  564. <a href="menu.html" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
  565. <div class="md-footer-nav__title">
  566. <div class="md-ellipsis">
  567. <span class="md-footer-nav__direction">
  568. Next
  569. </span>
  570. AutoConnect menu
  571. </div>
  572. </div>
  573. <div class="md-footer-nav__button md-icon">
  574. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
  575. </div>
  576. </a>
  577. </nav>
  578. </div>
  579. <div class="md-footer-meta md-typeset">
  580. <div class="md-footer-meta__inner md-grid">
  581. <div class="md-footer-copyright">
  582. <div class="md-footer-copyright__highlight">
  583. Copyright &copy; 2018-2020 Hieromon Ikasamo
  584. </div>
  585. Made with
  586. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  587. Material for MkDocs
  588. </a>
  589. </div>
  590. <div class="md-footer-social">
  591. <a href="https://github.com/Hieromon" target="_blank" rel="noopener" title="github.com" class="md-footer-social__link">
  592. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
  593. </a>
  594. <a href="https://twitter.com/hieromon" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link">
  595. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
  596. </a>
  597. </div>
  598. </div>
  599. </div>
  600. </footer>
  601. </div>
  602. <script src="assets/javascripts/vendor.fd16492e.min.js"></script>
  603. <script src="assets/javascripts/bundle.7836ba4d.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
  604. <script>
  605. app = initialize({
  606. base: ".",
  607. features: [],
  608. search: Object.assign({
  609. worker: "assets/javascripts/worker/search.4ac00218.min.js"
  610. }, typeof search !== "undefined" && search)
  611. })
  612. </script>
  613. <script src="js/gifffer.min.js"></script>
  614. </body>
  615. </html>