@@ -1,20 +1,58 @@
|
||||
# pico-thermo
|
||||
|
||||

|
||||

|
||||
|
||||
MicroPython app to read data from BME280 sensor and send it to Home Assistant
|
||||
A [MicroPython](https://micropython.org/) app to read data from BME280 sensor and send it to Home Assistant.
|
||||
|
||||
## Running
|
||||
## Hardware
|
||||
|
||||
Flash your Raspberry Pi Pico with MicroPython.
|
||||
The following hardware is what I used for a deployment:
|
||||
|
||||
Copy `config.example.py` to `config.py` and edit the settings to match your environment.
|
||||
* 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
|
||||
|
||||
Copy `main.py` and `config.py` to the root of the filesystem on the Pico.
|
||||
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.
|
||||
|
||||
Connect the BME280 sensor to your Pico and power on.
|
||||
Support for other hardware types may come in the future, but if there's a specific sensor or board you're interested in, please submit an issue or pull request!
|
||||
|
||||
Head on to your Home Assistant instance and enjoy!
|
||||
### 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
|
||||
|
||||
These are not necessary to run the app, but can be useful for testing and/or flashing several nodes.
|
||||
|
||||
## Software Deployment
|
||||
|
||||
### Requirements
|
||||
|
||||
* [MicroPython](https://micropython.org/download/) - MicroPython downloads
|
||||
* [mpremote](https://docs.micropython.org/en/latest/reference/mpremote.html) - MicroPython remote serial tool
|
||||
* (Linux users) Your user should be a part of the `dialout` group
|
||||
|
||||
### Steps
|
||||
|
||||
1. Connect your BME280 sensor and SSD1306 display to your Pico.
|
||||
1. You *may* need a breadboard for this, else you can use splitters.
|
||||
2. Connect your Pico to your PC via a micro-USB to USB type-A cable.
|
||||
3. [Flash your Raspberry Pi Pico with MicroPython](https://docs.micropython.org/en/latest/rp2/tutorial/reset.html).
|
||||
1. This has been tested with MicroPython 1.29, but other versions should work.
|
||||
4. Clone this git repository: `git clone https://git.metaunix.net/BitGoblin/pico-time`.
|
||||
5. `cd` into the repo: `cd pico-time`.
|
||||
6. Copy `config.example.py` to `config.py` and edit the settings to match your environment.
|
||||
7. Copy the Python code over to the Pico:
|
||||
1. `mpremote cp main.py :main.py`
|
||||
2. `mpremote cp config.py :config.py`
|
||||
8. Reset the Pico: `mpremote reset`
|
||||
|
||||
If it worked you should see the display show a message about connecting to WiFi, then eventually a readout of the current temperature to the SSD1306 display. If it failed, you can monitor the app via `mpremote repl` or using an IDE like [Thonny](https://thonny.org/).
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user