<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/">
  <channel>
    <title>Cool Projects</title>
    <link>https://www.linuxjournal.com/</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>RV Offsite Backup Update</title>
  <link>https://www.linuxjournal.com/content/rv-offsite-backup-update</link>
  <description>  &lt;div data-history-node-id="1340746" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Having an offsite backup in your RV is great, and after a year of use,
I've discovered some ways to make it even better.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Last year I wrote a feature-length article on the data backup system I
set up for my RV (see Kyle's &lt;a href="https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server"&gt;"DIY
RV Offsite Backup and Media Server"&lt;/a&gt; from the June 2018 issue of
&lt;em&gt;LJ&lt;/em&gt;). If you haven't read that article yet, I recommend
checking it out first so you can get details on the system. In summary,
I set up a Raspberry Pi media center PC connected to a 12V television
in the RV. I connected an 8TB hard drive to that system and
synchronized all of my files and media so it acted as a kind of
off-site backup. Finally, I set up a script that would attempt to sync
over all of those files from my NAS whenever it detected that the RV was on
the local network. So here, I provide an update on how that
system is working and a few tweaks I've made to it since.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
What Works&lt;/span&gt;

&lt;p&gt;
Overall, the media center has worked well. It's been great to have all
of my media with me when I'm on a road trip, and my son appreciates
having access to his favorite cartoons. Because the interface is
identical to the media center we have at home, there's no learning
curve—everything just works. Since the Raspberry Pi is powered off
the TV in the RV, you just need to turn on the TV and everything fires
up.
&lt;/p&gt;

&lt;p&gt;
It's also been great knowing that I have a good backup of all of my
files nearby. Should anything happen to my house or my main NAS, I know
that I can just get backups from the RV. Having peace of mind about
your important files is valuable, and it's nice knowing in the worst
case when my NAS broke, I could just disconnect my USB drive from the
RV, connect it to a local system, and be back up and running.
&lt;/p&gt;

&lt;p&gt;
The WiFi booster I set up on the RV also has worked pretty well to
increase the range of the Raspberry Pi (and the laptops inside the RV)
when on the road. When we get to a campsite that happens to offer WiFi,
I just reset the booster and set up a new access point that amplifies
the campsite signal for inside the RV. On one trip, I even took it out
of the RV and inside a hotel room to boost the weak signal.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/rv-offsite-backup-update" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 07 Aug 2019 21:15:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340746 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Build Your Own Internet Radio Receiver</title>
  <link>https://www.linuxjournal.com/content/build-your-own-internet-radio-receiver</link>
  <description>  &lt;div data-history-node-id="1340545" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/nick-tufillaro" lang="" about="https://www.linuxjournal.com/users/nick-tufillaro" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Nick Tufillaro&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Tune in to communities around the world with the push of a button.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
When I get home at night, I like to tune into the world with the push
of a button. I've lived in lots of different places—from Dunedin,
New Zealand, to Santa Fe, New Mexico—and in each town, I've come to love
a radio station (usually a community radio station) that embodies
the spirit of the place. With the push of a button, I can get a bit back
in sync with each of these places and also visit new communities, thanks
to internet radio.
&lt;/p&gt;

&lt;p&gt;
Why build your own internet radio receiver? One option, of course, is
simply to use an app for a receiver. However, I've found that the most common
apps don't keep their focus on the task at hand, and are increasingly
distracted by offering additional social-networking services. And besides,
I want to listen now. I don't want to check into my computer or phone,
log in yet again, and endure the stress of recalling YAPW (Yet Another
PassWord). I've also found that the current offering of internet radio
boxes falls short of my expectations. Like I said, I've lived in a lot
of places—more than two or four or eight. I want a lot of buttons, so I can
tune in to a radio station with just one gesture. Finally, I've noticed
that streams are increasingly problematic if I don't go directly to
the source. Often, streams chosen through a "middle man" start with
an ad or blurb that is tacked on as a preamble. Or sometimes the "middle man" might
tie me to a stream of lower audio quality than the best being served up.
&lt;/p&gt;

&lt;p&gt;
So, I turned to building my own internet radio receiver—one with lots
of buttons that allow me to "tune in" without being too pushy. In this
article,
I share my experience. In principle, it should be easy—you just need a Linux distro, a ship to sail her on and an external
key pad for a rudder. In practice, it's not too hard, but there are a
few obstacles along the course that I hope to help you navigate.
&lt;/p&gt;

&lt;p&gt;
My recipe list included the following:
&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;
A used notebook with an ultra low voltage
(Core 2 Duo) processor.&lt;/li&gt;

&lt;li&gt;
An audio interface with an optical TOSLINK.&lt;/li&gt;

&lt;li&gt;
pyradio: an open-source Python radio program.&lt;/li&gt;

&lt;li&gt;
An external keypad.&lt;/li&gt;&lt;/ol&gt;&lt;img src="https://www.linuxjournal.com/sites/default/files/styles/max_650x650/public/u%5Buid%5D/12693f1smaller.png" width="600" height="572" alt="""" class="image-max_650x650" /&gt;&lt;p&gt;
&lt;em&gt;Figure 1. My Hardware Setup&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Why a notebook and not a Raspberry Pi or ship of a similar ilk? Mostly
due to time—my time in particular. It's not too hard to find a high quality
notebook about ten years old for about $50, so the cost is really not
that different, and I find the development platform to be much
quicker.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/build-your-own-internet-radio-receiver" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 27 May 2019 11:00:00 +0000</pubDate>
    <dc:creator>Nick Tufillaro</dc:creator>
    <guid isPermaLink="false">1340545 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Weekend Reading: Raspberry Pi Projects</title>
  <link>https://www.linuxjournal.com/content/weekend-reading-raspberry-pi-projects</link>
  <description>  &lt;div data-history-node-id="1339749" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/carlie-fairchild" lang="" about="https://www.linuxjournal.com/users/carlie-fairchild" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Carlie Fairchild&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;The Raspberry Pi has been very popular among hobbyists and educators ever since its launch in 2011. It’s a credit-card-sized single-board computer with a Broadcom BCM 2835 SoC, 256MB to 512MB of RAM, USB ports, GPIO pins, Ethernet, HDMI out, camera header and an SD card slot. The most attractive aspects of the Raspberry Pi are its low cost of $35 and large user community following. Join us this weekend as we explore some cool Raspberry Pi projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linuxjournal.com/content/raspberry-strudel-my-raspberry-pi-austria"&gt;Raspberry Strudel: My Raspberry Pi in Austria&lt;/a&gt; by Kyle Rankin:  In this article, I explain how I was able to colocate a Raspberry Pi and the steps I went through to prepare it for remote management.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.linuxjournal.com/content/raspberry-pi-perfect-home-server"&gt;Raspberry Pi: the Perfect Home Server&lt;/a&gt; by Brian Trapp: If you've got several different computers in need of a consistent and automated backup strategy, the RPi can do that. If you have music and video you'd like to be able to access from almost any screen in the house, the RPi can make that happen too. Maybe you have a printer or two you'd like to share with everyone easily? The Raspberry Pi can fill all those needs with a minimal investment in hardware and time.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.linuxjournal.com/content/securi-pi-using-raspberry-pi-secure-landing-point"&gt;Securi-Pi: Using the Raspberry Pi as a Secure Landing Point&lt;/a&gt; by Bill Childers: Set up a Raspberry Pi to act as an OpenVPN endpoint, SSH endpoint and Apache server—with all these services listening on port 443 so networks with restrictive policies aren't an issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.linuxjournal.com/content/real-time-rogue-wireless-access-point-detection-raspberry-pi"&gt;Real-Time Rogue Wireless Access Point Detection with the Raspberry Pi&lt;/a&gt; by Chris Jenks: A couple years ago, I decided to go back to school to get a Bachelor's degree. I needed to find a single credit hour to fill for graduation. That one credit hour became an independent study on using the Raspberry Pi (RPi) to create a passive real-time wireless sensor network. I share my work with you here.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.linuxjournal.com/content/flash-roms-raspberry-pi"&gt;Flash ROMs with a Raspberry Pi&lt;/a&gt; by Kyle Rankin: In this article, I describe the steps I performed to turn a regular Raspberry Pi running Raspbian into a BIOS-flashing machine.&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/weekend-reading-raspberry-pi-projects" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Sat, 13 Oct 2018 11:23:24 +0000</pubDate>
    <dc:creator>Carlie Fairchild</dc:creator>
    <guid isPermaLink="false">1339749 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Smart-Home Lightning Hacks</title>
  <link>https://www.linuxjournal.com/content/smart-home-lightning-hacks</link>
  <description>  &lt;div data-history-node-id="1339767" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;
Home automation should make life simpler, not more complex! 
&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Kyle Rankin occasionally uses the "lightning hacks" format for his Hack and
/ &lt;em&gt;LJ&lt;/em&gt; column when
he has a bunch of neat topics to cover that wouldn't be enough for a complete
article on their own. Thinking along those lines for this article, I
figured it would be great to cover various home-automation stuff I do. Not only is it fun to share ideas, but if I make a
list of all the cool things I'm currently doing, it will make it easier
to compare the functionality of open-source options I'd like to explore
next. If you haven't been dipping your toes into the
world of home automation, maybe some of these hacks will change your
mind.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
My Setup&lt;/span&gt;

&lt;p&gt;
Most home-automation ideas can be implemented in multiple ways. In fact,
I'm counting on that as I look into less-proprietary methods in the near
future. But right now, I'm using a Samsung SmartThings hub. Yes,
it is proprietary, but Samsung really has opened up the API and allowed
developers to create device drivers and apps to customize the
platform. I think SmartThings is the most feature-complete solution
for home automation right now, but it does have a few frustrations. The most
annoying is that it requires a constant connection to the internet in
order to function. Most folks are frustrated with the inherent privacy
concerns of home automation taking place in the cloud, and that's a big
problem. For me, the more frustrating aspect is the effect shoddy internet
service has on a home. If the internet goes down, so does 90% of my
house! I have a few workarounds, but I know that a solid (not fast) internet
connection is vital if your solution is cloud-based like SmartThings.
&lt;/p&gt;

&lt;p&gt;
Anyway, my setup consists of the following:
&lt;/p&gt;


&lt;ul&gt;&lt;li&gt;
Samsung SmartThings Hub v2.
&lt;/li&gt;

&lt;li&gt;
Amazon Echo devices all over the house.
&lt;/li&gt;

&lt;li&gt;
Google Home devices all over the house.
&lt;/li&gt;

&lt;li&gt;
Sonos speakers in most rooms.
&lt;/li&gt;

&lt;li&gt;
Various lights, switches, sensors and so on.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Having both Amazon Echo and Google Home isn't something I encourage;
it's just that I have a habit of trying new technology, and they are
both so amazing, I haven't yet chosen one over the other. Thankfully,
they're pretty happy to function together.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/smart-home-lightning-hacks" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 14 May 2018 11:30:00 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1339767 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Creating an Internet Radio Station with Icecast and Liquidsoap</title>
  <link>https://www.linuxjournal.com/content/creating-internet-radio-station-icecast-and-liquidsoap</link>
  <description>  &lt;div data-history-node-id="1339597" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/bill-dengler-0" lang="" about="https://www.linuxjournal.com/users/bill-dengler-0" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Bill Dengler&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Ever wanted to stream prerecorded music or a live event, such as a lecture or
concert for an internet audience? With Icecast and Liquidsoap, you can set up a
full-featured, flexible internet radio station using free software and open
standards.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Icecast is "a streaming media (audio/video) server that currently
supports Ogg (Vorbis and Theora), Opus, WebM and MP3 streams. It can
be used to create an internet radio station or a privately running
jukebox and many things in between. It is very versatile in that new
formats can be added relatively easily and supports open standards for
communication and interaction."
&lt;/p&gt;

&lt;p&gt;
Liquidsoap is "a powerful and flexible
language for describing your streams. It offers a rich collection of
operators that you can combine at will, giving you more power than you
need for creating or transforming streams. But Liquidsoap is still very
light and easy to use, in the UNIX tradition of simple strong components
working together."
&lt;/p&gt;

&lt;p&gt;
When combined, Icecast and Liquidsoap can
create a flexible, feature-rich internet radio station. In this article,
I describe how to configure Icecast to host an internet radio station. Then, I
explain how to
install and configure Liquidsoap to connect to Icecast, adding random
(or sequential) music playback with smart cross-fading, prerecorded
randomly inserted announcements and jingles, a song request system
and support for live streams, with automated recording and seamless
switching between live and automated programming. I also show how to configure the
server to serve your stream in MP3, Ogg and Opus formats for maximum
player compatibility.
&lt;/p&gt;

&lt;p&gt;
Icecast, Vorbis and related projects are maintained by &lt;a href="https://www.xiph.org"&gt;Xiph.Org&lt;/a&gt;,
a nonprofit organization that develops open multimedia standards and
software. To ensure that you are running the latest version of Icecast,
with all (or most) features, you should install from an official Xiph.Org
repository. Visit the list of official repositories &lt;a href="https://wiki.xiph.org/Icecast_Server/Installing_latest_version_(official_Xiph_repositories)"&gt;here&lt;/a&gt;, and follow the instructions on that page to add the Icecast
repository for your distribution. Then, install using your system's
package manager. On Debian-based systems (such as Ubuntu), you may be
asked to "configure Icecast" during package installation; select
"no"
as you will configure the server manually if you are following along with this
article.
&lt;/p&gt;

&lt;p&gt;
Open the Icecast configuration file using your preferred
text editor. On Debian-based systems, the file is located at
/etc/icecast2/icecast.xml. The location on other systems may differ; check
your package's documentation for the correct path. The configuration
file is in XML format and is divided into several sections. First,
enter your server's location and email into the location and admin fields,
respectively—for example:

&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/creating-internet-radio-station-icecast-and-liquidsoap" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 15 Jan 2018 14:34:13 +0000</pubDate>
    <dc:creator>Bill Dengler</dc:creator>
    <guid isPermaLink="false">1339597 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Live Stream Your Pets with Linux and YouTube!</title>
  <link>https://www.linuxjournal.com/content/live-stream-your-pets-linux-and-youtube</link>
  <description>  &lt;div data-history-node-id="1339532" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Anyone who reads &lt;em&gt;Linux Journal&lt;/em&gt; knows about my fascination with
birdwatching. I've created my own weatherproof video cameras with
a Raspberry Pi. I've posted instructions on how to create your own
automatically updating camera image page with JavaScript. Heck, I even
learned CSS so I could make a mobile-friendly version of BirdCam that
filled the screen in landscape mode. 
&lt;/p&gt;

&lt;p&gt;
Recently, however, I've finally
been able to create an automated system that streams my BirdCam live
over YouTube. It starts when the sun comes up and stops when the sun
goes down. And thanks to some powerful open-source software, I never
have to touch the system! 
&lt;/p&gt;

&lt;p&gt;
Some of the tools I describe here have been
covered in other articles, but this is the first time I've been able to
create a stream that anyone can see utilizing bandwidth Google pays for!
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12195f1.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 1. Birds are always camera-shy. If you watch long enough, however,
they come and steal peanuts!
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
My List of Ingredients&lt;/span&gt;

&lt;p&gt;
First off, I want to be clear about what sort of hardware and software is
required in order to accomplish something similar to what I'm doing:
&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;p&gt;
A Linux computer: if you plan to use USB cameras, this needs to
be a physical computer. If your video source is network-based, this
can be a virtual machine on your network. A Raspberry Pi isn't really
powerful enough for the video work that has to be done, unless maybe
it's low-resolution. I have an old i5 CPU running at 1.6GHz, and it's
more than enough.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
A video source: this can be pretty much any video source you have
at hand. If you plan to use a USB webcam, you'll need to be sure you
are using a physical Linux computer as noted above. I've used USB,
MJPEG over http (see my old BirdCam articles), cheap wireless security
cameras that have an RTSP stream, and most recently, I started using
UniFi video cameras. In fact, if you are considering purchasing outdoor
video cameras for a project like this, I can't recommend UniFi cameras
enough. They are PoE, HD and the free software handles recording and
provides RTSP streams that have both HD video and top-notch audio.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
A YouTube account with Live Streaming enabled: you'll need to &lt;a href="https://www.youtube.com/verify"&gt;verify
your account&lt;/a&gt;,
and then enable live
streaming &lt;a href="https://www.youtube.com/live_dashboard"&gt;here&lt;/a&gt;.
It's not a
difficult process, but without following those steps, you won't be able
to use the free service.
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/live-stream-your-pets-linux-and-youtube" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 26 Oct 2017 11:53:25 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1339532 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>The Weather Outside Is Frightful (Or Is It?)</title>
  <link>https://www.linuxjournal.com/content/weather-outside-frightful-or-it</link>
  <description>  &lt;div data-history-node-id="1339273" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/derek-hildreth-0" lang="" about="https://www.linuxjournal.com/users/derek-hildreth-0" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Derek Hildreth&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Blistery cold weather is sinking in, which ought to ignite
an instinctual desire to get your house in order and monitor it so the
water pipes don't freeze and burst. So, let's take a timely look at
a project setting up some temperature probes in various areas, reading
them and reporting in a custom dashboard. A true home automation expert
would take things further by setting up relays to turn on heat tape or
even maybe some actuators to control water flow. Maybe next year, but
for now, we just want to be able to monitor important areas of our home
(in this case a cabin in Montana) and understand temperature patterns
over time for better planning. As with most projects, there is more
than one solution, especially if it depends on what you have on hand.
At the time, the list of things in hand were as follows:
&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;
4x temperature sensors (thermocouples).
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;
1x RS-232 thermocouple module, specifically the &lt;a href="http://www.dghcorp.com/MERCHANT2/merchant.mv?Screen=CTGY&amp;Store_Code=DO&amp;Category_Code=FCT"&gt;DGH
D5331&lt;/a&gt;.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;
1x &lt;a href="https://www.embeddedarm.com/products/TS-7500"&gt;TS-7500&lt;/a&gt; single board computer with TS-752 and enclosure.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;
1x USB thumbdrive for storage.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;
Various wiring, including Ethernet.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;
1x DB9 male to RJ45 female adapter.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;
1x web server (desktop, virtual machine or cloud-based).
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
If you're interested in doing something like this, I'd look into using
any temperature sensor that uses the DS18B20 IC (or something like it)
and use the &lt;a href="https://www.embeddedarm.com/products/TS-1700"&gt;TS-1700&lt;/a&gt;
temperature sensor module with modbus and &lt;a href="https://www.embeddedarm.com/products/TS-7680"&gt;TS-7680&lt;/a&gt;
single board computer. You'd save some money and double the number
of temperature sensors you could use.
&lt;/p&gt;

&lt;p&gt;
Overall, image below shows what we're looking to build.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/figure2.png" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Four temperature sensors connected to a thermocouple module that
is read using a single board computer acting as an SFTP file server.
A web server in a different location is able to access the file server to
store temperature data in its own database and present a nice-looking
dashboard to an end user. This project guide is going to skim
over the hardware setup, highlight a Python script that reads temperature
data over RS-232 and spend some time on setting up an HTML dashboard
using Google Charts. Hopefully it'll inspire your next project.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/weather-outside-frightful-or-it" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 03 Feb 2017 15:03:11 +0000</pubDate>
    <dc:creator>Derek Hildreth</dc:creator>
    <guid isPermaLink="false">1339273 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Gordon H. Williams' Making Things Smart (Maker Media, Inc.)</title>
  <link>https://www.linuxjournal.com/content/gordon-h-williams-making-things-smart-maker-media-inc</link>
  <description>  &lt;div data-history-node-id="1339266" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Pretty much anything in the &lt;a href="http://oreilly.com"&gt;O'Reilly&lt;/a&gt; spin-off Make: series is like catnip
to us Linux cats, and the new book &lt;em&gt;Making Things Smart&lt;/em&gt; is no exception. The
book is subtitled &lt;em&gt;Easy Embedded ARM Programming For Transforming Everyday
Objects Into Intelligent Machines&lt;/em&gt; and is authored by Gordon H. Williams. 
&lt;/p&gt;

&lt;p&gt;
The
book is Williams' tool for teaching readers the fundamentals of the
powerful ARM microcontroller by walking beginners and experienced users
alike through easily assembled projects composed of inexpensive,
hardware-store parts. 
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12120f6.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
In rebellion to the many current ARM programming books
that take a bland, textbook-ish approach with focus on complex,
beginner-unfriendly languages—think C or ARM
Assembler—&lt;em&gt;Making Things
Smart&lt;/em&gt; utilizes Espruino (JavaScript for Hardware) to flatten the learning
curve.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/gordon-h-williams-making-things-smart-maker-media-inc" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 25 Jan 2017 15:48:27 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339266 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>My Childhood in a Cigar Box</title>
  <link>https://www.linuxjournal.com/content/switch-your-pi</link>
  <description>  &lt;div data-history-node-id="1339261" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
I grew up in the 1980s. That meant we drank far too much Kool-Aid, and on
Saturday mornings, we got up early to watch cartoons. It also was the
heyday of arcades, but I lived in the ghetto of Detroit and couldn't
afford quarters to play games. Plus, there were none anywhere near the
neighborhood where I lived. For me, the first real video-game experience
was the Atari 2600. I played a lot of &lt;em&gt;Frogger&lt;/em&gt;,
&lt;em&gt;Pac-Man&lt;/em&gt; and &lt;em&gt;Yars' Revenge&lt;/em&gt;
in middle school. The first system really to impact me, however, was
the original Nintendo Entertainment System (NES).
&lt;/p&gt;

&lt;p&gt;
My family moved to northern Michigan when I was in eighth grade, and I worked
all summer to save for a used NES from one of the kids who got a brand-new Super Nintendo from his parents. I was a poor nerdy kid who moved in
the middle of eighth grade, so my group of friends was fairly small. I had
exactly one friend. There happens to be two controllers with a Nintendo,
so it worked out perfectly for Pete and me. While the arcade system
I built back in 2007 (my first &lt;em&gt;Linux Journal&lt;/em&gt; article) may have been
to relive the 1980s, this article's project is really a better look at my
actual childhood. And this article's project is &lt;em&gt;awesome&lt;/em&gt;!
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
The Goal&lt;/span&gt;

&lt;p&gt;
My end goals for this project are the following:
&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;p&gt;
Play Nintendo and Super Nintendo games using emulation on a Raspberry Pi.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Fit the project into a wooden cigar box (because I already have a cool wooden
cigar box).
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Use original NES and SNES controllers, not USB knockoffs.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Boot up, select and play games using nothing more than the controller for
navigating menus.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Plug controllers into emulation machine using either original connectors or
RJ-45 plugs.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Have a good way to turn the machine on and off, not just unplug it.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Support HDMI, because that's what all televisions and projectors use now.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Support game state saves and restores. (Yes, it's cheating, but I'm more than
40 years old, so if I want to save myself 40 hours of play every time I get
to a boss level, I'm gonna do it!)
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Thanks to the size of the Raspberry Pi, it's possible to build a project
like this into just about anything. I don't have an NES case anymore,
but if I did, I'd probably build it inside one for added nostalgia.
&lt;/p&gt;

&lt;p&gt;
I decided to use RetroPie as the distribution for my project. The
great thing about using RetroPie is that it basically solves all the
issues on my list. It has the "Emulation Station" front end built right
in (Figure 1), which supports navigation via controller. It also
has emulators already installed, waiting for ROMs to be added. Truly,
using RetroPie as my base saved at least one article on software alone!
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/switch-your-pi" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 17 Jan 2017 10:49:45 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1339261 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>The Tiny Internet Project, Part III</title>
  <link>https://www.linuxjournal.com/content/tiny-internet-project-part-iii</link>
  <description>  &lt;div data-history-node-id="1339243" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/john-s-tonello" lang="" about="https://www.linuxjournal.com/users/john-s-tonello" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;John S. Tonello&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
In a previous article, I &lt;a href="http://www.linuxjournal.com/content/tiny-internet-project-part-i"&gt;introduced 
the Tiny Internet Project&lt;/a&gt;, a
self-contained Linux project that shows you how to build key pieces
of the internet on a single computer using virtualization software,
a router and free open-source applications. In the &lt;a href="http://www.linuxjournal.com/content/tiny-internet-project-part-ii"&gt;second 
installment&lt;/a&gt;,
I explained how to set up the host server using Proxmox and build a first basic Ubuntu
14.04 virtual machine. In this third installment, you'll learn how to
set up an Ubuntu mirror, a DNS server, a mail server and a web server.
&lt;/p&gt;

&lt;p&gt;
As you finished with &lt;a href="http://www.linuxjournal.com/content/tiny-internet-project-part-ii"&gt;Part 
II&lt;/a&gt;, you hopefully had just booted a raw Ubuntu 14.04 server
VM. Now, I'll describe how to customize that VM with some user accounts and software,
keeping it fairly generic, but ready to become a template for most
everything else you'll build.
&lt;/p&gt;

&lt;p&gt;
Initially, you'll do all your work from the Proxmox web interface on
your Proxmox server: https://10.128.1.2:8006.
&lt;/p&gt;

&lt;p&gt;
Log in and start the Ubuntu VM you made, which probably was named "100
(ubuntu)". Wait a moment for it to boot, and click the Proxmox Console
button to launch what is essentially a web-based terminal.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12056f1.png" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
&lt;strong&gt;Figure 1. Ubuntu Installation Screen—Selecting Your
Language&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
When the shell opens, you'll see the Ubuntu installation screens. Select
your language and choose "Install Ubuntu Server" from the action
list. You'll be prompted again for language choices and keyboard layouts;
choose the ones that suit your needs. The installer will detect your
network and prompt you to enter a hostname.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12056f2.png" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
&lt;strong&gt;Figure 2. Entering a Hostname&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Since you'll be making this VM a template, give the machine a generic
hostname like "ubuntu". That way, if you later deploy a different type
of server (say, ArchLinux), you'll easily be able to tell them apart.
&lt;/p&gt;

&lt;p&gt;
When
you're asked to create a user name, choose something that follows a naming
convention you can use for all future users, such as your first initial
and your full last name. Then when you need to figure out user
names (and email addresses) later, you won't have to guess.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12056f3.png" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
&lt;strong&gt;Figure 3. Selecting a User Name&lt;/strong&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/tiny-internet-project-part-iii" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 22 Dec 2016 16:43:18 +0000</pubDate>
    <dc:creator>John S. Tonello</dc:creator>
    <guid isPermaLink="false">1339243 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
