website
BIN
website/assets/logo.png
Normal file
After Width: | Height: | Size: 33 KiB |
@ -1,69 +1,38 @@
|
|||||||
# -- Site Configuration --
|
theme = "blowfish"
|
||||||
# Refer to the theme docs for more details about each of these parameters.
|
|
||||||
# https://blowfish.page/docs/getting-started/
|
|
||||||
|
|
||||||
theme = "blowfish" # UNCOMMENT THIS LINE
|
|
||||||
# baseURL = "https://your_domain.com/"
|
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
|
|
||||||
# pluralizeListTitles = "true" # hugo function useful for non-english languages, find out more in https://gohugo.io/getting-started/configuration/#pluralizelisttitles
|
|
||||||
|
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
summaryLength = 0
|
summaryLength = 0
|
||||||
|
|
||||||
buildDrafts = false
|
buildDrafts = false
|
||||||
buildFuture = false
|
buildFuture = false
|
||||||
|
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
|
baseURL = "https://plantctrl.org/"
|
||||||
# googleAnalytics = "G-XXXXXXXXX"
|
|
||||||
|
|
||||||
[pagination]
|
[pagination]
|
||||||
pagerSize = 100
|
pagerSize = 100
|
||||||
|
|
||||||
[imaging]
|
[imaging]
|
||||||
anchor = 'Center'
|
anchor = "Center"
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tag = "tags"
|
tag = "tags"
|
||||||
category = "categories"
|
category = "categories"
|
||||||
author = "authors"
|
author = "authors"
|
||||||
series = "series"
|
series = "series"
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
changefreq = 'daily'
|
changefreq = "daily"
|
||||||
filename = 'sitemap.xml'
|
filename = "sitemap.xml"
|
||||||
priority = 0.5
|
priority = 0.5
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["HTML", "RSS", "JSON"]
|
home = [ "HTML" ]
|
||||||
|
|
||||||
[related]
|
[related]
|
||||||
threshold = 0
|
threshold = 100
|
||||||
toLower = false
|
toLower = false
|
||||||
|
indices = [ { name = "tags", weight = 100 }, { name = "categories", weight = 100 }, { name = "series", weight = 50 }, { name = "authors", weight = 20 }, { name = "date", weight = 10 }, { applyFilter = false, name = "fragmentrefs", type = "fragments", weight = 10 } ]
|
||||||
|
|
||||||
[[related.indices]]
|
[params]
|
||||||
name = "tags"
|
recentArticles = 2
|
||||||
weight = 100
|
mainSections = ["hardware","software"]
|
||||||
|
|
||||||
[[related.indices]]
|
|
||||||
name = "categories"
|
|
||||||
weight = 100
|
|
||||||
|
|
||||||
[[related.indices]]
|
|
||||||
name = "series"
|
|
||||||
weight = 50
|
|
||||||
|
|
||||||
[[related.indices]]
|
|
||||||
name = "authors"
|
|
||||||
weight = 20
|
|
||||||
|
|
||||||
[[related.indices]]
|
|
||||||
name = "date"
|
|
||||||
weight = 10
|
|
||||||
|
|
||||||
[[related.indices]]
|
|
||||||
applyFilter = false
|
|
||||||
name = 'fragmentrefs'
|
|
||||||
type = 'fragments'
|
|
||||||
weight = 10
|
|
||||||
|
@ -9,9 +9,7 @@ displayName = "EN"
|
|||||||
isoCode = "en"
|
isoCode = "en"
|
||||||
rtl = false
|
rtl = false
|
||||||
dateFormat = "2 January 2006"
|
dateFormat = "2 January 2006"
|
||||||
logo = "example.png"
|
logo = "logo.png"
|
||||||
description = "OpenSource DIY Watering and Monitoring for Plants"
|
description = "OpenSource DIY Watering and Monitoring for Plants"
|
||||||
author = { name = "Empire-Phoenix", image = "author_logo.jpg" }
|
author = { name = "Empire-Phoenix", image = "author_logo.jpg" }
|
||||||
|
secondaryLogo = "logo.png"
|
||||||
[author]
|
|
||||||
image = "author_logo.jpg"
|
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
[[main]]
|
[[main]]
|
||||||
none = "none"
|
none = "none"
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "About"
|
|
||||||
pageRef = "About"
|
|
||||||
identifier = "u4ojocQKbq"
|
|
||||||
weight = 3
|
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Hardware"
|
name = "Hardware"
|
||||||
pageRef = "Hardware"
|
pageRef = "Hardware"
|
||||||
|
@ -19,30 +19,29 @@ layout = "basic"
|
|||||||
showMenu = true
|
showMenu = true
|
||||||
showCopyright = true
|
showCopyright = true
|
||||||
showThemeAttribution = true
|
showThemeAttribution = true
|
||||||
showAppearanceSwitcher = true
|
showAppearanceSwitcher = false
|
||||||
showScrollToTop = true
|
showScrollToTop = true
|
||||||
|
|
||||||
[homepage]
|
[homepage]
|
||||||
layout = "background"
|
layout = "background"
|
||||||
showRecent = true
|
showRecent = true
|
||||||
showRecentItems = 5
|
showRecentItems = "90"
|
||||||
showMoreLink = false
|
|
||||||
showMoreLinkDest = "/posts/"
|
|
||||||
cardView = true
|
cardView = true
|
||||||
cardViewScreenWidth = false
|
cardViewScreenWidth = ""
|
||||||
layoutBackgroundBlur = false
|
layoutBackgroundBlur = false
|
||||||
homepageImage = "IMG_20240907_135042.jpg"
|
homepageImage = "IMG_20240907_135042.jpg"
|
||||||
|
|
||||||
|
|
||||||
[article]
|
[article]
|
||||||
showDate = true
|
showDate = false
|
||||||
showViews = false
|
showViews = false
|
||||||
showLikes = false
|
showLikes = false
|
||||||
showDateOnlyInArticle = false
|
showDateOnlyInArticle = false
|
||||||
showDateUpdated = false
|
showDateUpdated = false
|
||||||
showAuthor = true
|
showAuthor = true
|
||||||
showHero = false
|
showHero = true
|
||||||
layoutBackgroundBlur = true
|
layoutBackgroundBlur = true
|
||||||
layoutBackgroundHeaderSpace = true
|
layoutBackgroundHeaderSpace = false
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showDraftLabel = true
|
showDraftLabel = true
|
||||||
showEdit = false
|
showEdit = false
|
||||||
@ -51,15 +50,17 @@ seriesOpened = false
|
|||||||
showHeadingAnchors = true
|
showHeadingAnchors = true
|
||||||
showPagination = true
|
showPagination = true
|
||||||
invertPagination = false
|
invertPagination = false
|
||||||
showReadingTime = true
|
showReadingTime = false
|
||||||
showTableOfContents = false
|
showTableOfContents = true
|
||||||
showTaxonomies = false
|
showTaxonomies = false
|
||||||
showAuthorsBadges = false
|
showAuthorsBadges = false
|
||||||
showWordCount = true
|
showWordCount = true
|
||||||
showZenMode = false
|
showZenMode = false
|
||||||
|
heroStyle = "background"
|
||||||
|
relatedContentLimit = "99"
|
||||||
|
|
||||||
[list]
|
[list]
|
||||||
showHero = false
|
showHero = true
|
||||||
layoutBackgroundBlur = true
|
layoutBackgroundBlur = true
|
||||||
layoutBackgroundHeaderSpace = true
|
layoutBackgroundHeaderSpace = true
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
@ -73,18 +74,20 @@ groupByYear = true
|
|||||||
cardView = false
|
cardView = false
|
||||||
cardViewScreenWidth = false
|
cardViewScreenWidth = false
|
||||||
constrainItemsWidth = false
|
constrainItemsWidth = false
|
||||||
|
heroStyle = "background"
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
excludedKinds = [ "taxonomy", "term" ]
|
excludedKinds = [ "taxonomy", "term" ]
|
||||||
|
|
||||||
[taxonomy]
|
[taxonomy]
|
||||||
showTermCount = true
|
showTermCount = false
|
||||||
showHero = ""
|
showHero = ""
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showViews = false
|
showViews = false
|
||||||
showLikes = false
|
showLikes = false
|
||||||
showTableOfContents = false
|
showTableOfContents = false
|
||||||
cardView = ""
|
cardView = false
|
||||||
|
heroStyle = "background"
|
||||||
|
|
||||||
[term]
|
[term]
|
||||||
showHero = false
|
showHero = false
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
title: "About"
|
|
||||||
date: 2025-01-24
|
|
||||||
draft: false
|
|
||||||
description: "a description"
|
|
||||||
tags: ["example", "tag"]
|
|
||||||
---
|
|
||||||
# Target group:
|
|
||||||
* DIY
|
|
||||||
* OpenSource
|
|
||||||
* Small scale (as in balcony/garden not agriculture)
|
|
||||||
* Automatic Watering for a limited amount of time via a water tank (I do not recommend pipe connection due to flooding risks)
|
|
||||||
* Use as is, or improve as you see fit
|
|
||||||
|
|
||||||
Initial creation story here
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 4.0 MiB |
BIN
website/content/Hardware/1737993448486-RTC/featured.jpg
Normal file
After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 98 KiB |
@ -2,14 +2,23 @@
|
|||||||
title: "RTC"
|
title: "RTC"
|
||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "external rtc"
|
||||||
tags: ["example", "tag"]
|
tags: ["rtc", "eeprom"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# RTC
|
||||||
# This is a heading
|
The board can be connected to a external DS3231 RTC.
|
||||||
## This is a subheading
|
|
||||||
### This is a subsubheading
|
This allows the board to run fully of grid, without any kind of external connection after the initial setup.
|
||||||
#### This is a subsubsubheading
|
|
||||||
This is a paragraph with **bold** and *italic* text.
|
*During initial setup, the time can be synchronized to the RTC via the configmode website.
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
* The used RTC module is supplied with 3.3v from the low power supply if the main battery is connected
|
||||||
undefined
|
* It can also supply the battery via a small lithium cell on the board for several years, in case main power is missing, e.G. during longer dark winter days when running of solar.
|
||||||
|
|
||||||
|
# Backup
|
||||||
|
* The RTC module also usually contains a small eeprom, that can be utilized to store a backup of the configuration. Either to simply be able to revert to a prior setup, or as an additional precaution.
|
||||||
|
* Backups will be stored with a crc16, so should be protected against random bitflips.
|
||||||
|
* The backup is stored agnostic to the platform, as in it just stores bytes and has no understand of it for usual backup recovery procedure. The logic is done in the webclient. This also allows to manually patch older version of the config file if required, eg. due to a failed migration with missing fields.
|
||||||
|
|
||||||
|
## Planned
|
||||||
|
* In case the main config file is damaged, the firmeware should attempt to use the backup file (without replacing the damaged file), and check if this allows a startup
|
||||||
|
* Backup Battery health estimation/ fail indicator
|
||||||
|
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 1.7 MiB |
@ -3,13 +3,37 @@ title: "BatteryManagement"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["battery", "bq34z100"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# BatteryManagment
|
||||||
# This is a heading
|
The project contains an additional companion board, with a bq34z100 battery management ic.
|
||||||
## This is a subheading
|
|
||||||
### This is a subsubheading
|
It allows to track the health and charge for an external battery and is supposed to be soldered directly to the battery.
|
||||||
#### This is a subsubsubheading
|
The main board contains a xt30 connector for power, and additionally a two pin I2C bus next/combined with it, to communicate with the BatteryManagement.
|
||||||
This is a paragraph with **bold** and *italic* text.
|
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
# Setup
|
||||||
undefined
|
{{< alert >}}
|
||||||
|
A protected Battery is required. There is only a very simplistic output voltage adjustment for the MPPT system and no charge termination. It is expected that the battery itself protects against overcharging and deep discharges!
|
||||||
|
{{< /alert >}}
|
||||||
|
* BatteryManagement is purely optional, but recommended for solar power.
|
||||||
|
* If available it will be used for an extended low power deep sleep in case of critical charge.
|
||||||
|
* If available it will also be used, to reduce the nightlight, if the charge drops to a predefined level, so the nightlight cannot drain to much battery
|
||||||
|
* If available, all relevant battery metrics will be published via mqtt
|
||||||
|
|
||||||
|
Currently the setup requires a custom Ev2400 flasher and the properitary windows software from texas instruments.
|
||||||
|
{{< alert >}}
|
||||||
|
Before soldering to the battery
|
||||||
|
{{< /alert >}}
|
||||||
|
1. The voltage devider high side must be bridged, while being connected to the computer and being supplied with around 4.2 V from the battery solder leads.
|
||||||
|
2. Then the data/register for low voltage flash write protection should be set to 0V, as else with the voltage divider and no further configuration, the IC will refuse all write requests.
|
||||||
|
3. After this the supplied golden image can be used, it will setup the battery for 6Ah and a 4S lifepo. Different values can be adjusted after this to the users liking.
|
||||||
|
{{< alert >}}
|
||||||
|
The main board, does not care or process any of the charge discharge limits that can be set. Ensure that the battery can supply enough current as well as accept a 2A charging current from the MPPT system.
|
||||||
|
{{< /alert >}}
|
||||||
|
|
||||||
|
The golden image sets the statups led up, to be in blinky mode. one very long interval means, that the battery is pretty much full. A few very short flashes mean that the battery is nearly empty. No light means, that the battery is in discharge protection and shut down.
|
||||||
|
|
||||||
|
If the red error led lights, something is wrong with the battery. This can be abnormal voltages or a very low health state.
|
||||||
|
|
||||||
|
# Todo?
|
||||||
|
If the battery reports that no discharging should occure, report this and then shutdown without using pumps
|
BIN
website/content/Hardware/1737993469847-MPPT/featured.jpg
Normal file
After Width: | Height: | Size: 818 KiB |
Before Width: | Height: | Size: 98 KiB |
@ -3,13 +3,24 @@ title: "MPPT"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["MPPT", "solar"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# MPPT
|
||||||
# This is a heading
|
If the board is powered by solar, a on board MPPT converter tries to track the best current and voltage, so that the battery gets maximized charging current.
|
||||||
## This is a subheading
|
|
||||||
### This is a subsubheading
|
The currently used MPPT limits max current to 2A.
|
||||||
#### This is a subsubsubheading
|
|
||||||
This is a paragraph with **bold** and *italic* text.
|
There are two adjustable values for the MPPT, Input Power Point and Output Voltage.
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
|
||||||
undefined
|
#Setup
|
||||||
|
{{< alert >}}
|
||||||
|
Note: Only protected Batteries are supported!
|
||||||
|
{{< /alert >}}
|
||||||
|
1. Supply the Ext Charge connector with 20V and a limited current (suggested 100mA).
|
||||||
|
2. If the board does not startup, adjust the MPPT untill it supplies a output voltage. Note: The ESP should be able to startup at any settable output voltage, as it uses a converter to 3.3v anyways.
|
||||||
|
3. Adjust the Output Voltage to the correct charging voltage for your Chosen Battery.
|
||||||
|
4. Connect a sink (or the a non fully charged battery) to the Output, now adjust the MPPT so, that the Input Voltage drops to the optimal working Voltage of your Solar panel. The Converter will try to always keep the Panel at this Voltage by adjusting the Output Current accordingly.
|
||||||
|
|
||||||
|
|
||||||
|
Setting the MPPT slightly lower than the suggested Voltage will ensure more reliable operation, as the optimal voltage might drop a bit due to ageing and dust on the panel. Normally during summer there is more than enough power, so a slight inefficentcy won't be noticable.
|
||||||
|
However during winter in low light and bad weather conditions, that might be the difference between charging at all or no power. (If the panel does not reach the MPPT voltage, there is no charging current)
|
||||||
|
BIN
website/content/Hardware/1737993479095-NightLight/featured.jpg
Normal file
After Width: | Height: | Size: 404 KiB |
Before Width: | Height: | Size: 98 KiB |
@ -3,13 +3,13 @@ title: "NightLight"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["nightlight"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# Nightlight
|
||||||
# This is a heading
|
The board has a adjustable light output, which can be used to power a small led strip.
|
||||||
## This is a subheading
|
In the configuration, the working hours can be set, as well as if the light is allowed to be turned on, even if the solar panel still supplies power.
|
||||||
### This is a subsubheading
|
The supply should theoretically be able to supply up to 2A with a voltage lower than the battery.
|
||||||
#### This is a subsubsubheading
|
|
||||||
This is a paragraph with **bold** and *italic* text.
|
{{< alert >}}
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
Ensure the voltage is correctly set, before connecting a load the first time!
|
||||||
undefined
|
{{< /alert >}}
|
Before Width: | Height: | Size: 98 KiB |
@ -3,13 +3,58 @@ title: "Sensors&Pumps"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["sensor"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# Sensors
|
||||||
# This is a heading
|
The board can address up to 16 sensors, with an A und B sensor per plant.
|
||||||
## This is a subheading
|
The A sensor is always used, the B sensor is optional and use is suggested for larger planters.
|
||||||
### This is a subsubheading
|
|
||||||
#### This is a subsubsubheading
|
The sensor itself are just two spikes with a defined distance. They can be bought readymade or simply be done DIY with two long nails (use galvanized or non rusting ones)
|
||||||
This is a paragraph with **bold** and *italic* text.
|
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
The Sensor is switched via multiplexer chips to a 555 oscilator circuit that uses he the earths resistance for charging and discharging a small capacitor. The ESP simply counts how often the charge pulse was seen.
|
||||||
undefined
|
While this sensor can be easily influenced since it runs in lower uA - mA range, due to the frequencys of several khz for normal moist plants, it is still very resistant, eg a 50hz failure signal from a nearbly power circuit would barely be registered.
|
||||||
|
Since the Sensor is changing polarity between charging and discharging, corrosion due to organic battery effects is minimized, also it prevents errors due having build a battery (You can easily charge a planter to several V if you do not change polarity).
|
||||||
|
|
||||||
|
# Pumps
|
||||||
|
The board contains 8 low side switched pump outputs. The pumps are running directly from the battery without further voltage conversion, so ensure that the can survive the full voltage range of the battery.
|
||||||
|
Each output can supply up to 3A continously.
|
||||||
|
The board will never switch more than one output concurrently, so there is no need to size the battery for higher maximum load.
|
||||||
|
An additinal extra out exists, that is switched, when any of the pump outputs is supposed to run.
|
||||||
|
|
||||||
|
This allows for multiple possible setups
|
||||||
|
## Layout Central Pump
|
||||||
|
One central pump is connected to the extra output, and multiple magnetic valves are used for the different plants
|
||||||
|
## Multi Gravity Feed Valves
|
||||||
|
Per plant a Valve that can close against pressure is used, no pump exists
|
||||||
|
## Multi Pump Setup
|
||||||
|
Multiple smaller cheaper pumps with no shared hoses, so that failures will only affect a single planter.
|
||||||
|
|
||||||
|
In any case I suggest to use a Water Filter on the Intake, as else you will get severe algae problems.
|
||||||
|
|
||||||
|
In my personal opinion small membrane pumps are a really good fit
|
||||||
|
* can be housed outside the tank
|
||||||
|
* require less maintance/cleaning
|
||||||
|
* are able to pump smaller impurities without issues.
|
||||||
|
* Can pull water 1-2meters
|
||||||
|
* Have higher output pressure -> Will blow out blockages in hoses
|
||||||
|
However
|
||||||
|
* are louder
|
||||||
|
* pump less volume per time and energy
|
||||||
|
|
||||||
|
{{< alert >}}
|
||||||
|
DO NOT DIRECTLY CONNECT TO WATER MAINS, YOU HAVE BEEN WARNED!
|
||||||
|
|
||||||
|
Software and Hardware may fail: It is your responsibility to ensure that a stuck valve or short circuit mosfet will not cause flooding and property destruction, for example by limiting the water tank to size that can drain.
|
||||||
|
{{< /alert >}}
|
||||||
|
|
||||||
|
|
||||||
|
# Todo
|
||||||
|
## Flow Sensor
|
||||||
|
There is a input for a flow sensor, currently it is not used as the software is missing.
|
||||||
|
* Allow monitoring if pumps are actually moving water
|
||||||
|
* Allow to set limits for how much ml are allowed additinally to the current time limit per watering run
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Currently it cannot be set how two sensor should be interpreted and they are only averaged. More complex functions would be nice here, eg. allowing a user settable interpolation (0.8*a+0.2*b)/2 and Min(a,b) as well as max(a,b)
|
||||||
|
|
||||||
|
@ -24,8 +24,7 @@ tags: ["esp32", "hardware"]
|
|||||||
* Embedded Solar MPPT Charger
|
* Embedded Solar MPPT Charger
|
||||||
* Can also be used with a power supply
|
* Can also be used with a power supply
|
||||||
|
|
||||||
kicad links
|
## Made with:
|
||||||
|
<a href="https://www.kicad.org/">
|
||||||
link to current stl for case here
|
<img class="lazy" src="kicad_logo_small.png" alt="Image">
|
||||||
|
</a>
|
||||||
image carrousel of diffferent builds here?
|
|
||||||
|
BIN
website/content/Hardware/featured.jpg
Normal file
After Width: | Height: | Size: 6.5 MiB |
BIN
website/content/Hardware/kicad_logo_small.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
@ -3,13 +3,26 @@ title: "Firmware Upload"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["firmeware", "upload"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# Prebuild
|
||||||
# This is a heading
|
1. Download image from
|
||||||
## This is a subheading
|
2. todo something espflash tool here
|
||||||
### This is a subsubheading
|
|
||||||
#### This is a subsubsubheading
|
# From source
|
||||||
This is a paragraph with **bold** and *italic* text.
|
## Preconditions
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
* rustup with current version
|
||||||
undefined
|
* espup with current version
|
||||||
|
* npm /npx
|
||||||
|
* Connect the board via usb to the computer
|
||||||
|
* Ensure the esp is running (eg not in deepsleep if prior version was installed)
|
||||||
|
# Compiling and uploading
|
||||||
|
1. Clone the gitea
|
||||||
|
2. go to the rust/src_webroot
|
||||||
|
3. npm -i
|
||||||
|
4. cd ..
|
||||||
|
5. cargo run
|
||||||
|
|
||||||
|
Depending on the setup of the cargo runner, either a OTA image is build or the firmware is directly flashed to the esp.
|
||||||
|
|
||||||
|
Note: If the bootloader is currently booting from ota_2, flashing ota_1 via usb will not make it switch. You might need to manually erase it in this case prior.
|
||||||
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 247 KiB |
@ -3,13 +3,27 @@ title: "ConfigMode"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["config", "wifi"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# Initial
|
||||||
# This is a heading
|
If the config file is missing, or invalid the Emergency Rescue mode is started
|
||||||
## This is a subheading
|
In this case multiple Fault LEDS will be flashing and the esp will open an AccessPoint.
|
||||||
### This is a subsubheading
|
Connect to the AccessPoint and browse to http://192.168.71.1 to set it up
|
||||||
#### This is a subsubsubheading
|
|
||||||
This is a paragraph with **bold** and *italic* text.
|
# During normal operation
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
1. Press the boot button untill the ESP shows that it is active.
|
||||||
undefined
|
2. The General fault LED will flash, keep pressing the button untill it stops
|
||||||
|
3. The ESP will now try to connect to a WIFI station if configured and start the webserver, if the connection to the station cannot be made, it will open an AccessPoint instead.
|
||||||
|
|
||||||
|
# MQTT
|
||||||
|
It is possible to use the topic /stay/alive to enter the config mode.
|
||||||
|
|
||||||
|
If this topic contains a retained message with the value true, the ESP will enter ConfigMode during it's next cycle and stay there.
|
||||||
|
|
||||||
|
Note: You must set /stay/alive to retained false again after this, otherwise it will always enter configmode, even if you exist it via the webui.
|
||||||
|
|
||||||
|
# USB reboot
|
||||||
|
By connecting to the USB Terminal via a Serial Monitor, the ESP is reset and will enter configmode as if the button for normal operation was pressed
|
||||||
|
|
||||||
|
# Reboot
|
||||||
|
When pressing reboot in configmode website, the esp will restart into the configmode newly saved settings. To exit configmode the exit button must be used.
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 165 KiB |
@ -3,13 +3,25 @@ title: "MQTT"
|
|||||||
date: 2025-01-27
|
date: 2025-01-27
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "a description"
|
||||||
tags: ["example", "tag"]
|
tags: ["mqtt", "esp"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
# MQTT
|
||||||
# This is a heading
|
An Mqtt server can be configured and will be used to dump all kinds of statistical data.
|
||||||
## This is a subheading
|
|
||||||
### This is a subsubheading
|
|Topic|Example|Description|
|
||||||
#### This is a subsubsubheading
|
|/firmware/address|
|
||||||
This is a paragraph with **bold** and *italic* text.
|
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
| Topic | Example | Description |
|
||||||
undefined
|
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
|
||||||
|
| firmware/address | 192.168.1.2 | The Ip address in station mode |
|
||||||
|
| firmware/githash | feature/esp32c6@1ce4d74a | The branch and hash during build time |
|
||||||
|
| firmware/buildtime | 2025-01-21T20:56:18.168163570Z | Compile time |
|
||||||
|
| firmware/last_online | 2025-01-22T08:56:46.664+01:00 | Last time this board was online |
|
||||||
|
| firmware/ota_state | Partition state is ESP_OTA_IMG_VALID | The OTA state, relevant for rollback |
|
||||||
|
| firmware/partition_address | 0x10000 | The OTA partition used, 0x10000 is ota_1 |
|
||||||
|
| state | online | Current State, expected are online or sleep |
|
||||||
|
| battery | {<br/>"voltage_milli_volt":"12860",<br/>"current_milli_ampere":"-16",<br/>"cycle_count":"12",<br/>"design_milli_ampere":"6000",<br/>"remaining_milli_ampere":"806",<br/>"state_of_charge":"15",<br/>"state_of_health":"93",<br/>"temperature":"2957"<br/>} | Dump of battery data |
|
||||||
|
| water | {<br/>"enough_water":true,<br/>"warn_level":false,<br/>"left_ml":1337,<br/>"sensor_error":false,<br/>"raw":0,"water_frozen":<br/>"tank sensor error"<br/>} | Water Status dump |
|
||||||
|
| plant1 | {<br/>"a":"disabled",<br/>"a_raw":"0",<br/>"b":"disabled",<br/>"b_raw":"0",<br/>"mode":"OFF",<br/>"consecutive_pump_count":0,<br/>"dry":false,<br/>"active":false,<br/>"pump_error":false,<br/>"not_effective":false,<br/>"cooldown":false,<br/>"out_of_work_hour":false,<br/>"last_pump":"N/A",<br/>"next_pump":"N/A"<br/>} | Plant status dump |
|
||||||
|
| light | {<br/>"active":false,<br/>"out_of_work_hour":true,<br/>"battery_low":true,<br/>"is_day":false<br/>} | Light status dump |
|
||||||
|
| deepsleep | night 1h | Why and how long the ESP will sleep |
|
@ -2,14 +2,13 @@
|
|||||||
title: "Software"
|
title: "Software"
|
||||||
date: 2025-01-24
|
date: 2025-01-24
|
||||||
draft: false
|
draft: false
|
||||||
description: "a description"
|
description: "Information about the Firmware"
|
||||||
tags: ["example", "tag"]
|
tags: ["software"]
|
||||||
---
|
---
|
||||||
an example to get you started
|
* esp-idf-hal based rust project
|
||||||
# This is a heading
|
* can be run standalon or with wifi
|
||||||
## This is a subheading
|
* MQTT
|
||||||
### This is a subsubheading
|
* SNTP to sync the RTC/Clock
|
||||||
#### This is a subsubsubheading
|
* Abitrary file upload and download into SPIFS volume
|
||||||
This is a paragraph with **bold** and *italic* text.
|
* Flash Battery Controller from file in Flash
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
* Flash Firmware via OTA directly from website
|
||||||
undefined
|
|
||||||
|
BIN
website/content/Software/featured.jpg
Normal file
After Width: | Height: | Size: 6.5 MiB |
27
website/content/_index.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
title: "Software"
|
||||||
|
date: 2025-01-24
|
||||||
|
draft: false
|
||||||
|
description: "Information about the Firmware"
|
||||||
|
tags: ["software"]
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
Initial creation story here
|
||||||
|
|
||||||
|
|
||||||
|
<div align="left">
|
||||||
|
|
||||||
|
## Target group:
|
||||||
|
* DIY
|
||||||
|
* OpenSource
|
||||||
|
* Small scale (as in balcony/garden not agriculture)
|
||||||
|
* Automatic Watering for a limited amount of time via a water tank (I do not recommend pipe connection due to flooding risks)
|
||||||
|
* Use as is, or improve as you see fit
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[Hardware]({{< relref "/hardware" >}})
|
||||||
|
|
||||||
|
[Software]({{< relref "/software" >}})
|
||||||
|
|
||||||
|
{{< article link="/hardware/" >}}
|
Before Width: | Height: | Size: 98 KiB |
@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
title: "initial"
|
|
||||||
date: 2025-01-24
|
|
||||||
draft: false
|
|
||||||
description: "a description"
|
|
||||||
tags: ["example", "tag"]
|
|
||||||
---
|
|
||||||
an example to get you started
|
|
||||||
# This is a heading
|
|
||||||
## This is a subheading
|
|
||||||
### This is a subsubheading
|
|
||||||
#### This is a subsubsubheading
|
|
||||||
This is a paragraph with **bold** and *italic* text.
|
|
||||||
Check more at [Blowfish documentation](https://blowfish.page/)
|
|
||||||
undefined
|
|
BIN
website/static/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
website/static/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 157 KiB |
BIN
website/static/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
website/static/favicon-16x16.png
Normal file
After Width: | Height: | Size: 733 B |
BIN
website/static/favicon-32x32.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
website/static/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
1
website/static/site.webmanifest
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|