Click here to Skip to main content
13,706,637 members
Click here to Skip to main content
Add your own
alternative version

Stats

4.5K views
44 downloads
2 bookmarked
Posted 23 Jul 2018
Licenced CPOL

The WiFiTomic Clock

, 23 Jul 2018
Rate this:
Please Sign up or sign in to vote.
When the winds from Ft. Collins aren't strong enough to sail your boat.

Introduction

I own an excellent La Crosse Ultratomic self-adjusting wall clock. Unfortunately, where I have it mounted, which is where I want to glance for checking time, requires I turn off my dimmable track lights for the clock to adjust. No biggee. Those lights are off several hours each day and the clock does seem to keep good time.

Still, all my WiFi equipment has no problem talking to my router, even with all lights at half mast. And I've seen a Raspberry Pi adjust for a daylight savings change (thanks, NTP time servers). Why not use a stronger-than-WWV source to make clocks we don't have to adjust even when EMI is present? The clock shown above can even mimic the Ultatomic's mobility.

Some Making Required

A lot of the fun in using the Raspberry Pi is the craft of finding the right hardware and 'technologies' to meet your needs. I don't give many instructions for putting pieces together, but I will list parts used later in this article.

Software Steps

What's probably more helpful is going through steps for software install and setup. All software you can't get elsewhere on the net is downloadable here (link above).

1. Using Etcher or its equivalent, image the latest Raspbian with Desktop release on a micro SD card -- 8GB or bigger. Raspbian stretch of 2018-06-27 was the latest when this was written.

2. Install the card in a Raspberry Pi 3 or 3+ connected to a decent-sized HDMI monitor, with keyboard and mouse. Pi 3 and 3+ have built-in WiFi. You can use a dongle if you have an older Pi 2. (Pi Zero W is a different story not told here.) A smaller screen will be used in the final clock.

3. After your first boot resizes the root partition and the desktop comes up, perform the setup steps in the "Welcome to Raspberry Pi" dialog. Be sure to set a new password for user pi and select your WiFi network and supply its password. This dialog is a redo of the Preferences > Raspberry Pi Configuration utility from the previous version of stretch. That configuration utility and raspi-config are still present but this Welcome dialog makes settings and updates easier. Click Reboot when displayed in the dialog.

4. Click the raspberry icon in the upper left corner when the desktop is up again and select Preferences > Raspberry Pi Configuration. Select the Interfaces tab and enable SSH. You will use SSH (or SFTP more exactly) to load local files from your PC. Click OK.

5. Click the raspberry icon again and select Accessories. Mouse over File Manager and right click. Choose Add to desktop.

6. Right click the blue globe icon (chromium Web Browser) at the top left of your screen and select "Application Launch Bar Settings". A dialog with Launchers in the left column will appear. Remove File Manager, Mathematica, and Wolfram launchers. We've done 5. and 6. to free up more Launch Bar space for smaller touchscreens. Click Close.

7. Obtain the touchscreen drivers from github. Open an LXTerminal session (black icon showing >_) and enter the following (bold).

pi@raspberrypi:~ $ sudo rm -rf LCD-show
pi@raspberrypi:~ $ git clone https://github.com/goodtft/LCD-show.git
Cloning into 'LCD-show'...
remote: Counting objects: 651, done.
remote: Total 651 (delta 0), reused 0 (delta 0), pack-reused 651
Receiving objects: 100% (651/651), 367.22 KiB | 0 bytes/s, done.
Resolving deltas: 100% (419/419), done.
pi@raspberrypi:~ $ chmod -R 755 LCD-show
pi@raspberrypi:~ $ ls LCD-show
boot        LCD5-show             MPI3508-show  usr
LCD24-show  LCD7B-show            MPI3510-show  xinput-calibrator_0.7.5-1_armhf.deb
LCD28-show  LCD7C-show            MPI4008-show  xserver-xorg-input-evdev_1%3a2.10.3-1_armhf.deb
LCD32-show  LCD-hdmi              MPI5001-show  xserver-xorg-input-evdev_2.10.5-1_armhf.deb
LCD35-show  MPI3508_480_320-show  README.md

That last ls command shows a number of -show scripts. You will use one of these to set the system to use one of the smaller touchscreens.

8. As long as you have a terminal open, also perform the following:

pi@raspberrypi:~ $ sudo apt-get install unclutter

9. Follow this to keep your screen from going blank (black) after 15 minutes inactivity so the clock won't disappear. It doesn't hurt to keep the line

@point-rpi

in the autostart file. And unless it is corrected, the note above that site's Step 2. should use the word "comment" instead of "uncomment" and the full sequence to finish editing the autostart file in Step 2. should be CTRL+X, hit Y, press Enter. You can reboot and wait patiently for 15 minutes to verify the display doesn't go black.

After you reboot, you will notice no cursor on the screen unless you move or click your mouse. You can get back an 'always there' cursor by using pidof and kill:

pi@raspberrypi:~ $ pidof unclutter
3212
pi@raspberrypi:~ $ kill 3212
[1]+  Terminated              unclutter

The process id will be some number, likely not 3212. Hiding the cursor again is as simple as:

pi@raspberrypi:~ $ unclutter &

9.5 Yeah, this came up when I finally tested on the Raspberry Pi Touch Display. We need a way to stop a full-screen JavaScript page. Stopping --kiosk mode (a chromium command line switch, one officially frowned upon) can be a problem for some display environments. Dunno why. But I did find this wonderful extension we can use on the Pi to stop full screen modes:

  • Open the chromium browser (blue globe icon in the launch bar).
  • Navigate to https://chrome.google.com/webstore/ If the webstore cant be reached, try rebooting the Pi.
  • Search the web store for Close Kiosk
  • You should see an extension with that name by Null City
  • Click + ADD TO CHROME and then Add extension

You can close chromium after this. With this extension in place, one of the confirm("Close Window?) JavaScript lines in WiFiTomic.html should stop the clock web page when needed:

function onMouseDown(event) {
    if (event.pageY < h/2) { // top half mouse click
        if (event.pageX < w/2) { // left side mouse click
            // exit window (WiFiTomic clock tab if multi tabs)
            if (confirm("Close Window?")) {
                window.close() // Please ?
                open(location, "_self").close(); // Please ?!!
                location.href = 'http://closekiosk'; // better have this extension
            }
    ...

10. On your Windows machine, install an SSH / SFTP client. I recommend the Bitvise SSH Client installer at https://www.bitvise.com/ssh-client-download. You may already have a favorite client.

11. Find the IP address of your Raspberry Pi. Hover over the WiFi applet icon in the upper right of the screen (on my system this is between the Bluetooth and Speaker icons). Look for the wlan0: Configured address (/24 indicates network mask and is not part of the address we need). You can also find the IP address using:

pi@raspberrypi:~ $ ifconfig
...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.1.15
       netmask 255.255.255.0  broadcast 192.168.1.255
       inet6 fe80::b073:d723:bc91:9ee5  prefixlen 64  scopeid 0x20<link>
       ether b8:27:eb:fb:b7:1d  txqueuelen 1000  (Ethernet)
       RX packets 9177  bytes 2293613 (2.1 MiB)
       RX errors 0  dropped 368  overruns 0  frame 0
       TX packets 430  bytes 55863 (54.5 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

In the example above, the IP address is 192.168.1.15. From the Sources download available above, extract files and use the Bitvise SFTP window (or your favorite SFTP client) to transfer copies of the following files to /home/pi on your Pi:

180screen.py
180screen.sh
180sh.png

180touch.py
180touch.sh
ghastly.sh

wifi_air96.png
WiFiTomic.html
wifitomic.sh

WifiTomicLegitBrowser.html

For the .sh files, be sure to make them executable:

pi@raspberrypi:~ $ chmod 755 *.sh

12. Transfer copies of the following to /home/pi/Desktop:

180sh.desktop
wifitomic.desktop

Two new icons will show up on the desktop. Drag the WiFiTomic Clock icon level with the Trash icon and to the right of the LXTerminal launch icon. Drag the 180 Cmd Shell icon to the right, level with WiFiTomic Clock and at least as distant from the WiFiTomic Clock as that is from Trash. Mouse down on the desktop and drag a box that selects both of the added icons. Then right click over one of these selected icons and choose Snap to Grid. The upper left of your screen should look like this:

If both new icons snap on top of each other, you lose the game. Throw your Pi away. No, not really. Move the icons to the Trash bin, open Trash with a double click, then try dragging the new icons back to better snapable positions on the desktop. Try re-snapping the new icons. Click on some empty patch of the desktop to be sure no icons are focused when you are satisfied of their positions.

You can start the WiFiTomic Clock by double clicking its desktop icon. It takes a while. See the diagram in THE Web Page to see where to click to stop the browser.

If you plan to use a 3.5 inch display like the one used on the clock shown above, you should go to step 13 now.

Option: Additionally or instead you can copy the .desktop files to /usr/share/applications:

pi@raspberrypi:~ $ sudo cp Desktop/180sh.desktop /usr/share/applicatons
pi@raspberrypi:~ $ sudo cp Desktop/wifitomic.desktop /usr/share/applicatons

This allows Adding these two applications to the Launch Bar at the top instead of the having the icons just on the desktop. Right click the blue globe icon at the top left and pick Application Launch Bar Settings again. This time expand the Installed Applications, Accessories or Games group, select the WiFiTomic Clock application and Add it to the Launchers list. Do the same for 180 Cmd Shell. Click Close to close the Application Launch Bar. You can then remove the two .desktop files from /home/pi/Desktop if you wish.

pi@raspberrypi:~ $ rm Desktop/180sh.desktop
pi@raspberrypi:~ $ rm Desktop/wifitomic.desktop

The only real advantage to having launcher icons instead of icons on the desktop is that you only have to click a Launch Bar icon once to start the utility. You have to double-click an icon that is on the desktop. With these changes, the upper left of your screen should look like this:

13. I am just forewarning that using the WiFiTomic Clock launcher or desktop icon takes a while for chromium to come up. You can also start the WiFiTomic Clock by opening the File Manager (double folder desktop icon), displaying the /home/pi directory (default directory if you haven't explored about) and double-clicking the WiFiTomic.html file icon. To display in full screen mode, press F11 once chromium is displaying the clock page.

14. If you try the 180 Cmd Shell launcher, it will ask for a Yes/NO confirmation. You can click an answer or hit Tab to switch between answers. 'Enter' is the same as clicking the focused button. If you happen to click or enter "Yes" for a 180 screen rotation when you shouldn't and have trouble moving the mouse cursor in the correct direction after reboot, remember to try moving away from your screen objective. Or try turning the physical mouse around 180°. Remember to click the opposite mouse button for actions if using an upside down mouse.

15. The next time your Pi system is booted, we want the WiFiTomic Clock to start automatically. Edit /home/pi/.config/lxsession/LDXE-pi/autostart one more time (remember Step 9). It needs to be like the following -- note the last three lines added.

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
@point-rpi
@xset s off
@xset -dpms
@xset s noblank
@unclutter
@/home/pi/180touch.sh
@/home/pi/ghastly.sh
@chromium-browser --start-fullscreen file:///home/pi/WiFiTomic.html

180touch.sh rotates the touchscreen's input if needed.

ghastly.sh edits files with settings that would cause chromium to raise a restore popup. There should really be a simply straight forward setting preventing this if the user doesn't want this popup bother. The name is based on how this script looks.

The chromium-browser line starts the browser viewing WiFiTomic.html using the --start-fullscreen command line switch. This site says using command line switches, "is not supported or recommended. They should only be used for temporary cases and may break in the future." But the description of the --start-fullscreen switch says this switch, "Specifies if the browser should start in fullscreen mode, like if the user had pressed F11 right after startup." I think they will keep this switch as long as they keep use of the F11 key.

Note: With these changes, the clock will be visible about 20 seconds after the desktop is displayed at boot up.

Browsing Elsewhere Without a Mouse and Keyboard

This is a short interlude explaining a situation that is only important if you want to use your Pi system as a clock AND as a desktop. We will complete setting up the Pi in step 16. to display the clock page on the full touchscreen for use without a keyboard and mouse connected. Suppose you want to stop the clock page to use the chromium browser for something else. You have your handy little stylus to tap the "Close browser window" area of the touchscreen and to tap "OK". The clock page goes away and the desktop is displayed. Next you tap chromium's blue globe launcher and see your favorite web pages miniaturized waiting to be clicked, but wait. How are we going to type stuff in? We can't even right click a mouse to "Exit full screen".

All of this is to say if you really want to surf the web on your clock, you should first repeat step 9.5 but this time add the Virtual Keyboard by xontab.

One more note. If you want chromium to forget about --start-fullscreen mode, at least until the next reboot, you need to kill all seven or eight chromium-browse (no r) processes that are each remembering this mode (as far as I can tell). For example, in a connected Bitvise xterm window you can:

pi@raspberrypi:~ $ pidof chromium-browse
3568 2539 1321 1239 1097 904 902 744
pi@raspberrypi:~ $ kill 3568 2539 1321 1239 1097 904 902 744

Back to the Story

16. Now is the time to install your smaller touchscreen. Before you do, use sudo and run one of the scripts in the LCD-show directory to setup for your touchscreen. Note: If you run this in a connected Bitvise xterm window, you will keep the output of running the LCD-show script, even after your system reboots.

pi@raspberrypi:~ $ cd LCD-show
pi@raspberrypi:~/LCD-show $ sudo ./MPI3508-show

Use the xxx-show script appropriate for your touchscreen. You will likely see the following line in the disconnected Bitvise xterm window:

need to update touch configuration

This indicates the xxx-show script is not handling touch configuration updates. We do separately.

I show cases using a 3.5 inch Pi Display (MPI3508-show) and a 5 inch HDMI Display (MPI5001-show). For the 5 inch clock shown below, the display is oriented upside down, but we are prepared for this. When the 180 Cmd Shell is run, the system reboots with the corrected display orientation.

For the official, DSI-connected, 7 inch Raspberry Pi Touch Display (LCD7B-show), I followed the steps above using a traditional HDMI display on one system, then shutdown and transferred the micro SD card to a separate Raspberry Pi mounted on the back of the Touch Display. This is opposed to just changing the display on one system. The stand I used with this DSI screen also presents the display upside down, so the 180 Cmd Shell is needed here too. If I use this micro SD card again in an HDMI-connected system, I will probably first remove the last "lcd_rotate=" line from the /boot/config.txt file. Remember to use sudo as in:

pi@raspberrypi:~/LCD-show $ sudo nano /boot/config.txt

See the README.md file in /home/pi/LCD-show for other touchscreens. To restore to a traditional HDMI display you can run:

pi@raspberrypi:~/LCD-show $ sudo ./LCD-hdmi

When you are ready to take the plunge, try executing the xxx-show scripts for the display you will use. The script will reboot for you when it completes. You can shutdown and power off after this to change the physical hardware display or to extract your micro SD card from your 'big' Pi system to place it in your 'clock' Pi system.

THE Web Page

There are more than a few places where you can download or reference clock displays, but I wanted to display a digital clock that was easy to read without being too distracting if it stood next to a TV. I did my original development on a Windows 10 machine using Chrome which I thought would be fairly like chromium. That looks-ok-in-Chrome web page is WifiTomicLegitBrowser.html, so named because I was originally disgusted how designer-unfriendly the chromium canvas imaging model is for the developer.

No localStorage is needed in the legit browser version. And when you fillRect with two different fillStyles on top of a previous fillRect, the differences are observed in Chrome.

For chromium localStorage, you cannot block third-party cookies. Blocking is off by default. Currently this is at:
[Vertical Ellipses] > Settings > Advanced Privacy and security > Content Settings > Cookies > Block third-party cookies

This proves once again that web designers need to be very conscious of the intended browsers and platforms they want to support.

I also wanted a clock with no keyboard and mouse. These displays are touchscreens, so four large touch "buttons" are incorporated:


Close browser
window

 

Indicate seconds
elapsed in minute

 

Change base color


 

Lighten / Darken
time digits


If you are like me you may have a tendency to obsess about appearance. Should there be more or different base colors? Are the time digits big enough? Does the digit kerning look correct? Are the changes in digit positions between 9:59 and 10:00 annoyingly obvious? Is the right font used? Should elapsed seconds be displayed differently?

I wanted to point out two main areas of this web page, WiFiTomic.html, where these factors are controlled. First, the place where base colors are collected is in the bgs associative array. Look at line 26 through 31. You can alter or add to the rgb value arrays that are used for the base colors:

var bgs = {
    0: [150, 250, 150], // Lettucey
    1: [255, 100, 70], // Tomatoish
    2: [135, 205, 250], // Sky-like
    3: [245, 245, 120] // Bananian
};

The first part of function monoCondense_fillText(color) sets size for the characters in the global string now used to display time. The numeric string fsize is set relative to the page's display height. This function then sets the font used to be one appropriate for the Raspberry Pi or defaults for other platforms. A few alternatives are left in as comments for your consideration. If seconds elapsed in the minute are to be indicated, a gradient fillStyle is then created for the fillText digits. This function is probably the easiest place to try what-if experiments.

function monoCondense_fillText(color) {
    var fsize = (h*.6).toString();
    if (platform.includes("Linux") && platform.includes("arm")) {
        //context.font = "bold " + fsize + "px DejaVu Sans Mono"; // blocky and bold
        context.font = "bold " + fsize + "px Noto Mono"; // curvy and bold
        //context.font = fsize + "px Noto Mono"; // thinner
    }
    else {
        //context.font = fsize + "px Inconsolata"; //eh
        context.font = fsize + "px NoneSuch"; //non-Mono default font on Win 10 looks better
    }
    if (secondsTell) {
        var color2 = lighter_color(f + .3);
        if (darken) {
            color2 = darker_color(f + .3);
        }
        var gradient = null;
        if (now.substring(0,1) == " " && ten1jerk == true) {
            gradient = context.createLinearGradient(w*.1, 0, w*.9 ,0);
        }
        else {
            gradient = context.createLinearGradient(0,0,w,0);
        }
        var emph = sec/59;
        gradient.addColorStop(0, color);
        if (emph > .1) {
            gradient.addColorStop(emph - .1, color);
        }
        gradient.addColorStop(emph, color2);
        if (emph < .9) {
            gradient.addColorStop(emph + .1, color);
        }
        gradient.addColorStop(1, color);
        context.fillStyle = gradient;
    }
    else {
        context.fillStyle = color;
    }

Touch Ups and Touchdowns

After step 3. above, with a traditional HDMI monitor connected you could execute this xinput command. It would show results like:

pi@raspberrypi:~ $ xinput list --name-only
Virtual core pointer
Virtual core XTEST pointer
Compx 2.4G Receiver
Virtual core keyboard
Virtual core XTEST keyboard
Compx 2.4G Receiver

The Compx 2.4G Receiver is a USB dongle handling both the wireless keyboard and mouse of my SIIG Slim-Duo. That's why it's listed under both pointer and keyboard.

If you attach a Bluetooth mouse, a wireless mouse, and an optical (wired) mouse, the command will show something like:

pi@raspberrypi:~ $ xinput list --name-only
Virtual core pointer
Virtual core XTEST pointer
Compx 2.4G Receiver]
Bluetooth Mouse
Microsoft Microsoft USB Wireless Mouse
Agiler USB Optical mouse
Virtual core keyboard
Virtual core XTEST keyboard
Compx 2.4G Receiver

All these mice work correctly for both rotations without further assistance by any scripts offered here. The touchscreen input is another matter.
Once you complete the steps above and install one of the touchscreens, the results will be something like:

pi@raspberrypi:~ $ xinput list --name-only
Virtual core pointer
Virtual core XTEST pointer
ADS7846 Touchscreen
Compx 2.4G Receiver
Virtual core keyboard
Virtual core XTEST keyboard
Compx 2.4G Receiver

This is when I use the 3.5 inch display. The 5 inch display also reports ADS7846 Touchscreen as an input pointer. For the 7 inch Raspberry Touch Display the touch device is FT5406 memory based driver. Obviously this is a special one-off sort of case.

Why are we talking about this? I wanted to explain the criteria used in 180touch.py to find the right input device so that touch input can be rotated 180 degrees with the display when needed. There may only be two known touch devices in the universe (ADS7846 Touchscreen and FT5406 memory based driver) as far as I know. But it might be wise to allow for some variation. I know there are "TouchPad", "Touch Panel" and "CoolTouch" devices out there that might be connected to a Pi so the substring "touch" may not be sufficient, but is "touchscreen" too restrictive? If so, you may need to change this Python script to find your touchscreen's input device name.

By the way, it took me longer than it should have to fix the Python rotation scripts here. Everything seemed to work fine except when I tested in the full reboot situation. Rebooting is needed to rescan the display rotation changes made in /boot/config.txt. Rebooting is when I seemed to lose the touchscreen orientation changes made. Slowly it dawned on me someone else besides my scripts must be setting touchscreen orientation (duh). Raspbian itself is setting touch device orientation at boot up! My feelings of guilt at being so dumb are assuaged somewhat by righteous indignation -- Raspbian developers should be aware of display orientation when setting touchscreen orientation. Then I wouldn't have to. Why are they so blind? Yeah. It's them guys! (Still feel dumb though.)

If no candidate device is found, the 180Touch.py script doesn't change any input device rotation.

Two Extension Ideas

Create a Roy G. Biv'ish set of seven major colors (bgs above) and select by Date.getDay() at midnight to have a seven day clock.

Add (or this or this) a temperature sensor and create a time/temperature display.

About the size of a 3x4x5 Cuboid Puzzle

The clock pictured at the top of this article sits in its Qi recharger cradle which uses Presta-Magic Cantilever (Command wall hook) and Extens-O Foot (double stick foam-taped metal plate) technologies. Next to it is its progenitor (round thing). The Pi frame was made from two different kits plus a spare M2.5 standoff or two. The display setup file is MPI3508-show for these 3.5" displays. There are several sellers besides OSOYOO for this display. A stylus should be included.

If you plan to use the LXTerminal console app much with this display, you will want to Edit Preferences. In the Style tab, Terminal font should be Monospace 8. When the Pick A Font dialog is grabbed by its title bar and raised as much as possible, the lower right button, mostly off screen, is 'OK'. On the Display tab, the Default window size should be 65 x 17. Raise the LXTerminal dialog enough to see Hide mouse pointer. Click its checkbox twice so that the checkbox is outlined (focused) but not checked. Then hit Tab twice, then Enter.

  • ElleSye 3-Coil Qi Wireless Charger Stand
  • 5V micro SD Power Adapter (recommend 2A or better)
  • Qi Receiver with micro SD output
  • 6" micro USB extension cable (Receiver to Lipo battery board input)
  • Miuzei Battery Pack Expansion Board (does a great job of charging its battery)
  • CableCreation USB to Micro USB, A Male to Micro B cable (battery expansion board to Pi)
  • SunFounder Lithium Battery Power Pack Expansion Board (DOES NOT CHARGE BATTERY!)
  • Raspberry Pi 3 B+
  • OSOYOO Touch Screen LCD Monitor HDMI Display 3.5"

Anniversary Clock Edition

Use the 180 Cmd Shell to turn this clock's display right side up. The clock is placed under a glass cloche (first time I've got to use "cloche") for three reasons.

  • It keeps dust off the bare Pi board.
  • The clock is 'face-heavy' and the cloche helps keep the clock undisturbed by passers-by.
  • It makes the clock look more pretentious.

And it also does make tapping the touchscreen a bit harder. Do all your touching before lowering the hood.



The parts include:

  • 8" x 6.5" Glass Display Dome Cloche
  • RAVPower 6700 Battery Pack (useful in relocating, aids massing under the cloche)
  • 5V micro USB Power Adapter (recommend 2A or better)
  • Micro USB extension with switch
  • Acrylic plate from clock above (extra hole drilled)
  • M2.5 standoffs, nuts, screws from an assortment kit
  • Short USB Male A to right angle micro USB cable
  • Twisted Veins HDMI 270 Degree/Right Angle Adapter (used with display's HDMI U-shaped connector)
  • 40 position .1" spacing dual row IDC female header
  • short section of 40 conductor .1" spacing ribbon cable
  • 26 position .1" spacing dual row male header
  • Raspberry Pi 3 B+
  • ELECROW 5" LCD Display HDMI Touchscreen 800x480 (several sellers this or similar display)
  • Not used but worth mentioning this 5" touch USB-connected display

Sleek Seven Inch System

The display on this system is big enough to do real work when it's not displaying the clock page. This is another upside down display when the official stand is used. There is one shortcoming with this Raspberry Pi Touch Display. It requires a rather broad finger touch to register. No tip of your fingernail here. If you have problems summoning the cursor with your finger, try your thumb or foot.

The parts include:

  • 5V micro USB Power Adapter (recommend 2A or better)
  • Raspberry Pi 3 B+
  • Official Raspberry PI Touch Display
  • Original Raspberry PI Touch Display stand (this or this is another possibility. There are also other 7 inch touch displays.)

One Last Slam

Gee, wouldn't it be great to see what THE Web Page looks like on the Windows 10 IoT.Core Browser? We've waited long enough for this creature to be usable. Alas, it's still not ready for prime time. And I was planning on making my clock a commercial success on this platform. The creature can barely handle Ethernet. Even if it knows it has a USB WiFi dongle it has no idea how to use it. With Ethernet, I pre-loaded THE Web Page in an accessible directory on the micro SD card and re-inserted it and started the Pi. The creature told me, "What do you mean file:///xxx"? or some non-functioning evasion to that effect.

How about this:

  • We go the server route and use our Raspberry Pi instead as a local Web Server.
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install apache2
pi@raspberrypi:~ $ sudo mv /var/www/html/index.html /var/www/html/indexSaved.html
pi@raspberrypi:~ $ sudo cp /home/pi/WiFiTomic.html /var/www/html/index.html

You might also try the WiFiTomicLegitBrowser.html as index.html. It's easiest just to reboot to make the website home page change effective.

  • Buy an $80 Amazon Fire HD 8 or $50 Amazon Fire 7 tablet to display the clock. Note: You can continue to mess with the creature trying to access the Apache server from another Pi. Good luck. Especially with the wireless part (which I think is practically required). The clock displayed here is on an Amazon Fire HD 10 that I got on sale.
  • On the Fire tablet, browse to your locally served THE Web Page (e.g. http://192.169.1.15). Remember Step 11. to find your server's IP address. Once you have the IP address, it will probably be re-issued whenever you restart this Pi server -- meaning you can disconnect monitor, keyboard and mouse and just run it headless, tucked away in a closet or inches away from your tablet.

By the way, nothing prevents you from both using the WiFiTomic.html page on your Pi locally and serving it from the same Pi.

The Fire HD tablet comes with its default Silk browser. You can also get the My chromium browser for free by shopping for "chromium browser" in the store. Guess what you see browsing to WiFiTomicLegitBrowser.html using My chromium? The same problem noted above for chromium on Raspbian.

The following is what you see using the default Silk browser. Good on you, Silk. Lord knows you get few enough compliments.



Neither browser can be placed in real full screen mode. You can swipe up to the top or down from the top to see the Amazon Fire's version of going in and out of "full screen", but the circle and square buttons are always shown below browser windows to dismiss or minimize them.

History

Submitted July, 2018

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

sbarnes
CEO
United States United States
No Biography provided

You may also be interested in...

Comments and Discussions

 
-- There are no messages in this forum --
Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web01-2016 | 2.8.180920.1 | Last Updated 23 Jul 2018
Article Copyright 2018 by sbarnes
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid