Оглавление:

Данные о погоде с использованием Google Таблиц и Google Script: 7 шагов
Данные о погоде с использованием Google Таблиц и Google Script: 7 шагов

Видео: Данные о погоде с использованием Google Таблиц и Google Script: 7 шагов

Видео: Данные о погоде с использованием Google Таблиц и Google Script: 7 шагов
Видео: Подключаемся к API с помощью Google Sheets Apps Script 2024, Ноябрь
Anonim
Данные о погоде с использованием Google Таблиц и Google Script
Данные о погоде с использованием Google Таблиц и Google Script

В этом блоге мы собираемся отправлять показания датчика SHT25 в таблицы Google с помощью Adafruit huzzah ESP8266, который помогает отправлять данные в Интернет.

  • Отправка данных в ячейку таблицы Google - очень полезный и простой способ сохранить данные в табличной форме в Интернете.
  • Вместо того, чтобы использовать какой-либо специальный мост, например, толкать ящик или MQTT NODE RED или любой другой тип REST API, мы собираемся отправлять данные с помощью скрипта Google, который легко получает данные от датчика, используя ссылку на скрипт, предоставленную приложение google script после публикации
  • Мы можем использовать скрипт для отправки данных из таблицы Google, документов или даже на диск Google.
  • Просто не заканчивайте здесь, вы можете подключить листы Google к любому веб-приложению, которое обменивается данными с пользователями так, как они хотели.
  • Никаких дополнительных сборов, в отличие от других онлайн-серверов здесь, не требуется, и вы можете хранить данные до 10 ГБ максимум в учетной записи пользователя и можете использовать
  • Один из лучших способов - вы можете легко научиться подключать данные к Интернету с помощью такого рода приложений реального времени.
  • Мы собираемся использовать соединение I2C, которое выполняет протокол ведущий-ведомый для гибкого обмена данными с таблицами Google.
  • Платформа протокола I2C соединяет аппаратное обеспечение датчика и одновременно работает примерно с 256 датчиками, используя только 2 проводных подтягивания для передачи данных датчика на 8-битном оборудовании.

Шаг 1. Аппаратное обеспечение

Наборы Adafruit Feather HUZZAH

Доска Adafruit Feather Huzzah

Встроенный адаптер Adafruit I2C и USB-адаптер

Датчик температуры и влажности SHT25

Кабель I2C

Шаг 2: Как работает материал

Получение показаний датчиков в реальном времени через ESP8266 и отправка данных на различные облачные платформы очень просто.

Мы собираемся использовать библиотеку Wire.h в Arduino IDE для создания двухпроводной связи между Adafruit Huzzah Board и модулем I2C датчика SHT25 и кабелем I2C.

Примечание. Чтобы избежать сложной структуры проводки, я собираюсь использовать адаптер I2C для Adafruit Huzzah, предназначенный для подключения датчика I2C.

Чтобы новичок мог настроить Esp8266, вы должны пройти настройку ESP8266.

Сначала инициализируйте библиотеки:

  • Библиотека проводов
  • ESP8266Wi-Fi
  • WiFiClientSecure

Шаг 3: процесс выполнения модуля I2C в среде Arduino IDE

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

Инициализировать регистры в двухпроводном протоколе I2C для модуля датчика I2C

#define Addr 0x40

  • Запустите передачу I2C, инициализируйте регистры и запросите 2 байта данных, откуда мы будем читать данные датчика.
  • Если будут доступны 2 байта данных, прочтите данные датчика и, используя указанные ниже формулы, мы преобразуем желаемые значения.

плавающая влажность = (((данные [0] * 256.0 + данные [1]) * 125.0) / 65536.0) - 6;

float cTemp = (((данные [0] * 256.0 + данные [1]) * 175.72) / 65536.0) - 46,85;

float fTemp = (cTemp * 1.8) + 32;

Распечатайте значения на экране монитора последовательного порта

Шаг 4. Подключение ESP8266 к Wi-Fi и электронной таблице Google

После выполнения модулей I2C мы узнаем, как получать данные и с помощью библиотек WiFi и идентификатора хоста, а также ключей API для отправки данных в таблицы Google.

  • Определите учетные данные Wi-Fi глобально в ESP8266, что поможет нам подключить плату к Интернету.
  • Поскольку мы собираемся использовать HTTP-клиент и будем определять протокол HTTPS = 443 для защиты пути HTTP, поскольку сценарий будет работать только с безопасным путем.
  • Инициализировать данные хоста в коде

const char * host = "script.google.com";

const int httpsPort = 443;

Строка SCRIPT_ID = "укажите идентификатор сценария, указанный в снимках";

Примечание. Идентификатор скрипта упоминается в «URL-адресе веб-приложений», в то время как код Gscript будет опубликован, просто скопируйте и вставьте идентификатор, указанный ниже, и инициализируйте его в приведенных выше командах

  • Также, используя volatile с переменной, мы собираемся инициализировать переменную глобально, которая извлекает данные из модуля I2C и отправляет их в URL-скрипт, который затем отправит данные в пункт назначения.
  • Используя ESP8266 WiFi Library, мы сможем подключить плату к Интернету.
  • Данные датчика будут размещаться на локальном сервере каждые 5 секунд.
  • С помощью URL-скрипта данные будут размещаться на опубликованной ссылке Google script Active page каждые 15 секунд.

Шаг 5. Автоматизируйте таблицу Google с помощью редактора GScript

Автоматизируйте таблицу Google с помощью редактора GScript
Автоматизируйте таблицу Google с помощью редактора GScript
Автоматизируйте таблицу Google с помощью редактора GScript
Автоматизируйте таблицу Google с помощью редактора GScript
Автоматизируйте таблицу Google с помощью редактора GScript
Автоматизируйте таблицу Google с помощью редактора GScript

Поскольку у всех нас есть учетная запись Google для входа в таблицу Google с помощью своей учетной записи

  • Укажите значения, которые вам нужно получить от датчика, подключенного к ESP8266.
  • Перейдите в Инструменты> Редактор скриптов.
  • Используйте функцию «Doget» для получения событий
  • В функции «Doget» для инициализации ключа API электронной таблицы, а также для подключения активного листа, на который вы хотите отправить значения датчиков.
  • С помощью функции автоматизации, упомянутой в коде, можно легко представить данные в строках и столбцах.
  • Наконец, сохраните данные и нажмите «Опубликовать» >> Нажмите «Развернуть как веб-приложения».
  • Убедитесь, что всякий раз, когда будут какие-либо изменения, выберите «версия проекта» >> «Новый» >> нажмите «обновить».

Текущий URL-адрес веб-приложения будет выглядеть следующим образом:

script.google.com/macros/s/[GScript ID »/ exec:

далее используется в коде ESP8266 для получения данных с датчиков

Соединения с хостингом Мы собираемся использовать запрос HTTPS Get для подключения данных к идентификатору хоста, указанному в редакторе gscript, где мы дополнительно кодировали наши данные для подключения к листу Google.

функция doGet (e) {Logger.log (JSON.stringify (e)); // просмотр параметров var result = 'Ok'; // предполагаем успех if (e.parameter == 'undefined') {result = 'No Parameters'; } еще {var sheet_id = ''; // Идентификатор электронной таблицы var sheet = SpreadsheetApp.openById (sheet_id).getActiveSheet (); var newRow = sheet.getLastRow () + 1; var rowData = ; } Logger.log (JSON.stringify (rowData)); // Записываем новую строку ниже var newRange = sheet.getRange (newRow, 1, 1, rowData.length); newRange.setValues ([rowData]); }

Шаг 6: Ограничения:

Ограничения
Ограничения
  • Этот проект ограничен только хранением данных датчика I2C в таблицах Google.
  • Мы используем запрос HTTPS GET для получения значений через функции I2C.
  • Нам нужно изменить значение в строковом формате, а затем отправить данные по URL-ссылке gscript.

Шаг 7: код, кредиты, ссылка

Код на Github:

github.com/varul29/SHT25_GoogleSheets_Goog…

Ссылка

Код I2C:

Руководство Google Script:

Встроенный магазин:

Блог с учебными пособиями:

Рекомендуемые: