Skip to content

Commit

Permalink
added example solar node instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
valzzu committed May 30, 2024
1 parent 632687f commit 3b1e645
Show file tree
Hide file tree
Showing 15 changed files with 344 additions and 13 deletions.
3 changes: 3 additions & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@
- Aloitus
- [Päivitys](laite_päivitys.md)
- [Konfiguraatio](laite_konfiguraatio.md)

- Radio rakennus
- [Aurinkopaneeli radio](aurinkopaneeli_radio.md)
Binary file added docs/assets/favicon/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/favicon/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/favicon/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/favicon/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/favicon/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/favicon/favicon.ico
Binary file not shown.
Binary file added docs/assets/keskustelu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/schema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
108 changes: 108 additions & 0 deletions docs/aurinkopaneeli_radio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Aurinkopaneeli Radio Tietoa

## Valmiit ja DIY Radiot

### Valmis Radio

- **WisBlock Meshtastic Starter Kit:** [Linkki tuotteeseen](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit?variant=43683420438726)
- Tämä valmis radio on helppokäyttöinen ratkaisu, joka sisältää kaikki tarvittavat komponentit Meshtastic-verkkojen luomiseen ja hallintaan. Se on erityisesti suunniteltu helpottamaan aloitusta ja tarjoaa luotettavan suorituskyvyn ilman tarvetta lisärakennustöille.

### DIY Radio Materiaalit

- **Micro Controller:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005006271779544.html?spm=a2g0o.cart.0.0.794538daCS7oNX&mp=1)
- Tämä mikrokontrolleri toimii radion aivoina, mahdollistaen laitteen ohjelmoinnin ja hallinnan.
- **LoRa Module:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005003087292795.html?spm=a2g0o.detail.0.0.7f94VDNPVDNPup&mp=1)
- Tämä LoRa-moduuli tarjoaa pitkäkantaisen ja vähävirtaisen tiedonsiirron, joka on ihanteellinen Meshtastic-radion rakentamiseen.

## Tarvikkeet ja Linkit

### Aurinkopaneeli

- **Aurinkopaneeli (Max 5.5V):** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005004689060279.html)
- Tämä aurinkopaneeli soveltuu pienten elektronisten laitteiden, kuten radion, virtalähteeksi. Sen maksimijännite on 5.5V, mikä tekee siitä turvallisen ja tehokkaan ratkaisun aurinkovoimalla toimiville projekteille.

### Sulakkeet

- **Lämpösulake (80°C - 90°C thermal fuse):** [Linkki tuotteeseen](https://www.aliexpress.com/item/4000583221153.html)
- Lämpösulake suojaa laitteistoa ylikuumenemiselta katkaisemalla virtapiirin, jos lämpötila ylittää turvallisen rajan.
- **Palautuva sulake (70°C - 75°C thermal cutoff):** [Linkki tuotteeseen](https://www.aliexpress.com/item/32893056909.html)
- Palautuva sulake tarjoaa suojaa ylikuumenemiselta ja palautuu automaattisesti, kun lämpötila laskee turvalliselle tasolle.

### Tuuletusaukko

- **Hydrofobinen tuuletusaukko:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005006482403642.html)
- Tuuletusaukko estää kosteuden pääsyn laitteistoon, mutta sallii ilman kiertämisen, mikä auttaa lämmönhallinnassa.

### Kuivaimet

- **Silika geeli pusseja:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005006191138911.html)
- Silika geelipussit imevät kosteutta, mikä auttaa pitämään laitteiston kuivana ja estää kosteuden aiheuttamat vahingot.

### Suojat

- **Joka kennolle suoja (1s 1.5A):** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005006767554992.html)
- Kennokohtaiset suojat estävät yksittäisten kennojen ylikuormittumisen ja suojaavat niitä vaurioilta.

### Akkujen Pitimet

- **18650 pidin:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005004221055140.html)
- 18650-akkukennot ovat yleisesti käytettyjä ja helposti saatavilla, ja näille kennoille tarkoitettu pidin helpottaa niiden turvallista käyttöä.
- **21700 pidin:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005003204083647.html)
- 21700-akkukennot tarjoavat suuremman kapasiteetin ja virran, ja näille kennoille tarkoitettu pidin varmistaa niiden turvallisen ja tehokkaan käytön.

### Hitsaus

- **Piste hitsi:** [Linkki tuotteeseen](https://www.aliexpress.com/item/1005005928173134.html)
- Pistehitsaus on suositeltava menetelmä akkujen yhdistämiseen, koska se minimoi akkujen vaurioitumisriskin ja varmistaa luotettavan liitoksen.

### Akut

- **21700 akku:** [Linkki tuotteeseen](https://akkula.fi/tuote/molicel-inr21700-p42a-li-ion-akkukenno-36v-4200-mah-30a-ei-suojapiiria-flat-top/)
- Molicel INR21700 P42A on korkean suorituskyvyn litiumioniakku, joka tarjoaa suuren kapasiteetin (4200 mAh) ja korkean virranantokyvyn (30A).
- **18650 akku:** [Linkki tuotteeseen](https://akkula.fi/tuote/lg-hj2/)
- LG HJ2 on luotettava 18650-akku, joka tarjoaa hyvän kapasiteetin (3000 mAh) ja vakaan suorituskyvyn.

## Akkujen Suojaus

Akkujen suojaus on tärkeää niiden turvallisen käytön varmistamiseksi. Tässä muutamia vinkkejä ja suosituksia akkujen suojaamiseen:

### Sulakkeiden Asennus

Sulakkeet ovat tärkeitä akkujen suojaamisessa ylikuormitukselta ja ylikuumenemiselta. Sulakkeiden asennus riippuu akkujen lukumäärästä ja niiden käyttötarkoituksesta.

- **Lämpösulake:** Lämpösulake tulisi asentaa jonnekin akun läheisyyteen varmistamaan, että se reagoi nopeasti, jos akku ylikuumenee. Asennuspaikan valinta voi vaihdella, mutta tärkeää on varmistaa, että sulake on helposti saatavilla ja että se voi nopeasti katkaista virran akusta ylikuumenemistilanteessa.

- **Palautuva sulake:** Palautuva sulake, tai termisen katkaisijan, määrä riippuu akkujen lukumäärästä ja niiden ympäristöstä. Yleinen suositus on asentaa yksi sulake jokaista kahden akun ryhmää kohti, varmistaen että akkuja ei ladata jos ne ovat liian kuumat.

Muista tarkistaa akkujen valmistajan suositukset ja noudattaa turvallisuusohjeita sulakkeiden asennuksessa ja käytössä.

## Ohjeet ja Suositukset

### Sulakkeiden Valinta

Sulakkeiden arvot riippuvat täysin käytetyistä akuista, ja arvot on hyvä tarkistaa akun tiedoista. Yleisesti ottaen, sulakkeen koko kannattaa valita hieman suuremmaksi kuin akun maksimi kapasiteetti, mutta ei liian suureksi. Sulake voi myös olla alle akun maksimin, jos halutaan lisäsuojaa.

### Akun Yhdistäminen

Akun liittämisessä on suositeltavaa välttää akkujen suoraa tinaamista toisiinsa. Sen sijaan kannattaa käyttää pistehitsausmenetelmää tai kennoille tarkoitettuja koteloita, joissa on kontaktit. Tämä vähentää riskiä vaurioittaa akkuja ja parantaa turvallisuutta.

### Akkujen Käsittely ja Ylläpito

- **Säilytys:** Akut tulee säilyttää kuivassa ja viileässä paikassa. Vältä suoraa auringonvaloa ja korkeita lämpötiloja.
- **Lataaminen:** Käytä vain akkuihin sopivia latureita. Vältä ylilatausta ja tarkkaile akun lämpötilaa latauksen aikana.
- **Käyttö:** Vältä akun täydellistä purkamista, sillä se voi lyhentää akun elinikää. Pidä akkujen jännitetaso hallinnassa säännöllisillä tarkastuksilla.

### Yhteenveto

Tässä dokumentissa on esitetty olennaisia tietoja ja suosituksia aurinkopaneelipohjaisen radion rakentamiseen liittyen. Linkitetyt tuotteet ja ohjeet auttavat varmistamaan laitteiston turvallisuuden ja tehokkuuden. On tärkeää noudattaa annettuja ohjeita ja valita komponentit huolellisesti projektin onnistumiseksi.

### Lisätietoja

[Meshtastic keskustelu](https://discord.com/channels/867578229534359593/970723761013800970/1241813046360408174)

Kuvassa mainitty [BMS](https://www.etsy.com/fi-en/listing/1609406536/mppt-solar-battery-charger-and-regulator)

<img src="./assets/keskustelu.png" alt="Keskustelu" width="1250">
<img src="./assets/schema.png" alt="Esimerkki kytkentä" width="800">

Lisäkuvien avulla voit saada lisää tietoa ja selkeyttää projektin rakennetta ja komponenttien asettelua.
4 changes: 4 additions & 0 deletions docs/en/_sidebar.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
- [Introduction](en/)

- Getting Started

- [Configuration](en/device_configuration.md)

- Node Building
- [Solar Node](en/solar_node.md)
108 changes: 108 additions & 0 deletions docs/en/solar_node.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Solar Panel Radio Information

## Ready-made and DIY Radios

### Ready-made Radio

- **WisBlock Meshtastic Starter Kit:** [Product Link](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit?variant=43683420438726)
- This ready-made radio is an easy-to-use solution that includes all the necessary components for creating and managing Meshtastic networks. It is specifically designed to simplify setup and offers reliable performance without the need for additional construction.

### DIY Radio Materials

- **Micro Controller:** [Product Link](https://www.aliexpress.com/item/1005006271779544.html?spm=a2g0o.cart.0.0.794538daCS7oNX&mp=1)
- This microcontroller acts as the brain of the radio, enabling device programming and management.
- **LoRa Module:** [Product Link](https://www.aliexpress.com/item/1005003087292795.html?spm=a2g0o.detail.0.0.7f94VDNPVDNPup&mp=1)
- This LoRa module provides long-range and low-power data transmission, ideal for building Meshtastic radios.

## Accessories and Links

### Solar Panel

- **Solar Panel (Max 5.5V):** [Product Link](https://www.aliexpress.com/item/1005004689060279.html)
- This solar panel is suitable for powering small electronic devices, such as radios. Its maximum voltage is 5.5V, making it a safe and efficient solution for solar-powered projects.

### Fuses

- **Thermal Fuse (80°C - 90°C thermal fuse):** [Product Link](https://www.aliexpress.com/item/4000583221153.html)
- The thermal fuse protects the hardware from overheating by interrupting the circuit if the temperature exceeds a safe limit.
- **Resettable Fuse (70°C - 75°C thermal cutoff):** [Product Link](https://www.aliexpress.com/item/32893056909.html)
- The resettable fuse provides protection against overheating and automatically resets when the temperature returns to a safe level.

### Ventilation Port

- **Hydrophobic Ventilation Port:** [Product Link](https://www.aliexpress.com/item/1005006482403642.html)
- The ventilation port prevents moisture from entering the hardware while allowing air circulation, aiding in heat management.

### Desiccants

- **Silica Gel Packs:** [Product Link](https://www.aliexpress.com/item/1005006191138911.html)
- Silica gel packs absorb moisture, helping to keep the equipment dry and prevent damage from moisture.

### Protectors

- **Cell Protection (1s 1.5A):** [Product Link](https://www.aliexpress.com/item/1005006767554992.html)
- Cell-specific protectors prevent individual cells from overloading and protect them from damage.

### Battery Holders

- **18650 Holder:** [Product Link](https://www.aliexpress.com/item/1005004221055140.html)
- 18650 battery cells are commonly used and easily available, and a holder designed for these cells facilitates their safe use.
- **21700 Holder:** [Product Link](https://www.aliexpress.com/item/1005003204083647.html)
- 21700 battery cells offer higher capacity and power, and a holder designed for these cells ensures their safe and efficient use.

### Welding

- **Spot Welder:** [Product Link](https://www.aliexpress.com/item/1005005928173134.html)
- Spot welding is a recommended method for connecting batteries, as it minimizes the risk of battery damage and ensures a reliable connection.

### Batteries

- **21700 Battery:** [Product Link](https://akkula.fi/tuote/molicel-inr21700-p42a-li-ion-akkukenno-36v-4200-mah-30a-ei-suojapiiria-flat-top/)
- The Molicel INR21700 P42A is a high-performance lithium-ion battery that offers high capacity (4200 mAh) and high current capability (30A).
- **18650 Battery:** [Product Link](https://akkula.fi/tuote/lg-hj2/)
- The LG HJ2 is a reliable 18650 battery that offers good capacity (3000 mAh) and stable performance.

## Battery Protection

Battery protection is important to ensure their safe use. Here are some tips and recommendations for battery protection:

### Fuse Installation

Fuses are important for protecting batteries from overload and overheating. The installation of fuses depends on the number of batteries and their intended use.

- **Thermal Fuse:** A thermal fuse should be installed somewhere near the battery to ensure that it reacts quickly if the battery overheats. The choice of installation location may vary, but it is important to ensure that the fuse is easily accessible and can quickly cut off the power from the battery in case of overheating.

- **Resettable Fuse:** The number of resettable fuses, or thermal cutoffs, depends on the number of batteries and their environment. A common recommendation is to install one fuse for every two battery groups, ensuring that batteries are not charged if they are too hot.

Remember to check the manufacturer's recommendations for batteries and follow safety instructions for fuse installation and use.

## Instructions and Recommendations

### Fuse Selection

The values of fuses depend entirely on the batteries used, and the values should be checked from the battery specifications. Generally, it is advisable to choose a fuse size slightly larger than the maximum capacity of the battery, but not too large. The fuse can also be smaller than the battery maximum if additional protection is desired.

### Battery Connection

It is recommended to avoid directly soldering batteries together. Instead, consider using spot welding or battery holders designed for cells with contacts. This reduces the risk of damaging batteries and improves safety.

### Battery Handling and Maintenance

- **Storage:** Batteries should be stored in a dry and cool place. Avoid direct sunlight and high temperatures.
- **Charging:** Use only chargers suitable for the batteries. Avoid overcharging and monitor the battery temperature during charging.
- **Usage:** Avoid fully discharging the battery, as it can shorten the battery's lifespan. Keep an eye on the voltage level of batteries with regular checks.

### Summary

This document provides essential information and recommendations for building a solar panel-based radio. The linked products and instructions help ensure the safety and efficiency of the equipment. It is important to follow the provided instructions and carefully select components for the success of the project.

### Additional Information

[Meshtastic discussion](https://discord.com/channels/867578229534359593/970723761013800970/1241813046360408174)

Referenced BMS: [BMS](https://www.etsy.com/fi-en/listing/1609406536/mppt-solar-battery-charger-and-regulator)

<img src="./assets/keskustelu.png" alt="Discussion" width="1250">
<img src="./assets/schema.png" alt="Example Wiring" width="800">

Additional images provide more information and clarity on the project's structure and component layout.
43 changes: 30 additions & 13 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,55 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<title>Mesh Finland</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="description" content="Mesh Finland ohjeet ja tiedot">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css">

<link rel="apple-touch-icon" sizes="180x180" href="./assets/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="./assets/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="./assets/favicon/favicon-16x16.png">
<link rel="manifest" href="./site.webmanifest">

</head>
<script src="//cdn.jsdelivr.net/npm/docsify-edit-on-github"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-edit-on-github"></script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-pagination/dist/docsify-pagination.min.js"></script>

<div data-app id="main">Please wait...</div>
<div id="app"></div>
<script>
window.$docsify = {
el: "#main",
loadSidebar: true,
loadNavbar: true,
pagination: {
nextText: {
'/en/': 'next',
'/': 'seuraava'
},
previousText: {
'/en/': 'previous',
'/': 'edellinen'
},
},

plugins: [
EditOnGithubPlugin.create('https://github.com/Mesh-Finland/mesh-finland.github.io/tree/main/docs/', null, function(file) {
if (file.indexOf('en') === -1) {
return 'muokkaa githubissa'
} else {
return 'edit on github'
}
})
plugins: [
EditOnGithubPlugin.create('https://github.com/Mesh-Finland/mesh-finland.github.io/tree/main/docs/', null, function(file) {
if (file.indexOf('en') === -1) {
return 'muokkaa githubissa'
} else {
return 'edit on github'
}
})
]

};
</script>
<!-- Docsify v4 -->
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>



</body>
</html>
1 change: 1 addition & 0 deletions docs/site.webmanifest
Original file line number Diff line number Diff line change
@@ -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"}
90 changes: 90 additions & 0 deletions docs/sw.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/* ===========================================================
* docsify sw.js
* ===========================================================
* Copyright 2016 @huxpro
* Licensed under Apache 2.0
* Register service worker.
* ========================================================== */

const RUNTIME = "docsify";
const HOSTNAME_WHITELIST = [
self.location.hostname,
"fonts.gstatic.com",
"fonts.googleapis.com",
"cdn.jsdelivr.net",
];

// The Util Function to hack URLs of intercepted requests
const getFixedUrl = (req) => {
var now = Date.now();
var url = new URL(req.url);

// 1. fixed http URL
// Just keep syncing with location.protocol
// fetch(httpURL) belongs to active mixed content.
// And fetch(httpRequest) is not supported yet.
url.protocol = self.location.protocol;

// 2. add query for caching-busting.
// Github Pages served with Cache-Control: max-age=600
// max-age on mutable content is error-prone, with SW life of bugs can even extend.
// Until cache mode of Fetch API landed, we have to workaround cache-busting with query string.
// Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190
if (url.hostname === self.location.hostname) {
url.search += (url.search ? "&" : "?") + "cache-bust=" + now;
}
return url.href;
};

/**
* @Lifecycle Activate
* New one activated when old isnt being used.
*
* waitUntil(): activating ====> activated
*/
self.addEventListener("activate", (event) => {
event.waitUntil(self.clients.claim());
});

/**
* @Functional Fetch
* All network requests are being intercepted here.
*
* void respondWith(Promise<Response> r)
*/
self.addEventListener("fetch", (event) => {
// Skip some of cross-origin requests, like those for Google Analytics.
if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) {
// Stale-while-revalidate
// similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale
// Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1
const cached = caches.match(event.request);
const fixedUrl = getFixedUrl(event.request);
const fetched = fetch(fixedUrl, { cache: "no-store" });
const fetchedCopy = fetched.then((resp) => resp.clone());

// Call respondWith() with whatever we get first.
// If the fetch fails (e.g disconnected), wait for the cache.
// If there’s nothing in cache, wait for the fetch.
// If neither yields a response, return offline pages.
event.respondWith(
Promise.race([fetched.catch((_) => cached), cached])
.then((resp) => resp || fetched)
.catch((_) => {
/* eat any errors */
})
);

// Update the cache with the version we fetched (only for ok status)
event.waitUntil(
Promise.all([fetchedCopy, caches.open(RUNTIME)])
.then(
([response, cache]) =>
response.ok && cache.put(event.request, response)
)
.catch((_) => {
/* eat any errors */
})
);
}
});

0 comments on commit 3b1e645

Please sign in to comment.