Meshtastic

This commit is contained in:
assada 2023-07-22 23:48:53 +03:00
parent 9152bd41fa
commit 6180afe22f
Signed by: assada
GPG Key ID: 8905E8CE5CC3000D
3 changed files with 357 additions and 0 deletions

174
ham/meshtastic.md Normal file
View File

@ -0,0 +1,174 @@
---
Author: Assada
Title: Meshtastic в Україні
Description: Meshtastic — LoRaWAN Mesh Network в Україні
Preview: https://assada.dead.guru/storage/images/1690058736_image.png
---
![Meshtastic модем](https://assada.dead.guru/storage/images/1690058736_image.png){.md-cover .md-img-r}
**Meshtastic** — це проект, який дозволяє використовувати недорогі радіоприймачі на базі LoRa як дальньобійну комунікаційну платформу в зонах без наявної або ненадійної комунікаційної інфраструктури.
[TOC]
# Історія появи технології LoRa.
На початку 2015 року [Semtech Corporation](https://www.semtech.com/) та дослідницький центр [IBM Research](https://research.ibm.com/) представили новий відкритий енергоефективний мережевий протокол LoRaWAN (Long Range Wide Area Networks), що забезпечує значні переваги перед Wi-Fi та стільниковими мережами завдяки можливості розгортання міжмашинних (M2M) комунікацій, чи сколихнули ринок IoT.
![IBM Research і Semtech Corporation](https://assada.dead.guru/storage/images/1690048845_image.png){.md-cover .md-img-r}
Технологія **LoRa** з'явилася на світ під егідою некомерційної організації [LoRa Alliance](https://lora-alliance.org/), заснованої такими компаніями, як IBM, Semtech, Cisco та ін., з метою прийняття та просування протоколу LoRaWAN як єдиний стандарт для глобальних мереж з низьким енергоспоживанням (LPWAN — від англ. Low Power Wide Area ).
Розробники **LoRa Alliance** позиціонують **LoRa** як технологію, що має значні переваги перед стільниковими мережами та WiFi завдяки можливості розгортання міжмашинних (M2M) комунікацій на відстанях до 20 км. та швидкостях до 50 Кбіт/с., при мінімальному споживанні електроенергії, що забезпечує кілька років автономної роботи на одному акумуляторі типу АА.
Діапазон застосування даної технології величезний: від домашньої автоматизації та інтернету речей до промисловості та розумних міст.
![Архітектруа LoRaWAN](https://assada.dead.guru/storage/images/1690049019_image.png){.md-cover .md-img-r}
# Що таке Meshtastic?
**Meshtastic** — це "LoRa based" проект, який дозволяє використовувати недорогі GPS-радіостанції (30 баксів плюс-мінус) як розширюваний меш GPS-комунікатор із надтривалим терміном служби батареї. Ці радіоприймачі чудово підходять для піших прогулянок, катання на лижах, велоспорту практично для будь-якого хобі, де у вас немає надійного доступу до Інтернету. Кожен учасник вашої приватної мережі завжди може бачити місцезнаходження та відстань усіх інших учасників, а також будь-які текстові повідомлення, надіслані у ваш груповий чат або писати вам особисто через приватні повідомлення.
Радіостанції автоматично створюють і підтримують мережу LoRaWAN для пересилання пакетів у разі потреби(до 7 хопів), тому кожен у групі може отримувати повідомлення навіть від найдальшого учасника. Радіостанції за бажанням працюватимуть із вашим телефоном, але телефон не обовя`зковий.
![Мапа мережі в Укріїні](https://assada.dead.guru/storage/images/1690049900_image.png){.md-cover .md-img-r}
**Основна функція проекту:** передача тексту та ваших координат через смартфон без використання стільникового зв'язку та інтернету.
Тобто. на ваш смартфон Android або iOS, встановлюється програма Meshtastic. Це програма-чат на зразок Telegram або Viber. Телефон з'єднується з радіомодемом через Btuetooth. Через радіомодем здійснюється зв'язок з іншими абонентами, у яких стоїть така сама програма і такий же модем. На екрані смартфона ви можете бачити список абонентів та карту їх розташування. Ви бачите груповий чат та p2p чати з учасниками мережі.
![Додаток Meshtastic для IOS](https://assada.dead.guru/storage/images/1690054367_meshtastic_app.png){.md-cover .md-img-r}
**Варіанти сценаріїв застосування:**
* Екстрений цифровий зв'язок при надзвичайних ситуаціях (наприклад відключення світла)
* Пошук втрачених людей
* Створення своєї радіомережі серед однодумців усередині свого району і навіть далі, що самоорганізується, у своєму власному проекті
* Передача легкої телеметрії, наприклад, з власної метеостанції, показання дозиметру чи іншого датчика
* Спорт на відкритому повітрі з обмеженим покриттям мобільного зв'язку. (Піші прогулянки горами, катання на лижах, катання на човнах, парапланеризм або квадрокоптери, і т. д.)
* Ситуації, в яких GPS-комунікатори із закритим вихідним кодом просто не допоможуть (легко додати функції для пілотів квадрокоптерів або планерів і т.д.)
* Безпечний зв'язок на великій відстані всередині груп, незалежно від стільникових операторів
**Необхідне апаратне забезпечення для роботи з Meshtastic:**
* Android/iOS cмартфон або комп'ютер для налаштувань і спілкування в чаті
* Meshtastic радіомодем на основі LoRa-модулів зв'язку ==про це далі==
* антена. Краща антена кращий зв`язок
* Li-Ion акумулятор або PowerBank для живлення модулю
Радіомережа будується на основі готових LoRa-радіомодулів. Головна особливість їх полягає у великій дальності зв'язку за дуже мізерної потужності. В Україні виділено під LoRa ділянки частот 433МГц. Саме під цю частоту вам необхідно знайти або зібрати модем і антену.
# Пристрої Meshtastic
Загальний список пристроїв, які підтримуються Meshtastic можна переглянути на офіційному сайті проекту: [https://meshtastic.org/docs/supported-hardware](https://meshtastic.org/docs/supported-hardware)
Є кілька варіантів радіомодемів, які [рекомендубться для використання в Українській мережі](https://wikimesh.pp.ua/uk/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D1%96_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D1%80%D0%BE%D1%97):
* **LILYGO® TTGO LoRa32 V2.1_1.6 T-Lora** — найдешевший, без GPS і не великою потужністю передачі. https://a.aliexpress.com/_Ev5JaUT
![LILYGO® TTGO LoRa32 V2.1_1.6 T-Lora](https://assada.dead.guru/storage/images/1690055311_image.png){.md-cover .md-img-r}
* **LILYGO® T-Beam** - самий популярний пристрій. Вже з GPS і більшою потужністю передачі. https://www.aliexpress.com/item/4001286458852.html
![LILYGO® T-Beam](https://assada.dead.guru/storage/images/1690055673_image.png){.md-cover .md-img-r}
@mat_bot ужність, енергоефективний дисплей, вбудований датчик температури і вологості. https://www.aliexpress.com/item/1005003026107533.html
![LILYGO® TTGO Meshtastic T-Echo](https://assada.dead.guru/storage/images/1690055583_image.png){.md-cover .md-img-r}
## Прошивка пристроїв
Для себе я обрав саме **LILYGO® T-Beam** як найбільш збалансований по ціні і кількості функцій.
Отримавши модуль перше що треба зробити - оновити прошивку модему до останньої версії. Зробити це можна двома способами: простим через web інтерфейс і умовно складним, через esptool.
Вам можуть знадобитися драйвера для serial-чіпу ch9102: https://github.com/WCHSoftGroup/ch343ser_linux
> Зверніть увагу! Драйвер не підтримує версію ядра >= 6.1. Але ви можете застосувати відповідні патчі. Наприклад https://github.com/WCHSoftGroup/ch343ser_linux/commit/0c08ee45b25ca93d2c213e18f881627849094268.patch
### Прошивка через web інтерфейс
1. Підключаємо пристрій до комп'ютера через USB
2. Відкриваємо https://flasher.meshtastic.org/ і виберіть прошивку, яку потрібно завантажити на Meshtastic , та виберіть COM порт, до якого підключений ESP32.
3. Натисніть кнопку "Flash" у веб-флешері. Процес прошивки може зайняти кілька хвилин.
4. Після завершення прошивки пристрій перезавантажиться.
### Прошивка через esptool (складний варіант)
Процес збірки і сам процес описаний **UT3UMS** тут: #hw/tbeam-firmware-ut3ums.md
Додатково при виборі цього способу прошивки модему можна реалізувати наступне:
* Українська мова на екрані пристрою: https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%A3%D0%B2%D1%96%D0%BC%D0%BA%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%BE%D1%97_%D0%BC%D0%BE%D0%B2%D0%B8
* Збільшення потужності https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%97%D0%B1%D1%96%D0%BB%D1%8C%D1%88%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BF%D0%BE%D1%82%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%96
* Розширене логування RadioLib через Serial https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%A0%D0%BE%D0%B7%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B5_%D0%BB%D0%BE%D0%B3%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_RadioLib
## Перші налаштування і підключення до мережі
T-Beam і інші модеми з підтримкою Bluetooth можуть бути налаштовані з додатку. Але цей спосіб, особисто в мене, працює погано. Тому я обрав варіант використання meshtastic cli утиліти(клієнту).
Також варто зазначити що ви можете налаштувати і працювати з модемом через web клієнт: https://client.meshtastic.org/
### Встановлення meshtastic-cli
Вам потрібен python3 і pip > 20. Перевірте свої версії і оновіть за необхідності:
```bash
python3 --version
pip3 --version
```
Встановлюємо cli клієнт:
```bash
pip3 install --upgrade pytap2
pip3 install --upgrade meshtastic
```
Далі можна підключити модем до комп'ютера через USB і виконати наступну команду:
```bash
meshtastic --info
```
Таким чином ви перевірите що все працює.
### Налаштування модему.
Для початку роботи з модемом вам необхідно виконати наступні дії:
```bash
meshtastic --set-owner 'your node name' --set-owner-short 'NODE'
```
де `your node name` - це ваше ім'я в мережі, а `NODE` - це коротке ім'я, яке буде відображатися на екрані модему. Щось типу аватарки. Підтримується в тому числі і емодзі.
Встановлюємо налаштування радіо:
```bash
meshtastic --set lora.region UA_433 --set lora.modem_preset LONG_FAST
```
Після зміни кожного налаштування модем автоматично перезавантажиться. Параметри налаштувань можна об`єднувати в одну команду:
```bash
meshtastic --set-owner 'your node name' --set-owner-short 'NODE' --set lora.region UA_433 --set lora.modem_preset LONG_FAST
```
### Підключення до мережі
Завантажте клієнт для вашої сторінки https://meshtastic.org/downloads
І відскануйте QR код з налаштуваннями мережі.
Для IOS використовуйте QR сканер в додатку камери. Для Android використовуйте вбудований в додаток Meshtastic сканер в налаштуваннях каналів.
![QR код з налаштуваннями мережі](https://assada.dead.guru/storage/images/1690058019_image.png){.md-cover .md-img-r}
Вітаю! Ви в мережі! Спробуйте написати щось в чат і ви обов`язково отримаєте відповідь якщо ваш пакет хтось "почув". Якщо ні, то спробуйте змінити місцезнаходження або використати антену з більшим коефіцієнтом підсилення. Приклади антен наведені тут: https://wikimesh.pp.ua/uk/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D1%96_%D0%B0%D0%BD%D1%82%D0%B5%D0%BD%D0%B8
# Корисні посилання
* https://wikimesh.pp.ua/uk/home - Українська документація
* https://meshtastic.org/- основний сайт проекту
* https://t.me/meshtastic_ua - Українська спільнота в Telegram
* https://mesh.0x21h.net - карта покриття (beta)
* https://mesh.in.ua/grafana/d/R4RChebVk/mesh?orgId=1&refresh=5s - Дашборд мережі
* https://t.me/meshtastic_lviv - спільнота міста Львів
* https://t.me/meshtastic_ua_chernivtsi - спільнота міста Чернівці
* https://t.me/meshtastic_ua_odesa - спільнота міста Одеса

View File

@ -0,0 +1,91 @@
---
Author: UT3UMS
Title: Прошивка Meshtastic модему TBEAM
Description: Прошивка TBEAM модему для роботи з Meshtastic
---
# Self build
Для зборки проєкту нам знадобиться
[platformio](https://docs.platformio.org/en/latest/core/installation/shell-commands.html)
([PlatformIO · GitHub](https://github.com/platformio), open source) це
набір скриптів, конфігурацій, темплейтів, тощо для роботи
embedded-розробників. Щось на кшталт pip/npm.
`platformio.ini`{.verbatim} - конфігураційний файл в корені проєкту
визначає архітектуру, специфічні потреби, параметри компіляції.
Існтрумент `platformio`{.verbatim} або скорочено `pio`{.verbatim}
самостійно завантажує потрібний тулчейн, налаштовує і виконує збірку
прошивки та заливку артефактів збірки на пристрої. Без цього, я думаю,
збирати тулчейн для плати буде складніше. Особливо людям без досвіду в
embedded.
Реокмендований офіційним сайтом спосіб встановлення platformio
``` {#станом на <2023-07-22 Sat 00:43> це офіційні рекомендації команди platformio по встановленню існтурментарію .bash org-language="sh" eval="never"}
wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py
python3 get-platformio.py
# наступні кроки для того, щоб систем "знала" про pio, яке буде встановлене у директорю користувача
sudo ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio
# або додайте ~/.platformio/penv/bin/pio в змінну $PATH, як це зробити залежить від багатьох факторів вашої системи
```
Нам знадобиться вихідний код meshtastic, який ми будемо модифікувтаи.
Крім того я використовував деякі скрипти з директорії
`firmware/bin`{.verbatim}, але про це згодом.
``` {#отримання вихідного коду meshtastic .bash org-language="sh" eval="never"}
git clone https://github.com/meshtastic/firmware.git && cd meshtastic && git submodule update --init
```
На цьому етапі вам має бути доступний код meshtastic. Для прикладу
[змінимо максимальну
потужність](https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%97%D0%B1%D1%96%D0%BB%D1%8C%D1%88%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BF%D0%BE%D1%82%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%96)
передавача для мого регіону та [додаму українські
літери](https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%A3%D0%B2%D1%96%D0%BC%D0%BA%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%BE%D1%97_%D0%BC%D0%BE%D0%B2%D0%B8)
у екранний шрифт.
Трохи почитавши інтернет та сам файл конфігурації
`platformio.ini`{.verbatim} я знайшов два способи запустити збірку
проєкту:
``` {#збірка з указанням оточення (environment) .bash org-language="sh" eval="never"}
pio run -e tbeam
```
або просто відредагувати `platformio.ini`{.verbatim} розкоментувавши
своє оточення і закоментувавши решту. У мене плата Lilygo Tbeam, тому у
моєму конфізі буде щось таке:
``` example
[platformio]
default_envs = tbeam
```
Не зважаючи на успішний білд, команда прошивки
`pio run -t upload`{.verbatim} повернула незрозумілі помилки контрольних
сум. Можливо в цьому винне саме моє оточення - чув що робота esptool для
ядер :+ ще не стабільна. В будь-якому, на цьому кроці я вже маю артифакт
`firmware.bin`{.verbatim}. `pio`{.verbatim} поклав їх в піддиректорію
проєкту: `.pio/build/tbeam/firmware.bin`{.verbatim}
``` {#meshtastic build + flash, .bash org-language="sh" eval="never"}
pio run -t upload
```
Намагаючись розібратися з прошивкою, я запустив
`esptool chip_id`{.verbatim}, программа звалилась на середині роботи,
через неможливість відкрити такий файл:
`/usr/lib/python3/dist-packages/esptool/targets/stub_flasher/stub_flasher_32.json`{.verbatim}.
Документація каже що це готові шаблони пам\'яті, які esptool закидує в
пристрій при прошивці. Простого підкладання файлу з офіційного
репозиторію на місце допомогла запустити `esptool`{.verbatim}, але
`pio`{.verbatim} все ще скаржився на md5. В решті решт я натрапив на
скріпт у директорії `./bin`{.verbatim}. Скріпт закінчився із
попередженнями та помилками, але прошивка пройшла успішно. Після
кофігурації присторю я побачив українську мову на дисплеї і зміг
виставити рівень 14dBm, а не дефолтні 12.
``` {#Альтернативний спосіб прошивки .bash org-language="sh" eval="never"}
./bin/device-install.sh -f ../.pio/build/tbeam/firmware.bin
```

92
sitemap.xml Normal file
View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://assada.dead.guru/ham</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/ham/icom-705-aprs.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/ham/pi-star-and-mmdvm.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/ham/ham-in-ukraine.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/ham/practical-signal-reports.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/ham/gsm/gsm-start-and-imsi-cacth.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/rc</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/rc/crossfire.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/rc/general.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/rc/tx16s.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/rc/fpv/general.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/rc/model/swamp-thing.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/life</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/life/under_asphalt_pt1.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/hw</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/hw/anytone-d878uvII.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/hw/flipper-zero.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/hw/hackrf.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/hw/quansheng_uv-k5.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/hw/uniden-bcd436hp.md</loc>
<lastmod>2023-07-09</lastmod>
</url>
<url>
<loc>https://assada.dead.guru/ham/meshtastic.md</loc>
<lastmod>2023-07-22</lastmod>
</url>
</url>
<url>
<loc>https://assada.dead.guru/hw/tbeam-firmware-ut3ums.md</loc>
<lastmod>2023-07-22</lastmod>
</url>
</urlset>