Это история о том, как я превратил свой старый iPhone 8 в OCR-сервер на солнечных батареях, используя фреймворк Apple и зарядную станцию EcoFlow River 2 Pro. Он месяцами напролёт работает в режиме 24/7, обрабатывая тысячи изображений на полностью автономном питании.

За год с лишним мой сервер обработал 83 418 запросов на распознавание текста (OCR) и 48 ГБ изображений, используя только фреймворк Apple Vision и возобновляемую энергию. Большинство людей после апгрейда закидывают свои старые iPhone в ящик. Но не я. Я превратил свой телефон в сервер, который экономит мои деньги, работая полностью автономно.

Мог ли я просто запустить этот сервер на своём маке, как нормальный человек? Конечно же. Но разве это весело?

Коротко

Конфигурация:

  • iPhone 8 с приложением на SwiftUI, поддерживающим Apple Vision OCR.

  • EcoFlow River 2 Pro (768 Вт⋅ч) + солнечная панель 220 Вт (GearScouts).

  • Мини-ПК, обрабатывающий веб-сервисы и маршрутизацию API.

  • Сеть Tailscale, связующая всё воедино.

Показатели, спустя 1+ года:

  • 83 418 OCR-запросов и 48 ГБ изображений обработано.

  • 1000+ запросов в загруженные дни.

  • Батарея телефона после интенсивной работы сохранила 76% ёмкости.

  • $84-120 CAD экономии на электричестве в год.

Основные выводы:

  • Apple Vision не уступает по точности облачным службам.

  • Старое железо на удивление уверенно справляется с серверными нагрузками.

  • При правильном управлении батареей солнечной энергии вполне хватает.

  • При больших масштабах локальная обработка выигрывает у облачных решений в стоимости, попутно обеспечивая конфиденциальность.

Зачем я вообще на это пошёл?

Как было бы поступить логично

У меня есть личный проект по обработке большого количества изображений, который ежедневно пропускает через себя сотни картинок, автоматически разбивая их по категориям. Любой рассудительный человек запустил бы обработку OCR на своём Mac — Apple Vision прекрасно работает в macOS.

Как поступил я

Но я не рассудителен. Я вижу прекрасный iPhone 8 и думаю: «Знаешь, что тебе нужно? Вторая жизнь в виде обработчика изображений на солнечной батарее». В периоды между туристическими выездами моя EcoFlow River 2 Pro всё равно лежала без дела, так что переключение имеющегося OCR-сервера на солнечное питание стало его естественной эволюцией.

Неожиданные выгоды

  • Возможность мониторить информационную панель в реальном времени прямо на подоконнике, продолжая любоваться птицами за окном.

  • Автономное питание для личных проектов.

  • Реальная экономия, которая со временем только растёт.

  • Отличный повод для беседы, когда приходят гости.

Финансовая выгода невелика, но ощутима. К примеру, в мае расход составил 37.4 кВтч ($7.21), в апреле 45.8 кВтч ($8.82), то есть за год получается прилично.

«Практично ли это? Не уверен. Круто ли? Однозначно».

Подробная конфигурация

Вот мой мудрёный конфиг:

1.    Мини-ПК, на котором работает веб-сервер, сервис обработки изображений, сервер Plex и разные другие сервисы.

2.    iPhone 8, восседающий на подоконнике. На нём запущено приложение SwiftUI, которое отвечает за обработку OCR и выступает информационной панелью.

3.    Зарядная станция EcoFlow поддерживает автономную работу обоих устройств.

4.    Сеть Tailscale обеспечивает органичную связь всех компонентов.

Рабочий поток изящен и прост. Сервис обработки изображений отправляет эти изображения на телефон для оптического распознавания символов с помощью фреймворка Vision. Телефон обрабатывает текст, отправляет его обратно и выводит на информационную панель итоговую статистику. Я же всё это время блаженно наблюдаю за прекрасными птицами в окно, преисполненный самодовольства.

Аппаратная часть: свет превращается в вычисления

Выбор зарядной станции и практические тесты

Я не покупал EcoFlow River 2 Pro специально для этого проекта. Приобрёл я её, так как поверил, что стану одним из любителей кемпингов, который много живёт на природе и нуждается в портативном питании. Хотя пока я по-прежнему больше остаюсь «домашним котом с уличными амбициями». Но моя импульсивная покупка всё же не оказалась обречена собирать пыль.

Дельный совет: если займётесь поиском портативных зарядных станций, то GearScouts.com предлагает прекрасную функцию сравнения цен, которая позволит сэкономить время.

Потребление энергии и её выработка

Компонент

В простое

В работе

Примечание

OCR-сервер на базе iPhone 8

0.5-1 Вт

2-5 Вт

Поразительная энергоэффективность

Мини-ПК (несколько сервисов)

15 Вт

25-30 Вт

Включает Plex, Archive Warriors

Общее потребление в сутки

~1.2кВт⋅ч

Переменное

На основе фактических данных с TP-Link

Эффективность сбора солнечной энергии по сезонам:

  • Лето: 150-220 Вт в пике. Обеспечивает бесперебойную работу при заряжающейся батарее.

  • Осень/весна: 20-60 Вт в среднем. Работа от солнца/батареи.

  • Зима: 5-20 Вт в лучшем случае. Преимущественно работа от батареи (15-20 часов).

Ёмкость станции в 768 кВтч обеспечивает прекрасный запас с учётом непредсказуемой канадской погоды. Система управления батареями в этой станции заслуживает отдельной похвалы — она не просто подаёт ток на устройства, но и грамотно регулирует кривые заряда.

Создание серверного OCR-приложения под iOS

Создание сервера на iOS может показаться сложной задачей, но в Apple проделали всю основную работу. Самым трудным было убедить iOS в важности моего приложения, чтобы система не прерывала его выполнение.

Apple Vision Framework: невоспетый герой

Фреймворк Apple Vision воистину впечатляет и совершенно недооценён. В то время, как все были одержимы ChatGPT и облачными сервисами OCR, в Apple по тихой выпустили локальное решение для OCR, которое работает быстро, точно и полностью на устройстве.

Вот его основной код обработки:

import Vision
import UIKit

func processImage(_ image: UIImage, completion: @escaping (String?) -> Void) {
    guard let cgImage = image.cgImage else {
        completion(nil)
        return
    }

    let request = VNRecognizeTextRequest { request, error in
        guard let observations = request.results as? [VNRecognizedTextObservation] else {
            completion(nil)
            return
        }

        let recognizedText = observations.compactMap { observation in
            observation.topCandidates(1).first?.string
        }.joined(separator: "\n")

        completion(recognizedText)
    }

    request.recognitionLevel = .accurate
    request.usesLanguageCorrection = true

    let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
    try? handler.perform([request])
}

По точности Vision не уступает некоторым облачным сервисам, плюс всё обрабатывает локально. Никаких вызовов API, никаких ограничений на использование, никаких рисков конфиденциальности.

Информационная панель и аналитика SwiftUI

Информационная панель — самое интересное. Мне нужно было, чтобы она красиво смотрелась на подоконнике и показывала статистику в реальном времени:

struct DashboardView: View {
    @StateObject private var server = OCRServer()
    @State private var stats = ProcessingStats()

    var body: some View {
        VStack(spacing: 20) {
            Text("OCR Server Status")
                .font(.title)
                .fontWeight(.bold)

            HStack {
                StatCard(title: "Requests Today", value: "\(stats.requestsToday)")
                StatCard(title: "Total Processed", value: "\(stats.totalProcessed)")
            }

            HStack {
                StatCard(title: "Avg Processing Time", value: "\(stats.avgProcessingTime)ms")
                StatCard(title: "Success Rate", value: "\(stats.successRate)%")
            }

            BatteryView(percentage: UIDevice.current.batteryLevel)

            Text("Server running on port 8080")
                .font(.caption)
                .foregroundColor(.secondary)
        }
        .padding()
    }
}

Я люблю вникать в данные, поэтому интегрировал Google Analytics 4. Панель показывает общее число пользователей — 139 917, число пользователей за текущий месяц — 17 643, среднюю продолжительность сеанса — 6:28 и число активных пользователей — 11. Создаётся ощущение, что у меня на подоконнике информационная панель крохотного дата-центра.

Сложности с организацией солнечного питания

Запитывание электроники от солнечной энергии кажется простой затеей, пока не столкнёшься с погодными реалиями Канады. У нас бывает всё, что угодно — от жарких солнечных деньков (максимум трёх) до месяцами затянутого неба, когда солнечные панели оказываются не полезнее шоколадного чайника.

Сезонная стратегия и управление батареей

В итоге я выработал оптимальную схему, основанную на погоде:

  • Лето: солнечной энергии хватает с лихвой, и ещё остаётся на зарядку других устройств.

  • Осень/весна: смешанное использование солнечной энергии и батареи под внимательным контролем.

  • Зима: питание преимущественно от аккумулятора с периодическими подпитками от солнца.

Батарея телефона вывозит такой режим достаточно хорошо. Спустя год с лишним постоянной работы, она сохранила 76% изначальной ёмкости. Во многом это заслуга системы управления батареями в зарядной станции.

И вот одно неожиданное открытие: в слегка нагретом состоянии (но не горячем) телефон быстрее выполняет распознавание текста. То есть в прохладные утренние часы скорость обработки падает, чего я бы никогда не заметил при питании от сети.

Анализ затрат на солнечное и сетевое питание

Вложения и текущие расходы

Изначальные вложения:

  • EcoFlow River 2 Pro: $599 CAD (покупалась для туризма).

  • Солнечная панель на 220 Вт: $180 CAD.

  • Кабели, монтажное оборудование: ~$50 CAD.

  • Дополнительные вложения в конфигурацию солнечной батареи: ~$230 CAD

Ежемесячная экономия: исходя из фактических данных EcoFlow, которые показывают потребление в диапазоне 37,4 — 45,8 кВтч, я экономлю примерно $84-120 CAD в год. Итого период окупаемости около 2-3 лет.

Сравнение с облачными OCR-сервисами

Облачные сервисы распознавания текста обычно берут по $1.00-1.50 за 1 000 запросов. То есть обработка 83 000 обращений обошлась бы мне в $83-125 CAD, плюс это всё же отправка изображений на сторонние серверы, так что тут ещё возникает угроза конфиденциальности.

Мой же сетап с солнечной панелью не требует оплаты запросов и при этом полностью конфиденциален.

Что я уяснил за год

Надёжность

Используемое оборудование крайне надёжно. Телефон больше года проработал без остановки и держится бодрячком. Несмотря на постоянную нагрузку, ощутимого падения производительности не наблюдается.

Фоновая обработка в iOS работает лучше, чем я ожидал — нужно лишь найти подход. Суть в правильном использовании фонового обновления приложений и отправке регулярных запросов для поддержания активности сервера.

Фреймворк Vision постепенно дорабатывают. Те операции распознавания текста, которые раньше проваливались, теперь выполняются успешно, в частности, это касается рукописных текстов и необычных шрифтов.

Типичные проблемы и их решения

Перебои с солнечной энергией: я настроил зарядную станцию так, чтобы она отдавала приоритет телефону (меньший потребитель энергии) и мягко отключала Мини-ПК, когда заряд батареи на исходе. В случае чего телефон также может без подпитки обрабатывать простые OCR-запросы в течение нескольких часов.

Компенсация нагрева: прямой солнечный свет вкупе с постоянной нагрузкой ведут к троттлингу. Я добавил тень, улучшил обдув и реализовал механизм смарт-обработки, который сокращает число запросов, когда телефон сообщает о перегреве.

Ограничения фоновой обработки iOS: iOS следит за тем, чтобы приложения не работали бесконечно. Я использую фоновое обновление приложений, минимальный сервис определения местоположения и поддерживаю активность HTTP-сервера запросами. Приходится обеспечивать тонкий баланс между поддержанием работы всего сетапа и экономией батареи.

Почему всё это важно

Помимо очевидной крутизны, мой проект демонстрирует несколько важных принципов:

Акцент на конфиденциальности. Все изображения остаются у меня на устройствах. Никакой выгрузки в облако, никакого стороннего доступа. В эпоху, когда уже всё отправляется куда-то на чужой компьютер, истинная локальная обработка выглядит революционной.

Энергонезависимость. Несмотря на то, что экономия не радикальная, важен сам принцип. Мой пример подтверждает, что вполне весомые вычислительные нагрузки можно выполнять полностью за счёт возобновляемой энергии, даже в зонах с суровым климатом.

Сокращение электронных отходов. Этому телефону был уготован долгий ящик. Теперь же он служит продуктивным элементом в моей экосистеме устройств. Сколько старых девайсов можно было бы пустить в полезное дело вместо того, чтобы плодить электронные отходы?

Локальные вычисления. Не всё должно происходить в облаке. Порой наилучшее решение находится прямо перед тобой, питается от Солнца и обрабатывает данные локально, сохраняя полную конфиденциальность.

Теперь эта конфигурация служит наглядной демонстрацией для тех гостей, которым интересны возобновляемые источники энергии и локальные вычисления. Да и в целом мне реально нравится, что я могу мониторить статистику работы сервера прямо на окне, параллельно любуясь птицами, которые прилетают ко мне на кормушки.

Ресурсы

Дам ориентиры на случай, если вам вдруг захочется собрать нечто подобное.

Оборудование

  • EcoFlow River 2 Pro — зарядная станция, которую использую я.

  • Renogy 100W Solar Panel — аналог моей конфигурации.

  • Любой iPhone 8 или новее с iOS 13+, чтобы поддерживал фреймворк Vision.

Программное обеспечение

Инструменты управления питанием

  • TP-Link Kasa Smart Plugs — для отслеживания фактического потребления энергии.

  • EcoFlow app — встроенный инструмент мониторинга для River 2 Pro.

  • GearScouts.com — сравнение цен на зарядные станции и уличное оборудование.

Комментарии (33)


  1. Gorthauer87
    28.09.2025 09:05

    А там же по идее ограничения, что самописное по раз в неделю надо переподписывать и перезаливать?


    1. kalapanga
      28.09.2025 09:05

      Вроде есть какие-то способы кое как это автоматизировать, но всё равно гемморой.

      Отсутствие возможности писать приложения исключительно "для себя любимого" без всяких App Store в устройствах от Apple очень расстраивает.


    1. K0styan
      28.09.2025 09:05

      Корпоративное ПО, распространяемое локально для сотрудников, такого не требует


      1. Masquerader
        28.09.2025 09:05

        Если речь об Apple Development Enterprise Program, то, к сожалению, для России с февраля этого года не работает (UPD: осознал уже, что автор в Канаде, однако - ...), к тому же требует наличия реального юрлица с кучей сотрудников и стоит около 300 долларов в год.


        1. K0styan
          28.09.2025 09:05

          Это да, но всё ж тоже решение - может, товарищ имеет доступ к аккаунту работодателя?

          Кстати, я давно этим делом не занимался - тестовые сборки, распространяемые через TestFlight тоже недолго живут?


          1. Masquerader
            28.09.2025 09:05

            90, что ли, дней. Потом, в принципе, можно как бы новую сборку залить и всех как бы обновить.

            Ну и для Тестфлайта, если не ошибаюсь, все равно нужен хоть какой-нибудь аккаунт разработчика, а это минимум 99$/год.


      1. kambala
        28.09.2025 09:05

        это при условии наличия enterprise акка разработчика


    1. kambala
      28.09.2025 09:05

      если у тебя нет платного акка разработчика, то да. AltStore облегчает этот процесс.


      1. Gorthauer87
        28.09.2025 09:05

        Интересно а altstore сам себя на телефоне не может обновлять?


        1. kambala
          28.09.2025 09:05

          Альтстор состоит из 2 компонентов: сервер (запускается на десктопе) и мобильный клиент. Именно сервер занимается переподписью и повторной заливкой на девайс. Соответственно надо хотя бы раз в 7 дней этот сервер запускать, чтоб приложение не "сгорало".

          Но есть и другие решения, которые могут переподписывать прямо на девайсе: например, SideStore.


    1. Elian
      28.09.2025 09:05

      Учитывая, что это iPhone 8, то скорее всего просто jailbreak


  1. Zara6502
    28.09.2025 09:05

    я думаю не проблема в факте использования старого оборудования, проблема в области применения. вот мне не нужен OCR в таких объемах, как и 99% населения, и что делать? )


  1. JohnSmith_007
    28.09.2025 09:05

    Многа компютеров для одной системы это называется ЭКО !


  1. Bardakan
    28.09.2025 09:05

    статья фактически называется "OCR-сервер из iPhone". Только какой же это сервер из айфона, если ему еще отдельный мини-пк нужен? А мини-пк сейчас выпускают сравнительно мощные


    1. here-we-go-again
      28.09.2025 09:05

      Так дело в том, что мини-пк не факт, что обеспечит тот же OCR в вопросе распознаваний/Вт. А веб сервер автор на айфоне просто решил не заморачиваться поднимать, хотя на 8 это как раз вполне можно с джейлбрейком.


      1. Bardakan
        28.09.2025 09:05

        Мини-ПК, на котором работает веб-сервер, сервис обработки изображений, сервер Plex и разные другие сервисы.

        не обеспечит OCR говорите? Для меня пока что идея выглядит как "майнить биткоин на телефоне, подключенном к основному пк вместо видеокарты" - можно, но целесообразно ли?


        1. here-we-go-again
          28.09.2025 09:05

          Так в посте есть объяснение, он юзает эпл вижн сдк, которое идет вместе с айфоном и заоптимизировано на железо самого айфона, на 8 еще нет полноценного NPU (только его личинка), но там уже есть солидное железное ускорение нейроопераций.

          А на мини-пк (если мы не про дорогой и сочный ИИ пк на топовом райзене) будет просто цпу и все.


    1. Varowlord4
      28.09.2025 09:05

      Айфон здесь не сервер в смысле веб-сервер, а сервер в смысле сервер вычислений. Терминология корректна


    1. CptAFK
      28.09.2025 09:05

      Выглядит так, словно ему стоило всё это, как коробочное решение поднять на mac mini m4.

      Но тут вопрос затрат, старый телефон всё-таки бесплатный.


  1. Gutt
    28.09.2025 09:05

    Панель 220 Вт за 180 канадских долларов?! Ну и цены в Канаде. Я два месяца назад покупал 400 Вт панели по 40 евро за штуку.
    Интересно, а сам веб-сервер на iPhone что помешало разместить?


  1. oleg_rico
    28.09.2025 09:05

    Устройства от Эппл на удивление надежные штуки. У меня первый Ipad до сих пор включается, работает и на нем можно даже на порнохаб зайти:)
    Восхищён тем, что сделал автор поста.


    1. sunsexsurf
      28.09.2025 09:05

      Вы намекаете на то, что больше он ни для чего другого и не нужен?


      1. oleg_rico
        28.09.2025 09:05

        Можно ещё на xvideo.com зайти, преимущество что там рекламу не показывают:)

        А так простые сайты открываются, более сложные уже не очень хорошо.

        Выкидывать жалко, всё-таки первый iPad, когда-то вызывавший восхищение в момент покупки.

        А придумать какое-то использование в отличие от автора поста у меня мозгов не хватает. Впрочем, У меня есть ещё четвёртый iPad, iPhone семёрка и последний iPоd touch.

        И все вполне рабочая но использовать их сейчас уже негде.


    1. yrub
      28.09.2025 09:05

      а чему в нем ломаться? там что есть подвижные части? в такой электронике нет даже электролитических конденсаторов, вся нагрузка на износ на аккумулятор идет


      1. nixtonixto
        28.09.2025 09:05

        Там есть флеш-память, имеющая ограниченный ресурс.


        1. yrub
          28.09.2025 09:05

          нужно очень постараться, чтобы высадить ее ресурс. тут скорее больше шансов на то, что она где-то сама по себе потеряет данные без включения и в итоге не сможет загрузиться


  1. sic
    28.09.2025 09:05

    Вот бы ещё узнать, зачем автору свой собственный OCR сервер, да и в общем-то такой слабенький. Так то у меня тоже есть горстка вполне живого "старья" но какой-то номинально полезный проект на нем не придумать.


  1. Technology_1
    28.09.2025 09:05

    Спасибо за статью, было полезно!


  1. affyt
    28.09.2025 09:05

    Не понял как 1вт + 15вт стало 1.2квтч за сутки. Магия перевода?


    1. Varowlord4
      28.09.2025 09:05

      1.2 кВтч в сутки это среднее потребление 50 Вт. Учитывая что один только мини-ПК в пике ест 30 Вт, плюс айфон, плюс КПД инвертора - цифра вполне реальная


  1. Varowlord4
    28.09.2025 09:05

    Мог ли я просто запустить этот сервер на своём маке, как нормальный человек? Конечно же. Но разве это весело?

    Дух настоящего гика) Проект огонь, использовать старый айфон не как пылесборник, а как полноценный рабочий узел системы, да еще и на солнечном питании - красиво


  1. geirby
    28.09.2025 09:05

    Почему iPhone 8 "старый"? В честь чего? Я бы на нем до сих пор сидел, если бы не ощутимый импакт на зрение от конкретно моего экземпляра (немного побитого жизнью).
    В игры не играю, все остальные приложения работают точно также как на текущей 13-й модели (понятно, что какой-то ограниченный "бытовой" скоуп, не 3d модельки рендерить).
    Почему железо, которое в состоянии проработать еще несколько лет и формфактор, который мы, напротив, НЕ В СОСТОЯНИИ поменять еще лет 10 оцениваются как "старые"?


    1. Mr_Igor
      28.09.2025 09:05

      у меня валяется pixel 2xl вот все не доберусь его прикрутить к телеку через хаб с HDMI, доп питанием и usb думаю файлопоймойку таким образом организовать ну и всякие приложухи что с телека юзать)