This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| en:iot-open:remotelab:sut:generalpurpose2:u2 [2019/10/29 22:04] – pczekalski | en:iot-open:remotelab:sut:generalpurpose2:u2 [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ==== U2: Exposing access point (AP)==== | ||
| + | In this scenario, you set up your own access point. Please note, in this case, a number of devices you can connect to the AP is really limited. VRELs 1, 2, 3 and 4 are physically located together, while VREL 6 and VREL 7 are in two remote locations, thus you may not be able to reach hosted AP. | ||
| + | === Target group === | ||
| + | Undergraduate / Bachelor / Engineering Students | ||
| + | === Prerequisites === | ||
| + | You need to know how to handle 4×20 characters LCD screen. In case of doubt re-work on scenarios B1 and B2.\\ <fc # | ||
| + | <note warning> | ||
| + | To fully experience this scenario, you need to book another node (one of 1,2,3 or 4), to let the other node act as your networking client. You can use scenario U1 for this purpose but mind to update network SSID and passphrase in your code, to let it connect to your server. <note tip> | ||
| + | |||
| + | === Scenario === | ||
| + | In this scenario, you will set up an access point and present on the LCD screen number of clients connected. The devices that connect to your AP obtain automatically an IP address from your AP so actually it hosts a DHCP server out of the box! The IP range is from the '' | ||
| + | |||
| + | === Result === | ||
| + | On the LCD you should present that AP is active, its name (SSID) and passphrase (select one no longer than 20 characters, to fit single line). In the last line of the LCD, there should be present a number of connected devices. | ||
| + | |||
| + | === Start === | ||
| + | Define some identifiers to separate and update AP's SSID and passphrase easily. To format lines for the LCD, we suggest using a char buffer of 20 characters (one full line) and some 2-3 integers for iterators. Remember to declare the LCD control class in your code. You do not need to instantiate WiFi communication class - as you have only one interface here, it is singleton class you can refer directly using '' | ||
| + | |||
| + | === Steps === | ||
| + | Following steps do not present full code - you need to supply missing parts on your own! | ||
| + | == Step 1 == | ||
| + | Include all necessary libraries. The minimum set here is: | ||
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | ... | ||
| + | </ | ||
| + | == Step 2 == | ||
| + | Give it some definitions as identifiers for cleaner code, remember to change ssid name to yours! | ||
| + | <code c> | ||
| + | #define wifi_ssid_ap put_your_unique_id_here //give it some unique name-change here | ||
| + | #define wifi_password_ap " | ||
| + | </ | ||
| + | <note warning> | ||
| + | |||
| + | == Step 3 == | ||
| + | Print some information about starting software WiFi AP, configure network interface as a WiFi AP and give it a try to start: | ||
| + | <code c> | ||
| + | ... | ||
| + | delay(10); | ||
| + | ... | ||
| + | WiFi.mode(WIFI_AP); | ||
| + | delay(100); | ||
| + | boolean result = WiFi.softAP(wifi_ssid_ap, | ||
| + | | ||
| + | if(result == true) | ||
| + | { | ||
| + | ... //Announce success, print status, SSID and passphrase to the LCD | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | ... //Announce failure. Print it on LCD | ||
| + | } | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | == Step 4 == | ||
| + | Implement in the '' | ||
| + | <code c> | ||
| + | ... | ||
| + | void loop() | ||
| + | { | ||
| + | lcd.setCursor(0, | ||
| + | sprintf(buffer, | ||
| + | lcd.print(buffer); | ||
| + | delay(3000); | ||
| + | } | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | === Result validation === | ||
| + | Check your AP is active on LCD eventually observe failure. If works OK, compile U1 scenario on another node(s), mind to update SSID and passphrase in the U1 source code then observe if connected clients counter increases. | ||
| + | |||
| + | === FAQ === | ||
| + | Do I need to use WiFi.mode(WIFI_AP);?: | ||