In the past i’ve used a home build Logitech Squeezebox server (as it was called then), Picore player and tried volumio. Picore player has been sitting in my livingroom for ages, but was converted to a Node-Red Dashboard and recently Home Assistant Dashboard. (Has been a dasticz daskboard also)
Today i build another version, smaller and with a screen. Why? .. because of being ‘offline’ or ‘offgrid’ on our holidays. The car we are driving only has a Aux input.
Most of the installation is as mentioned on: https://docs.picoreplayer.org/projects/add-a-display/
I edited /opt/bootsync.sh to get /dev/sda1 mounted persistent use pcp br after editing.
Default user/pass : tc piCore
Controlling the thing is via touch or a app on my phone using wifi hotspot.
Shutting down piCore is done by cutting the power, due to everything being mounted readonly. EXEPT When you are using LMS server installation, which uses a database. But there is a tweak for a shutdown button.
I’m using GPIO 16 because i’ve got a screen connected. Active LOW, means you have to connect a pushbutton/switch between GND and GPIO pin. (nearest Vcc OR Gnd)
For measuring pressure in fermentation containers, I designed a pressure sensor which could be wireless connected to a fermentation container. The sensor would transmit the values to a Raspberry which was configured as a Access Point and would store the measurements and generated graphs using Grafana.
Connect esp with a power source. Look for a AP with ESP_Easy_0
Use password “configesp” to connect
Start you browser and enter http://192.168.4.1
In wifi wizard setup select “pressurespot” Enter password “pressurespot”
Press connect
Wait 20s and look in the raspberry logs which IP the ESP got.
Connect laptop/mobile to wifi “pressurespot”and connect
Enter found IP from ESP in your browser.
Proceed to main config
Main setting table, set the following
Unit name & number + append
SSID and WPA key pressurespot
Client IP block level allow all
Press submit
Press controller tab
Press first edit button and set following – Protocol: domoticz http Next set – Controller IP : 10.42.0.1 – Toggle enabled and press submit
Resulting in:
Next we got to Hardware
I2C interface switch GPIO-4 and GPIO-5
GPIO – SDA: GPIO-4 (D2) change to GPIO-5 (D1)
GPIO – SCL: GPIO-5 (D1) change to GPIO-4 (D2)
Press “Submit”
Devices TAB
Press edit, and select device “Environment – BMx280” from the pulldown menu.
Next, set the following
Name: pressure
Enable on
I2C address : 0x76 ( Is there is no 0x76 of 0x77 .. do a i2c scan on the next tab )
Send to controller , mark this
IDX: give this the number you had given this node (this is the one you have to use in domoticz )
interval 10Seconds
and press submit
In the Devices tab, you should be able to see the sensor with the values (Temperature and pressure)
No values? Do a i2c scan and/or reboot ESP ( You can find these in the tools tab)
Tools TAB
Press I2C scan, when seeing a address like 0x76 or 0x77 use this in previous tabs. Still nothing, even after reboot? Maybe faulty hardware?
Everything okay? Back to the config tab
We are going to set the sleep mode. Warning ! .. when setting this it is hard to get into the config pages again. ESP will startup, connect to wifi, send values and goes to sleep again.
At the bottom set: Sleep awake time 1 sec
Buttons on the raspberry / pressurespot
Red button :
Less than 3 seconds is reboot
Longer than 3 seconds is shut down
Charger can be removed, when the green light is off
Led lights on the sensors
Red light (R2; constant): battery is charging
Blue light (R1; constant): battery is full
Blue light (R1; constant) & red light (R2; blinking): trying to charge, but no battery connected
Add shutdown script to /etc/rc.local
python /usr/local/bin/power-switch.py &
/usr/local/bin/power-switch.py
#!/usr/bin/python
import threading, subprocess
import RPi.GPIO as GPIO
def shutdown():
subprocess.call('sudo shutdown -h now', shell=True)
def edge_detected(pin):
if GPIO.input(pin):
t.cancel()
subprocess.call('sudo reboot', shell=True)
else:
t.start()
if __name__ == '__main__':
try:
GPIO.setmode(GPIO.BOARD)
GPIO.setup(5, GPIO.IN)
GPIO.add_event_detect(5, GPIO.BOTH, callback=edge_detected, bouncetime=10)
t = threading.Timer(3.0, shutdown)
while True:
pass
finally:
GPIO.cleanup()
/usr/local/bin/ledoff.py
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
GPIO.output(18,GPIO.LOW)
/usr/local/bin/ledon.py
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
GPIO.output(18,GPIO.HIGH)
Now we can check that grafana is up by loading it in a browser: http://10.42.0.1:3000. If so, you can log in with the username and password = admin and set a new admin password.
Below is a picture of my mobile LMS server i used in my car. I only had radio and a CD player, i’m not a radio man .. folk, pipes and audiobooks
At the time i was working for Dutch Railways, imagine me walking with this blinky leds thingy, though the railway station …
It consisted of a dual port usb charger, a usb hub to power the drive, the rpi wasn’t strong enough. Thumbdrives where small in capacity, so i had to use a spinning disk harddrive. It was only a raspberry 1, in a case i had designed and lasercutted at Fablab Utrecht.
Now you can get rid of the Usb hub and harddrive using a small but with large capacity sdcards.
I could charge the thing in my car, and when i got home, it would connect to my home wifi network, sync-ed my MP3’s and turn off.
"If something is worth doing, it's worth overdoing."