Этот проект — Простой способ использовать криптовалюты (Solana, Cosmos, Algorand или Toncoin) для управления устройствами.
Важно: Данный проект предназначен исключительно для образовательных целей и изучения современных технологий, таких как блокчейн и криптовалюты. Мы не поддерживаем использование криптовалют в нарушение законодательства. Этот проект создан для демонстрации работы IoT-устройств и взаимодействия с популярными криптовалютами.
С чего все начиналось?
Я живу за пределами России, где законы, касающиеся использования криптовалют, более гибкие. Мы несколько месяцев назад в своем IT офисе для сотрудников установили Sonoff и подключили его к кофемашине. Теперь она включается только после того, как пользователь переведёт нужную сумму в криптовалюте на указанный кошелёк.
Таким образом, мы придумали способ "собирать деньги на кофе". Когда оно заканчивается, мы используем собранные средства, чтобы купить новую пачку. Это не только удобно, но и помогает автоматизировать процесс оплаты.
Как все устроено:
1. Подключение устройства:
Устройство Sonoff используется как основа. Оно позволяет управлять подачей питания к кофемашине. Сначала мы прошили Sonoff, и интегрировали его с нашим кодом для работы с криптовалютами. О том, как это сделать, я расскажу позже.
2. Платёжный процесс:
Мы распечатали и поставили возле кофемашины QR-код, в котором указаны данные криптокошелька и рядом сумма, соответствующая стоимости чашки кофе в EUR.
• Пользователь сканирует QR-код с помощью любого криптокошелька.
• Указывает сумму в EUR.
• Sonoff проверяет, поступил ли платёж, и активирует кофемашину на 1 минуту.
3. Проверка баланса:
Sonoff берёт стоимость чашки кофе, указанную в настройках, в евро (EUR) и через API CoinMarketCap пересчитывает её в эквивалентную сумму криптовалюты, например, Solana.
Каждые 5 секунд устройство проверяет баланс указанного криптокошелька:
• Если на кошелёк поступило необходимое количество криптовалюты (эквивалент стоимости в EUR), Sonoff распознаёт это как успешный платёж.
• После этого реле срабатывает, подаёт питание на кофемашину, и она включается.
4. Актуализация стоимости криптовалюты:
Sonoff регулярно (каждый час) отправляет запрос на CoinMarketCap, чтобы обновить текущий курс криптовалюты относительно евро.
• Это обеспечивает точный пересчёт суммы в криптовалюте, даже если её курс изменился.
Таким образом, Sonoff всегда знает, сколько криптовалюты необходимо для оплаты услуги, и включает устройство только после успешного поступления средств.
Прошивание
Прошивание происходит через браузер. Подключите Sonoff к программатору и соедините его с компьютером через USB. Если у вас с этим проблемы пишите в Telegram, поможем.
У нас есть несколько проектов. Первый — Sonoff for Toncoin, который использует toncenter.com для проверки баланса. Преимущество этого решения в том, что регистрация и получение API не требуются но работает только с TonCoin.
Второй проект, о котором мы расскажем здесь подробнее, — Sonoff for Toncoin, Solana, Cosmos, Algorand. Он использует tatum.io для проверки баланса. В этом случае потребуется регистрация и получение API-ключа, но вы легко уложитесь в бесплатный тарифный план.
Включение устройства
• При первом включении, если устройство не находит роутер, или если вы нажмёте кнопку на самом Sonoff, оно создаст точку доступа с именем "Crypto payments".
• Подключитесь к этой точке (пароль не требуется) и откройте браузер, где введите http://192.168.4.1. Обычно после подключения к Wi‑Fi автоматически откроется Activ portal, который перенаправит вас на нужную страницу.
• Нажмите "Configure WiFi" для настройки.
Настройка устройства
• Роутер и пароль: Введите данные для подключения к вашему Wi-Fi.
• Crypto Name: Криптовалюта устройства, например, "Solana", "Cosmos", "Algorand" или "Toncoin". Вы можете опционально добавить в это поле GPIO пины. Пример: Solana:12,11,22
, где Solana — это криптовалюта устройсва, а 12,11,22
— это соответствующие номера пинов для реле, кнопка сброса и светодиода (RELAY_PIN,BUTTON_PIN,LED_PIN
).
• Your Wallet: Введите адрес вашего кошелька для приема платежей.
• CoinMarketCap API: Используется для получения текущего курса Solana в фиатной валюте (получить API).
• Tatum API: Служит для получения информации о балансе вашего кошелька (получить API).
• Сurrency: Выберите валюту, в которой хотите получать оплату (EUR, USD, RUB, BYN, BGN, GBP и др.). Это необходимо для автоматической конвертации суммы в Solana на основе текущего курса, который обновляется каждый час через coinmarketcap.com.
• Service Currency Price: Укажите цену в выбранной валюте, которую клиент должен оплатить.
• Payment Tolerance: В этой ячейке указывается допустимая погрешность в цене. Поскольку стоимость криптовалюты постоянно колеблется, здесь нужно указать диапазон отклонений (одной цифрой), который вы готовы принять при оплате.
• Relay Work Time: Укажите, на сколько секунд должно включиться реле. Это может быть от одной секунды до нескольких минут или часов.
Какие Sonoff поддерживаются?
Проект отлично работает с ESP8266 (Mini R1, Mini R2, S26, S26R2). Мы так же добавили поддержку устройств SONOFF на базе ESP32 (Dual R3, Mini R4, Basic R4, POW, THR316), но большинство из них не прошло полное тестирование. На ESP32 многие пины изменились в зависимости от модели устройства. Мы решили не выпускать отдельные прошивки для каждой модели, так как это усложнило бы их поддержку. Поэтому вам нужно будет вручную настроить GPIO для вашего устройства. Для этого в поле Crypto Name после имени крипто валюты, добавьте : далее сначала GPIO реле, затем для GPIO кнопки сброса, и в конце GPIO для светодиода (LED). Ниже вы найдете список устройств и соответствующих им GPIO. Просто скопируйте нужные настройки, и устройство должно заработать.
Dual R3 Solana:27,0,13
Cosmos:27,0,13
Algorand:27,0,13
Toncoin:27,0,13
Mini R4 Solana:26,0,19
Cosmos:26,0,19
Algorand:26,0,19
Toncoin:26,0,19
Mini R4M Solana:4,9,19
Cosmos:4,9,19
Algorand:4,9,19
Toncoin:4,9,19
Basic R4 Solana:4,9,6
Cosmos:4,9,6
Algorand:4,9,6
Toncoin:4,9,6
POW 16a Solana:13,0,18
Cosmos:13,0,18
Algorand:13,0,18
Toncoin:13,0,18
POW 20a Solana:4,0,18
Cosmos:4,0,18
Algorand:4,0,18
Toncoin:4,0,18
POW Ring Solana:21,0,13
Cosmos:21,0,13
Algorand:21,0,13
Toncoin:21,0,13
THR316 Solana:21,0,15
Cosmos:21,0,15
Algorand:21,0,15
Toncoin:21,0,15
Заключение
Мы продолжим развивать проект, добавлять поддержку новых устройств и улучшать текущую функциональность. Если у вас возникнут вопросы, предложения или проблемы — не стесняйтесь писать нам в Telegram. Ваши отзывы помогут нам сделать проект ещё лучше.
Спасибо за внимание, и удачи в ваших экспериментах!
Ссылки на проекты (GitHub)
? Sonoff for Toncoin (toncenter.com)
? Sonoff for Toncoin, Solana, Cosmos, Algorand (tatum.io)
? У нас есть еще проект к экраном
--
? Видео обзор YouTube - оно не профессиональное, но мы старались.
jbourne
Я может где то упустил, но:
Где вы храните сумму на которую вы уже сделали кофе? Не ту что вам зашла, а ту что вы уже отработали. Или идентификатор не последней, а отработанной транзакции.
Или просто в памяти?
Ramzies Автор
Sonoff запоминает текущий баланс кошелька (в памяти). Если он увеличивается на стоимость кофе, реле включается, и баланс обновляется.
jbourne
Получается, что если перезагрузить его или потушить ненадолго - он может недодать или выдать лишний кофе, верно? Или например девайс отключили что бы протереть, а я как раз иду и по дороге проплатил, то когда его включат - моя транзакция "старая" и уже обработанная. Можно еще кейсов придумать.
Я имею ввиду, что из-за того, что контракт не полностью замкнут в крипте, всегда будет вариант такой проблемы в подобных решениях: после сбоя возможно падение надежности, так как нарушена связность информации об оплатах и о выполненных обязательствах.
Если я все правильно понял, то решение было бы более "крипто" и надежно, если его контракт полностью затащить в крипту.
Это все в рамках рассуждений и мыслей. Так или иначе - ваше решение автоматизирует большую часть случаев. Просто прикладываю мысли про крайние и редкие.
Ramzies Автор
Да, наверное, стоит об этом задуматься. Однако за эти несколько месяцев у нас не было таких казусов.