54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# Pico Weather
|
|
|
|

|
|

|
|
|
|
Raspberry Pi Pico app to read BME280 sensor data and send it to Home Assistant.
|
|
|
|
Made in Go with [TinyGo](https://tinygo.org/).
|
|
|
|
## Hardware
|
|
|
|
The following hardware is what I used for a deployment:
|
|
|
|
* Raspberry Pi Pico 2 W: https://www.amazon.com/dp/B0DRJXPPWL
|
|
* The **W** is VERY important, as without networking it can't reach Home Assistant!
|
|
* Also a Raspberry Pi Pico W *should* work too, but I haven't tested it yet
|
|
* Waveshare Bosch BME280 sensor: https://www.amazon.com/dp/B07Q47DFXS
|
|
* Elegoo SSD1306 LCD: https://www.amazon.com/dp/B0FSRQG23K
|
|
|
|
Most (or all?) of these components can be swapped for equivalent components. You just need to make sure the code is compatible with whatever board you choose (not likely), is a genuine BME280 sensor, and an SSD1306 display.
|
|
|
|
Support for other hardware types may come in the future, but if there's a specific sensor or board you're in submit an issue or pull request!
|
|
|
|
### Prototyping
|
|
|
|
To help with debugging/testing deployments, I also used these components:
|
|
|
|
* Elegoo 400-pin Breadboard: https://www.amazon.com/dp/B01EV640I6
|
|
* Freenove Raspberry Pi Pico Breakout Board: https://www.amazon.com/dp/B0BFB53Y2N
|
|
* Elegoo 20cm Jumper Cables 120 count: https://www.amazon.com/dp/B01EV70C78
|
|
|
|
## Software Deployment
|
|
|
|
### Requirements
|
|
|
|
* [TinyGo](https://tinygo.org/getting-started/install/) - TinyGo installation guide
|
|
|
|
### Steps
|
|
|
|
1. Clone this git repository `git clone https://git.metaunix.net/BitGoblin/pico-weather`.
|
|
2. Copy `config.go.example` to `config.go` and modify the values to match your environment.
|
|
3. Hold down the **BOOTSEL** button on your Raspberry Pi Pico 2W.
|
|
4. Plug in your Pico to a USB port on your PC.
|
|
5. Wait 2-3 seconds then release the **BOOTSEL** button.
|
|
6. Flash the program to the Pico: `tinygo flash -target=pico2-w .`.
|
|
a. **Note**: On Pop!_OS I needed to open the file browser and mount the RP2350 partition manually while tinygo was attempting the flash, otherwise it would fail.
|
|
7. Monitor the app: `tinygo monitor`.
|
|
|
|
At this point, you should be able to deploy this. Unplug the Pico, connect your BME280 sensor and power it back on - you should start receiving data in Home Assistant under the name you set with `NodeName`.
|
|
|
|
## License
|
|
|
|
This project is made available under the BSD 3-Clause license.
|