From 300e436bf15bf7ef15753e3b3d267c33587af04b Mon Sep 17 00:00:00 2001 From: HipsterBrown Date: Sat, 2 Jan 2016 17:41:11 -0500 Subject: [PATCH] updates content and images after feedback --- ap.md | 118 +++++++++++++++++++++++----------------- images/Tessel-AP.png | Bin 0 -> 156012 bytes images/hello-tessel.png | Bin 0 -> 13757 bytes images/router.png | Bin 0 -> 199238 bytes 4 files changed, 69 insertions(+), 49 deletions(-) create mode 100644 images/Tessel-AP.png create mode 100644 images/hello-tessel.png create mode 100644 images/router.png diff --git a/ap.md b/ap.md index c7b39a2..7e830a5 100644 --- a/ap.md +++ b/ap.md @@ -1,23 +1,22 @@ {::options parse_block_html="true" /}
+
# Build Your Own Internet -
- -Along with connecting to an existing Wifi network, Tessel 2 can also act as a portable router and emit a custom Wifi network called an access point. We can use this functionality to connect directly with our Tessel through a web browser. The advantage of doing this through Tessel's access point instead of through a local Wifi network is reduced latency of requests to the Tessel since they won't be making a detour through a different router. This also means there is no need for a local network for connecting to Tessel through the web. By the end of this article, we'll be able to control the Tessel LEDs through a web app served by the Tessel. - -In your command line, make a folder for your Tessel code, then initialize a Tessel project in that folder by running each of the following commands in the terminal: - -`mkdir tessel-router` - -`cd tessel-router` +
+
-`t2 init` +As explained in [wifi tutorial](/wifi.html), Tessel 2 can easily connect to wifi networks using the command line tool. If we're using a device connected to the same network as the Tessel, then we can connect to it through our device's web browser. Like most network-connected devices, communication over the web depends on a shared router, or access point, to direct requests and responses between every device on the network or through the Internet. This is fine and dandy if we want to use Tessel in a place with an available network, but what happens when that's not possible? -Great! Now you're set up to run code on Tessel. Your "tessel-router" folder now contains a "package.json" with some metadata Node uses for your project, and a file called "index.js".
-
-![router](./images/router.jpg) +
+![router](./images/router.png) +
+
+Instead of requiring a shared network through a standalone router, we can use the command line tool for configuring Tessel to emit a custom Wifi network and use it as an access point. Then, using Node, we can also start a web server for communicating with any connected device. Unfortunately, we won't be able to connect to the Internet but there is still a lot we can do without that. By the end of this article, we'll be able to control the Tessel LEDs through a web app served by the Tessel. +
+
+![router](./images/Tessel-AP.png)
@@ -25,6 +24,13 @@ Great! Now you're set up to run code on Tessel. Your "tessel-router" folder now

+In your command line, make a folder for your Tessel code, then initialize a Tessel project in that folder by running each of the following commands in the terminal: + +`mkdir tessel-router` + +`cd tessel-router` + +`t2 init` Rename the “index.js” file you’ve just created to “ap.js”, then copy and paste the below script over the existing text: @@ -52,11 +58,17 @@ Now that our server is in place, let's get our access point set up. In the termi `t2 ap -n TesselRouter` -This will make an open wifi network called TesselRouter. If you open the wifi setting of your computer or a separate device like a smartphone or tablet, and scan for new devices, you should be able to see and connect to this new network. After connecting to TesselRouter, run the following command in your terminal: +This will make an open, or password-less, wifi network called TesselRouter. If you open the wifi setting of your computer or a separate device like a smartphone or tablet, and scan for new devices, you should be able to see and connect to this new network. For info about making a secure network, take a look at [the cli docs](https://tessel.io/docs/cli#usage). After connecting to TesselRouter, run the following command in your terminal: `t2 run ap.js` -Once you see "Server running at http://192.168.1.101:8080/" in the terminal, go to http://192.168.1.101:8080/ (or http://tessel.local:8080/, replacing "tessel" with the name of your Tessel) in the web browser of the device connected to the TesselRouter network. You should "Hello from Tessel!" appear on the screen. You can press "Control+C" while in your terminal to stop this server. +
+Once you see "Server running at http://192.168.1.101:8080/" in the terminal, we can connect to that URL (or http://tessel.local:8080/, replacing "tessel" with the name of your Tessel) in a web browser of the device connected to the TesselRouter network. +
+ +
+![web app screenshot](./images/hello-tessel.png) +
Now let's take it up a notch by adding some interactivity between the web page and the Tessel! @@ -88,11 +100,15 @@ Let's start this next part by building out the web page we want Tessel to send t {% endhighlight %} -If you open that file in your browser, you should see something like this: +
+In that html, we have a heading, a line of instructions for the user, and a list of buttons for controlling a corresponding LED on the Tessel. Below that list of buttons we'll add some JavaScript for communicating with the Tessel: +
+
![web app screenshot](./images/ap-web-app-preview.png) +
-In that html, we have a heading, a line of instructions for the user, and a list of buttons for controlling a corresponding LED on the Tessel. Below that list of buttons we'll add some JavaScript for communicating with the Tessel: +We will add the following JavaScript before `` tag: {% highlight html %} {% endhighlight %} - -While there are some comments in the previous code snippet, the summary is when a button with the class "led-button" is clicked, we grab the info from its "data-led" attribute and make a request to our Tessel server with that info in the url. After we get a successful response from the server, we update the "Status" field next to the button with the state of the corresponding LED. - Now let's check out `ap.js` again to finish up the project. First, we're going to make a few changes to our server setup: {% highlight javascript %} @@ -147,15 +158,15 @@ var fs = require('fs'); var url = require('url'); var server = http.createServer(function (request, response) { - // here is the biggest change - var urlParts = url.parse(request.url, true); // break up the url into easier-to-use parts - var ledRegex = /leds/; // a Regex to catch requests to toggle LEDs + // Here is the biggest change + var urlParts = url.parse(request.url, true); // Break up the url into easier-to-use parts + var ledRegex = /leds/; // Create a regular expression to match requests to toggle LEDs if (urlParts.pathname.match(ledRegex)) { - // if there is a request containing 'leds' call a function, toggleLED + // If there is a request containing the string 'leds' call a function, toggleLED toggleLED(urlParts.pathname, request, response); } else { - // all other request will call a function, showIndex + // All other request will call a function, showIndex showIndex(urlParts.pathname, request, response); } }); @@ -170,37 +181,37 @@ console.log('Server running at http://192.168.1.101:8080/'); Inside our `createServer` callback function, we've replaced the old plain text response with a basic router that catches requests to '/leds/:index' and defaults all other requests to a separate function. Let's add those functions below the `console.log`: {% highlight javascript %} -// respond to the request with our index.html page +// Respond to the request with our index.html page function showIndex (url, request, response) { response.writeHead(200, {"Content-Type": "text/html"}); - // use fs to read in index.html + // Use fs to read in index.html fs.readFile(__dirname + '/index.html', function (err, content) { if (err) { throw err; } - // serves the content of index.html read in by fs + // Serve the content of index.html read in by fs response.end(content); }); } -// toggle the led specified in the url and respond with its state +// Toggle the led specified in the url and respond with its state function toggleLED (url, request, response) { - var indexRegex = /(\d)$/; // Regex to find the number at the end of the url - var result = indexRegex.exec(url); // capture the number, returns an array - var index = +result[1]; // grab the captured result from the array and make sure it's a Number + var indexRegex = /(\d)$/; // Create a regular expression to find the number at the end of the url + var result = indexRegex.exec(url); // Capture the number, returns an array + var index = +result[1]; // Grab the captured result from the array and make sure it's a Number - var led = tessel.led[index]; // use the index to refence the correct LED + var led = tessel.led[index]; // Use the index to refence the correct LED - // toggle the state of the led and call the callback after that's done + // Toggle the state of the led and call the callback after that's done led.toggle(function (err) { if (err) { - // log the error and send back a 500 (internal server error) response to the client + // Log the error and send back a 500 (internal server error) response to the client console.log(err); response.writeHead(500, {"Content-Type": "application/json"}); response.end(JSON.stringify({error: err})); } else { - // the led was successfully toggled, so respond with the state of the toggled led using led.isOn + // The led was successfully toggled, so respond with the state of the toggled led using led.isOn response.writeHead(200, {"Content-Type": "application/json"}); response.end(JSON.stringify({on: led.isOn})); } @@ -208,18 +219,27 @@ function toggleLED (url, request, response) { } {% endhighlight %} -In our `showIndex` function, we grab the content of `index.html` using the Node.js `fs` module and respond to the web browser request with that content. In our toggleLED function, we use a Regex to search the url for the index of the led we want to toggle and pass that index into the `tessel.led` array. Now that we have the led we want, we toggle it and use the callback to respond to the server request with the current state of the led using `isOn` property. +One last step is to create a `.tesselinclude` file in the project directory and add any files not required by `ap.js` that we want to deploy with it. For this project, that means adding one line: -One last step is to create a `.tesselignore` file in the project directory and add any non-JavaScript files we want to deploy with `ap.js`. For this project, that means adding one line: `index.html`. +``` +index.html +``` Finally, let's fire up our server again by running: `t2 run ap.js` +
Just like before, once you see the "Server running at http://192.168.1.101:8080/" message in your terminal, you should be able to connect to that url in the web browser of the device connected to the TesselRouter network. After connecting, you should see the index.html view we built earlier and, after clicking/tapping the buttons, see either the blue or green LEDs on the Tessel should be toggled on or off. +
+ +
+ +
- +
+**Bonus:** Add a way to toggle the red LED as well.
diff --git a/images/Tessel-AP.png b/images/Tessel-AP.png new file mode 100644 index 0000000000000000000000000000000000000000..dcec8fb56434077975516747d11f6010879df361 GIT binary patch literal 156012 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 G{J#L?(}F+% literal 0 HcmV?d00001 diff --git a/images/hello-tessel.png b/images/hello-tessel.png new file mode 100644 index 0000000000000000000000000000000000000000..11b4fcfa0c8f18ae68132b05996977aee3e4b58b GIT binary patch literal 13757 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 literal 0 HcmV?d00001 diff --git a/images/router.png b/images/router.png new file mode 100644 index 0000000000000000000000000000000000000000..7b6bd215a42a445608345e5c4968532d68a4e887 GIT binary patch literal 199238 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 H@C^Gu0E!BP literal 0 HcmV?d00001