Комментируйте ошибки или исправления, обнаруженные для этой схемы, и получите шанс выиграть по-крупному!
Ну, мы видели, что с помощью ESP32 можно отправлять данные на облачный сервер, например thingspeak.com, но эта передача происходит очень медленно. Ваша машина может быть достаточно мощной, чтобы отправлять данные каждую секунду, но конечная пропускная способность определяется медленным путем передачи данных, разрешенным сервером Thingspeak.com.
Улучшенный процесс
Лучше всего обналичить несколько тысяч долларов. купите собственное интернет-серверное пространство, которое всегда будет подключено к Интернету, и затем сбрасывайте на него свои данные по своему усмотрению. Однако есть еще лучший, безопасный и дешевый способ — использовать Telegram! Отправляйте данные раз в пару секунд с помощью дешевого ESP32 на канал телеграмм-бота, а затем получайте их на другом конце света, используя простой код Python! У нас есть удаленная телеметрическая станция, которая отправляет данные раз в 4 секунды. Данные поступают на базовую станцию ESP32, подключенную через телеметрию LoRa. Тот же ESP32 подключен к Wi-Fi-соединению в Интернете на другом конце, как маршрутизатор & повторно отправляет данные в канал Telegram Bot.
Получатель
Обычный компьютер, подключенный к Интернету и способный запускать Python3 для непрерывного получения данных и их использования. Блок-схема могла бы быть такой…
Полевые датчики –> Для ESP32 –> В Telegram-канал –> В киберпространство –> На дальний конец Приемника → Wi-Fi Интернет + Python → Воспроизведение данных.
Принцип бота Telegram
Для начала вам необходимо создать канал в Telegram, который затем будет связываться с вашими ESP. На этом этапе первое, что вам нужно сделать, это установить приложение Telegram на свой мобильный телефон, планшет или любое другое устройство по вашему выбору. Вы можете легко получить бесплатное приложение в Google Play Store, App Store и т. д.
После установки приложения и настройки учетной записи. Найдите Botfather в своем приложении. Как только вы откроете Botfather, вы увидите кнопку «Пуск» или «Перезапустить». Откроется список команд и их приложений, которые вам нужно нажать на команду /newbot. После этой команды вам нужно дать вашему боту имя. Я дал имя «bera_arduino». Поскольку имя бота установлено, вам необходимо задать имя пользователя. При настройке имени пользователя следует учитывать, что имя пользователя должно быть уникальным и заканчиваться словом «бот» — bera1bot. Как только вы установите имя пользователя, ваш бот будет создан, и вы увидите доступный токен API. сохраните это где-нибудь, так как оно понадобится на следующем шаге.
Теперь нужно выяснить еще два параметра для этого канала bera_arduino —chat_id и bot_token, чтобы подготовить наш скетч. После создания имени чата и идентификатора пользователя введите команду /mybots, она откроет ваших ботов. Выберите выбранного бота, и вам будет представлено такое графическое окно. Нажмите токен API_, и вы получите токен записи bot_token для вашего бота.
Единственные необходимые данные — это ваш чатид. Чтобы получить его, найдите бота с именем @GetIDsBot, и вы увидите такое окно с описанием вашего идентификатора чата.
Итак, теперь у вас есть все учетные данные для запуска чат-бота в Telegram. Четко запишите эти два призрачных числа, чтобы использовать их в эскизе.
Telegram на Python
На данный момент описанная выше настройка подходит для получения сообщений в приложении Telegram на мобильном устройстве. Но чтобы подключить Telegram к Python, вам необходимо сделать следующее: в браузере откройте https://my.telegram.org и введите тот же номер мобильного телефона, который вы настроили в мобильном приложении. Например, +919423456666. Это отправит вам SMS-сообщение в бот Telegram в телефонном приложении Telegram [канал Telegram внутри Telegram]. Введите этот секретный код в следующее окно. Вы попадете в следующее окно, где вам нужно будет указать название приложения и короткое имя [bera2 bera2]. Нажмите «Далее», и вам будут представлены два важных идентификатора — api_id, api_hash. Имя пользователя уже указано, и вы установили while при создании бота — @bera1bot. Теперь только эти три параметра необходимы для доступа к входящим сообщениям в канале Telegram с помощью скрипта Python. Давайте посмотрим, как это работает…
с TelegramClient(name, api_id, api_hash) в качестве клиента:
@client.on(events.NewMessage() ) обработчик асинхронного определения (событие): асинхронно для сообщения в client.iter_messages(): print(message.text() ) client.run_until_disconnected()
Ну, это основной цикл непрерывного получения сообщений по мере их поступления в канал.
При первом запуске
При первом запуске кода Python на компьютере будут запрошены параметры сеанса. Для этого он попросит ввести тот же номер телефона, который вы использовали в своем мобильном телефоне. При вводе этого сообщения он отправит SMS в бот Telegram в телефонном приложении Telegram [канал Telegram внутри Telegram]. Введите этот секретный код в следующее окно, и файл сеанса будет создан, и ваш код Python начнет работать! Чтобы сделать ваш код по-настоящему переносимым, вам придется передать оба файла — код Python и файл @bera1bot.session вместе.
Пример проекта
Пример проекта разделен на две части: одна — отправитель, а другая — получатель. Отправитель основан на ESP32 с подключенным к нему DS18B20. Он создает простой поток данных CSV, состоящий из Date & время, полученное в реальном времени с NTP-сервера. Сложите несколько произвольных потоков данных с добавленной в последнюю очередь температурой. 09.08.2021, 06:35:42, 0746, 0876, 3278, 3563, 2795, 3012
Последние данные [3012] — температура — 30,12 градуса по Цельсию. Держите DS18B20 на ладони, и вы заметите, что значение меняется. Вся строка загружается в канал Telegram с помощью простого оператора GET ESP32.
Этого же эффекта можно достичь и с помощью компьютера, но я все же предпочитаю ESP32 в качестве отправителя, поскольку это реальный, непрерывный, небольшой, автоматический и настоящий аппаратный вычислительный способ доставки данных в Telegram без громоздкого компьютера и с использованием лишь доли мощности источника 3,3 В !!!
[Реальный проект намного сложнее. У него есть удаленный отправитель, который отправляет данные полевых датчиков по сети LoRa на другой ESP32, который, в свою очередь, передает данные в канал Telegram, используя LoRa с одной стороны и Wi-Fi с другой стороны - точно так же, как маршрутизатор]
Приемник
В этом суть нашего проекта. Вы можете получать данные на мобильный телефон, который надежно защищен и зашифрован, и вы уже настроили его на своем мобильном телефоне. Первые тестовые данные поступают только на ваш мобильный телефон! Но вы вряд ли сможете обрабатывать эти данные дальше, чтобы выполнить какую-то значимую работу, например, поместить их в веб-базу данных для отслеживания тенденций, запустить реле или запустить систему, которая будет работать по-разному в зависимости от ценности данных. Поэтому мы заменяем мобильный телефон просто подключенным к Интернету компьютером с установленным Python3. Скрипт Python соберет данные, а затем повторно отобразит их на том же терминале с той же скоростью, с которой они отправляются на отправляющей стороне. Поскольку все данные доступны в виде переменных внутри Python, их можно обрабатывать в любом случае.
В то время как другие среды, такие как thingspeak.com, могут передавать вам максимум 4 строки данных в минуту, в Telegram вы можете перекачивать до 30 строк данных в минуту, и при этом все они надежно защищены и зашифрованы. Ниже приведена строка данных, которая поступает через соединение LoRa раз в 2 секунды и принимается в терминале телеграмм Python на другом конце глобуса без потери ни одного потока.
Чтобы Python был готов к работе с Telegram, необходимо установить два модуля Python pip — python-telegram-bot и telethon.
$ pip3 установить python-telegram-bot Телемарафон по установке $ pip3
В Linux вы можете выполнить sudo для установки while. В Windows вам не нужно это делать, вместо этого достаточно просто щелкнуть мышью. Скрипт используется в версии Python3. Как только вы запустите файл сценария в том же каталоге, где находится ваш файл @bera1bot.session, данные начнут появляться бесконечно.
somnath@somnath-Satellite-L855:~$ python3 get.py
Отправитель Arduino
Эскиз Arduino очень прост и понятен. ESP32 поставляется с рядом имен пользователей и паролей Wi-Fi. Сначала он подключается к подходящему Wi-Fi-соединению. В случае неудачи он перезагружается самостоятельно и выбирает следующий идентификатор/пароль. После установления соединения он получает строку данных, а затем, используя CHAT_ID и BOTtoken, создает строку данных https, которая затем передается в телеграмму с помощью http.GET(). LED, подключенный к PIN-23, будет непрерывно мигать, пока загрузка данных происходит успешно.
Последствия
Как только вы успешно научитесь запускать пример проекта, вы сможете развернуть Telegram для реального использования. Данные или поток данных, которые вы можете передавать с помощью своего канала Telegram-бота в любую точку планеты на очень высокой скорости [одна строка данных CSV из 49 символов каждые две секунды] и с безопасностью. С другой стороны, после получения его на Python3, вы можете дополнительно обработать его для запуска своих устройств или сохранить в базе данных. При подключении к Интернету по оптоволоконному кабелю я получаю 30 показаний в минуту — одно считывание данных длиной 49 символов каждые 2 секунды, что очень хорошо, и в этом прелесть этого раунда передачи данных. Если сеть замедлится, количество загрузок уменьшится.
Спецификация:
ESP32 – от 4 до 5 долларов за штуку.
DS18B20 — 1 доллар за штуку.
LED, резистор 5,6 кОм и усилитель; Источник питания
Сомнатх Бера — заядлый пользователь программного обеспечения с открытым исходным кодом. По профессии он является экспертом в области теплоэнергетики и работает дополнительным генеральным директором в NTPC Ltd.
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба