Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3eb4d15825
|
@@ -37,11 +37,11 @@ pipeline:
|
|||||||
environment:
|
environment:
|
||||||
- CI_BUILD_EVENT=pull_close
|
- CI_BUILD_EVENT=pull_close
|
||||||
when:
|
when:
|
||||||
event: pull_close
|
event: push
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
image: git.shrug.pw/neil/containers/woodpecker-ci:latest
|
image: git.shrug.pw/neil/containers/woodpecker-ci:latest
|
||||||
secrets: [ssh_key, GITLAB_DEPLOY_TOKEN]
|
secrets: [ssh_key]
|
||||||
environment:
|
environment:
|
||||||
- GIT_AUTHOR_NAME="Woody the Woodpecker"
|
- GIT_AUTHOR_NAME="Woody the Woodpecker"
|
||||||
- GIT_AUTHOR_EMAIL=ci@shrug.pw
|
- GIT_AUTHOR_EMAIL=ci@shrug.pw
|
||||||
|
|||||||
@@ -16,51 +16,3 @@ div.footer {
|
|||||||
.panel-default h4 a, h5 a {
|
.panel-default h4 a, h5 a {
|
||||||
color: $primary-color;
|
color: $primary-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
figure.inline {
|
|
||||||
display: inline-flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: auto;
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure.inline-40 {
|
|
||||||
display: inline-flex;
|
|
||||||
height: auto;
|
|
||||||
width: 40%;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure.inline-60 {
|
|
||||||
display: inline-flex;
|
|
||||||
height: auto;
|
|
||||||
width: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure.inline-80 {
|
|
||||||
display: inline-flex;
|
|
||||||
height: auto;
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure.right {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure.left {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure > img {
|
|
||||||
display: inline-flex;
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clearfix {
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
.clearfix::after {
|
|
||||||
content: "";
|
|
||||||
clear: both;
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: 'Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)'
|
title: 'Smarthome Soldering Iron with Home Assistant and ESPHome'
|
||||||
description: 'Learn how to create a smart soldering iron using Pinecil with Home Assistant and ESPHome, as well as explore the options for controlling and monitoring your Pinecil with Bluetooth'
|
description: 'Learn how to create a smart soldering iron using Pinecil with Home Assistant and ESPHome.'
|
||||||
date: 2023-03-28T19:01:25-04:00
|
date: 2023-03-28T19:01:25-04:00
|
||||||
draft: false
|
draft: false
|
||||||
categories: [Home Automation, DIY, FOSS]
|
categories: [Home Automation, DIY]
|
||||||
tags: [Pinecil, Home Assistant, DIY, RISC-V, Blisp, PineSAM, Pine64, esphome]
|
tags: [Pinecil, Home Assistant, DIY, RISC-V, Blisp]
|
||||||
---
|
---
|
||||||
|
|
||||||
About a year ago, [wesdottoday](https://hachyderm.io/@wesdottoday) told me to
|
About a year ago, [wesdottoday](https://hachyderm.io/@wesdottoday) told me to
|
||||||
@@ -15,14 +15,9 @@ Pinecil's firmware (IronOS), and am spending my weekends playing around with
|
|||||||
Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan
|
Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan
|
||||||
when I start tinkering at my desk, lest my lungs die from the fumes.
|
when I start tinkering at my desk, lest my lungs die from the fumes.
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
{{< figure src="pinecil-esp32.jpg" alt="ESP-WROOM-32 Development MCU with a Pinecil v2 leaning on it" class="inline-40 left" >}}
|
|
||||||
|
|
||||||
By popular demand, I'm writing a blog post about the Pinecil, how to flash the
|
By popular demand, I'm writing a blog post about the Pinecil, how to flash the
|
||||||
latest firmware, and then what you can (currently) do with bidirectional
|
latest firmware, and then what you can (currently) do with bidirectional
|
||||||
communication to your soldering iron.
|
communication to your soldering iron.
|
||||||
</p>
|
|
||||||
|
|
||||||
We'll also go over two Pinecil community projects offering in-browser
|
We'll also go over two Pinecil community projects offering in-browser
|
||||||
experiences (PineSam and Joric's 'Pinecil'), and lastly some instructions on
|
experiences (PineSam and Joric's 'Pinecil'), and lastly some instructions on
|
||||||
@@ -79,8 +74,6 @@ and development on the BLE stack on the main tree in the last few months and the
|
|||||||
developers have been making sure the BLE features are ready before they are
|
developers have been making sure the BLE features are ready before they are
|
||||||
released to a much larger audience.
|
released to a much larger audience.
|
||||||
|
|
||||||
{{< figure src="blisp-flash.png" alt="Flashing the Pinecilv2 with blisp CLI" class="" >}}
|
|
||||||
|
|
||||||
Once v2.21 is released, binaries can be retrieved from the
|
Once v2.21 is released, binaries can be retrieved from the
|
||||||
[IronOS Releases](https://github.com/Ralim/IronOS/releases) page.
|
[IronOS Releases](https://github.com/Ralim/IronOS/releases) page.
|
||||||
|
|
||||||
@@ -90,7 +83,7 @@ These steps assume you have a compiled version of `blisp` in your system path,
|
|||||||
either by installing from my COPR, or compiling on your own using the
|
either by installing from my COPR, or compiling on your own using the
|
||||||
instructions in the repository.
|
instructions in the repository.
|
||||||
|
|
||||||
1. Find the latest sucessful actions run on the ironos repo
|
1. Find the latest sucessful actions run on the blisp repo
|
||||||
[here](https://github.com/Ralim/IronOS/actions/workflows/push.yml?query=branch%3Adev+event%3Apush).
|
[here](https://github.com/Ralim/IronOS/actions/workflows/push.yml?query=branch%3Adev+event%3Apush).
|
||||||
2. Download the `Pinecilv2_multi-lang` binary for that run, and unzip it
|
2. Download the `Pinecilv2_multi-lang` binary for that run, and unzip it
|
||||||
3. Plug your Pinecil into your computer while holding down the 'Minus' (-)
|
3. Plug your Pinecil into your computer while holding down the 'Minus' (-)
|
||||||
@@ -128,24 +121,23 @@ Pinecil. It's is a Python and Vue-based application that has to have a server
|
|||||||
component running locally--along with a machine that has bluetooth. You can find
|
component running locally--along with a machine that has bluetooth. You can find
|
||||||
the source code for PineSAM on [GitHub](https://github.com/builder555/PineSAM/).
|
the source code for PineSAM on [GitHub](https://github.com/builder555/PineSAM/).
|
||||||
|
|
||||||
{{< figure src="pinesam.png" alt="PineSAM UI" class="inline" >}}
|
< insert pic of PineSAM ui >
|
||||||
|
|
||||||
Another project is a more simple web UI that uses in-browser Bluetooth support
|
Another project is a more simple web UI that uses in-browser Bluetooth support
|
||||||
(currently only really well supported in Chromium/Firefox, and even then it's
|
(currently only really well supported in Chromium/Firefox, and even then it's
|
||||||
not universal or without bugs. This UI shows a nice graph of your Pinecil's
|
not universal or without bugs. This UI shows a nice graph of your Pinecil's
|
||||||
temperature and power supply information, but is limited to devices supporting
|
temperature and power supply information, but is limited to devices supporting
|
||||||
WebBLE, and also is only able to change the set point (temperature) on the
|
WebBLE, and also is unable to change settings on the device. You can also find
|
||||||
device. You can also find the source code for Joric UI on
|
the source code for Joric UI on [GitHub](https://github.com/joric/pinecil).
|
||||||
[GitHub](https://github.com/joric/pinecil).
|
|
||||||
|
|
||||||
{{< figure src="joric-ui.png" alt="Joric's UI" class="inline-60 right" >}}
|
< insert pic of Joric UI>
|
||||||
|
|
||||||
PineSAM allows the user to not only see the live temperature, wattage, and
|
PineSAM allows the user to not only see the live temperature, wattage, and
|
||||||
voltage of their device but change the settings and temperatures at a click.
|
voltage of their device but change the settings and temperatures at a click.
|
||||||
Uniquely, it allows users to set temperature presets for one-click changes
|
Uniquely, it allows users to set temperature presets for one-click changes
|
||||||
between temperatures--for example to switch between leaded and unleaded solder.
|
between temperatures--for example to switch between leaded and unleaded solder.
|
||||||
|
|
||||||
{{< figure src="pinesam-mobile.png" alt="Screenshot of PineSAM UI on Mobile device" class="inline-40 left" >}}
|
< insert pic of PineSAM on Mobile >
|
||||||
|
|
||||||
The PineSAM project is working to integrate a "Work" screen which takes
|
The PineSAM project is working to integrate a "Work" screen which takes
|
||||||
inspiration from Joric's UI. Due to this, it's likely these two projects will
|
inspiration from Joric's UI. Due to this, it's likely these two projects will
|
||||||
@@ -166,8 +158,6 @@ No setup needed! Just browse to
|
|||||||
compatible browser. I've personally tested Firefox and Chromium on Fedora 37,
|
compatible browser. I've personally tested Firefox and Chromium on Fedora 37,
|
||||||
but I know others have got it working on Windows and MacOS, too.
|
but I know others have got it working on Windows and MacOS, too.
|
||||||
|
|
||||||
As with PineSAM, feel free to come to chat for help and support.
|
|
||||||
|
|
||||||
## Home Assistant Setup with ESPHome
|
## Home Assistant Setup with ESPHome
|
||||||
|
|
||||||
If Home Assistant (HASS) is more your speed, read on below. Be warned to get
|
If Home Assistant (HASS) is more your speed, read on below. Be warned to get
|
||||||
@@ -182,8 +172,6 @@ control your ESP8266/ESP32 using just YAML configurations. In this section, I'll
|
|||||||
walk though how to setup an ESP32 with will show you how to create a smart
|
walk though how to setup an ESP32 with will show you how to create a smart
|
||||||
soldering iron using Pinecil with Home Assistant and ESPHome.
|
soldering iron using Pinecil with Home Assistant and ESPHome.
|
||||||
|
|
||||||
{{< figure src="hass-soldering.png" alt="Home Assistant Soldering UI" class="inline" >}}
|
|
||||||
|
|
||||||
To make this work, we'll use an
|
To make this work, we'll use an
|
||||||
[ESPHome configuration file]((https://github.com/TomW1605/esphome_pinecilv2_ble/blob/main/esphome_pinecilv2_ble.yaml))
|
[ESPHome configuration file]((https://github.com/TomW1605/esphome_pinecilv2_ble/blob/main/esphome_pinecilv2_ble.yaml))
|
||||||
put together by Pine64 community member TomW1605. Thank you again, Tom!
|
put together by Pine64 community member TomW1605. Thank you again, Tom!
|
||||||
@@ -191,7 +179,7 @@ put together by Pine64 community member TomW1605. Thank you again, Tom!
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- ESP32 device (Non affiliate link:
|
- ESP32 device (Non affiliate link:
|
||||||
[ESP-WROOM-32 Development MCU on Amazon](https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528))
|
[ESP-WROOM-32 Development MCU on Amazon](https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528)
|
||||||
- Home Assistant already setup
|
- Home Assistant already setup
|
||||||
- ESPHome already setup
|
- ESPHome already setup
|
||||||
|
|
||||||
@@ -206,20 +194,19 @@ put together by Pine64 community member TomW1605. Thank you again, Tom!
|
|||||||
2. Setup an encryption key. This must be a base64-encoded, 32 bit string.
|
2. Setup an encryption key. This must be a base64-encoded, 32 bit string.
|
||||||
- You can create one on the CLI using `openssl rand -base64 32`
|
- You can create one on the CLI using `openssl rand -base64 32`
|
||||||
3. Change OTA password to desired
|
3. Change OTA password to desired
|
||||||
4. Change wifi SSID and password for your network in ESPHome secrets
|
4. Change wifi SSID and password for your network
|
||||||
5. Change wifi access point fallback settings to desired
|
5. Change wifi access point fallback settings to desired
|
||||||
6. **Important** - Change ble_client mac address to your Pinecil's MAC. This
|
6. **Important** - Change ble_client mac address to your Pinecil's MAC. This
|
||||||
can be found in the settings as well as in logs from the above tools
|
can be found in the settings as well as in logs from the above tools
|
||||||
(Joric/PineSAM)
|
(Joric/PineSAM)
|
||||||
{{< figure src="pinecil-esphome.png" alt="Pinecil esp32 configuration example" class="inline" >}}
|
|
||||||
4. Flash the firmware to the ESP32 device
|
4. Flash the firmware to the ESP32 device
|
||||||
5. Add the device to Home Assistant
|
5. Add the device to Home Assistant
|
||||||
6. Create a Home Assistant dashboard to control and monitor your smart soldering
|
6. Create a Home Assistant dashboard to control and monitor your smart soldering
|
||||||
iron.
|
iron.
|
||||||
- An example dashboard can be found at
|
- An example dashboard can be found at
|
||||||
https://gist.github.com/NeilHanlon/83d6e2cdc6eb83cb205b617f80c2a7c3
|
https://gist.github.com/NeilHanlon/83d6e2cdc6eb83cb205b617f80c2a7c3
|
||||||
- It uses the 'mini-graph-card' and 'auto-entities' integrations from HACS
|
|
||||||
{{< gist neilhanlon 83d6e2cdc6eb83cb205b617f80c2a7c3 >}}
|
< insert pic of dashboard >
|
||||||
|
|
||||||
Now that you've got that setup, you should start to see data coming in about
|
Now that you've got that setup, you should start to see data coming in about
|
||||||
your Pinecil's settings! Go on and automate thy solder.
|
your Pinecil's settings! Go on and automate thy solder.
|
||||||
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 181 KiB |
@@ -28,8 +28,3 @@ git add -A
|
|||||||
git commit -m "Deployment at $(date -u -Is)"
|
git commit -m "Deployment at $(date -u -Is)"
|
||||||
git remote add origin $REMOTE
|
git remote add origin $REMOTE
|
||||||
git push -f origin pages
|
git push -f origin pages
|
||||||
|
|
||||||
curl -X POST --fail \
|
|
||||||
-F token=$GITLAB_DEPLOY_TOKEN \
|
|
||||||
-F ref=main \
|
|
||||||
https://gitlab.com/api/v4/projects/29559707/trigger/pipeline
|
|
||||||