Cellular modems are really nifty in the sense that they give you internet access pretty much anywhere. Unfortunately, unless you pay for the expense of a business plan, this comes at the cost of not having a public IP address. Essentially the cellular networks operate just like a giant version of your home network; each modem gets assigned a private address that is NAT'd to a public address.
Usually this is OK as long as you're just making outbound connections (such as surfing the web). It does however make it very difficult to establish an inbound connection to a cellular modem from the public network, which we want to be able to do with the CabinPi in the event that we need to ssh into to check on things.
The solution we found was to use AutoSSH. In short, the CabinPi runs the AutoSSH daemon to ensure that there is always a persistent ssh tunnel open to a well known host on the Internet. You can then log into this well known host and then use that tunnel to connect back to the Pi.
Generally, I followed this guide to configure AutoSSH: SSH TUNNELLING FOR FUN AND PROFIT: AUTOSSH.
The final configuration that I used for autossh.service is:
[Unit]
Description=AutoSSH tunnel service
After=network.target
[Service]
User=autossh
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure=yes" -NR 2222:localhost:22 [email protected]
[Install]
WantedBy=multi-user.target
In general it has worked pretty well and considering that I can ssh to a device up in the mountains it's pretty impressive.
FPHI Projects
Tuesday, July 3, 2018
Monday, September 11, 2017
Help! I Can't Reach the Power Switch
Pi is going to live in a remote location keeping it up and responding is better than a long drive just to press a reboot button. The watchdog service is going to help us out by rebooting the system when one of it's tests gets triggered.
Is this the correct way to install the watchdog package? by paulv
Outline of Actions
- Turn on watchdog hardware
- Install Service
- Configure watchdog tests
- Run service
- Setup service to run on boot
Action Details
1. Turning on the hardware
Modify system config
sudo nano /boot/config.txt
Add this:
# turn on the hardward watchdog
dtparam=watchdog=on
After reboot you should see watchdog listed (I don't know why there are two)
$ ls -al /dev/watchdog* crw------- 1 root root 10, 130 Sep 11 15:38 /dev/watchdog crw------- 1 root root 252, 0 Sep 11 15:38 /dev/watchdog0
2. Install the software
sudo apt-get install watchdog
3. Enable the tests
sudo nano /etc/watchdog.conf
uncomment a few lines
max-load-1 = 24 min-memory = 1 watchdog-device = /dev/watchdog
4. Run the Service
sudo systemctl start watchdog
sudo systemctl status watchdog
5. Run on Boot
sudo nano /lib/systemd/system/watchdog.service
Change WantedBy to this:
[Install]
WantedBy=multi-user.target
And Enable
sudo systemctl enable watchdog
Resources
Enabling Watchdog on Raspberry Pi by Abdullah BashirIs this the correct way to install the watchdog package? by paulv
Friday, September 8, 2017
Cellular Modem on the Pi
Our first attempt at adding WAN connectivity to the Pi failed because we didn't have a proper antenna connection, and we were on site so there was no Radio Shack (ha!) to run to. With the Novatel in pieces after half-assed attempts to solder hair-like antenna leads to gnat-sized antenna ports failed, it was time to order a new modem.
Cabin Pi
For our first public project, FPHI is working on the creation of an off the grid cabin monitoring system. At it's core, a Raspberry Pi 3 will monitor environmental and cabin systems and make the information available to the public.
Here's the current plan.
Environmental inputs:
Here's the current plan.
Environmental inputs:
- Interior Temperature
- Exterior Temperature
- Humidity
- Barometric Pressure
System Input:
- From the charge controller, read the solar cell and battery levels
- Monitor the power consumption of the Pi itself
Output:
- Write the collected data to a remote InfluxDB, for rendering with Grafana.
- Take occasional pictures (using the Pi Cam) and post to "the cloud".
Connectivity:
- Use a cellular modem to transfer data out and provide remote shell capability
So that's the nutshell summary. We'll use this space to record the difficulties in achieving these goals.
Subscribe to:
Posts (Atom)