Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Отправка данных MKR1000 в Google Таблицы

Компоненты и расходные материалы

Arduino MKR1000
× 1
Датчик температуры и влажности DHT11 (4 контакта)
× 1
Перемычки (общие)
× 1
Макет (общий)
× 1

Приложения и онлайн-сервисы

IDE Arduino
Google Таблицы

Об этом проекте

Этот проект позволяет обрабатывать данные с помощью вашего MKR1000 и отправлять их в Google Таблицы в облаке через Wi-Fi. Этот проект может быть реализован без регистрации кредитной карты или использования проприетарного API черного ящика. В этом конкретном примере я использую недорогой и широко распространенный датчик окружающей среды DHT11, однако вы можете легко изменить включенный код Arduino для любого датчика или устройства, которое вам нравится. Теперь стоит отметить, что этот проект можно легко объединить в эскизе с одним из моих связанных проектов, который загружает данные DHT11 на Thingspeak.com для создания графических диаграмм.

Это первая из четырех частей. В первой части проекта вы создадите и сконфигурируете свой собственный Google Sheet для приема ваших данных WiFi с помощью включенного кода скрипта Google App.

Часть 1. Создание и развертывание таблицы Google

1. Подпишитесь на бесплатную электронную почту Google, если у вас ее нет.

2. войдите в свою бесплатную учетную запись Google и создайте новую «Таблицу Google», это электронная таблица, которая будет заполнена значениями датчика нашего DHT через Wi-Fi. На этом этапе вам нужно будет скопировать и сохранить ключ URL вашей электронной таблицы. Этот ключ указан в URL-адресе между «/ d /» и «/ edit» вашей новой таблицы (см. Синий кружок).

3. Назовите свою электронную таблицу оригинальным именем, например «Данные окружающей среды», теперь мы должны создать наш скрипт приложения Google (похожий на JavaScript), который будет обрабатывать наши данные и правильно заполнять нашу электронную таблицу. Чтобы вставить наш скрипт приложения Google, мы сначала переходим из нашей электронной таблицы в редактор скриптов:

Инструменты → Редактор скриптов

Теперь мы перейдем на страницу редактора скриптов Google. Теперь мы можем назвать наш Gscript чем-нибудь необычным, например «My Environment GScript». На данный момент у нас осталось сделать четыре вещи на странице редактора скриптов.

A) Скопируйте и вставьте включенный код Google Script в редактор

Б) Скопируйте и вставьте ранее сохраненный ключ URL-адреса электронной таблицы (шаг 2) в правильную строку кода Google Script (между кавычками), где говорится:

  var id =''; // Идентификатор электронной таблицы  

В) Сохраните сценарий: Файл → Сохранить все .

Г) Развернуть как веб-приложение: Опубликовать- → Развернуть как веб-приложение…

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

Поле 1) Скопируйте и сохраните « URL-адрес текущего веб-приложения: «Который только что был сгенерирован, он нам понадобится позже, когда мы настроим наш API в PushingBox.

Поле 2) Сохраните версию проекта как « новая ». »На каждой итерации важно отметить, что если вы не создаете новую версию проекта для каждой редакции скрипта (если вы решите внести какие-либо изменения), ваши версии скрипта не будут обновляться в Интернете. Это противоречит интуиции, и ею легко пренебречь, но в настоящее время Google настроил эту систему именно так.

Поле 3) « Выполнить приложение как : «Установите это на« мне (здесь ваш GMail) ».

Поле 4) « У кого есть доступ к приложению : «Установите это на« любой, даже анонимный . "

Часть 2:Настройка PushingBox

Pushingbox.com выступает в качестве простого, бесплатного и удобного посредника API, позволяя нашим данным DHT быть удобными для Google Таблиц. Необходимость использования посредника API PushingBox состоит в том, чтобы превратить наши передаваемые HTTP-данные в Google-совместимые зашифрованные HTTPS-данные. Мы могли бы попытаться создать нетривиальный алгоритм шифрования, удовлетворяющий стандартным требованиям, но использовать PushingBox проще, и нам бесплатно предоставляется до 1000 запросов в день. Вдобавок нам не нужно иметь дело с каким-либо API «черного ящика», в котором мы можем вводить наши собственные параметры, но при этом не имеем большого контроля над настройкой и не имеем реального представления о том, как на самом деле работает функция. Ниже приведены шаги по настройке Pushingbox для работы с нашими данными:

1. Создайте учетную запись PushingBox с помощью Gmail.

2. Вверху нажмите «Мои службы»

.

3. Находясь в «Мои службы», перейдите в поле «Добавить службу» и нажмите «Добавить службу».

4. Служба, которую вы хотите создать, является последним элементом в списке служб и называется:” CustomURL, Создайте свой собственный сервис! ». Теперь выберите эту службу CustomUrl.

5. Откроется коробка и попросит три предмета. Заполните их, как показано ниже, затем нажмите "Отправить"

Название вашей конфигурации CustomURL:

Корневой URL: Этот URL начинается с https://script.google.com ... поскольку это ваш адрес скрипта Google, сохраненный из части 1

Метод:

6. После отправки вашей услуги вы должны создать сценарий для услуги. Для этого выберите «Мои сценарии» вверху страницы.

7. Введите подходящее имя для вашего сценария в поле «Создать сценарий или добавить устройство». После того, как вы назовете свою службу, нажмите кнопку «добавить» справа.

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

9. Откроется окно с данными, в котором вас попросят указать метод «Получить» или «Опубликовать» (мы используем метод «Получить», хотя это кажется нелогичным). Для записи всех наших данных DHT (пять точек данных) в ваш лист Google вам необходимо связать имена ваших переменных, перечисленные в вашем скрипте приложения Google, с именами, перечисленными в нашем скетче Arduino. Правильное форматирование имен в API Pushingbox выполнит эту задачу связывания. Скопируйте и вставьте следующую строку в свое поле.

 ? влажностьData =$ влажность $ &celData =$ celData $ &fehrData =$ fehrData $ &hicData =$ hicData $ &hifData =$ hifData $  

Примечание. Заявление начинается с " ? ", чтобы указать" ПОЛУЧИТЬ ".

Результат должен выглядеть следующим образом, но с вашим собственным названием сценария и номером идентификатора устройства:

Обязательно скопируйте строку «DeviceID», она понадобится вам как для предварительного тестирования на следующем шаге, так и позже для эскиза Arduino в части 4.

3. Тестирование API

Прежде чем мы перейдем к последнему этапу, на котором мы программируем MKR1000 для отправки данных нашего DHT через Интернет, было бы полезно проверить, что все, что мы сделали до сих пор, правильно. Если мы дождемся завершения аппаратной части, тогда будет труднее отследить причину любых ошибок. К счастью, у нас есть простой метод тестирования нашего кода. Мы можем просто ввести некоторые жестко запрограммированные псевдоданные в адресную строку нашего веб-браузера и проверить, правильно ли обновляется наш лист Google. Вот пример того, что вы можете скопировать и вставить в адресную строку браузера.

http://api.pushingbox.com/pushingbox?devid=(YOUR-DEVID-HERE)&humidityData=33&celData=44&fehrData=111&hicData=22&hifData=77

Если хотите, вы можете даже повторно ввести новые поддельные данные с другими значениями для последующих строк, однако помните, что у вас только 1000 запросов в день от Pushingbox, так что не сходите с ума! Если эта процедура не привела к обновлению вашей электронной таблицы, вернитесь и просмотрите части 1-3 данного руководства на предмет ошибок, прежде чем пытаться выполнить часть 4.

Часть 4

После подтверждения того, что вы смогли отправить некоторые жестко закодированные псевдоданные прямо из браузера в таблицу Google, вы готовы к следующему шагу, который включает отправку данных непосредственно из MKR1000 в таблицы Google через Pushingbox через Wi-Fi. Прежде чем вы сможете загрузить и запустить прилагаемый скетч Arduino в MKR1000, вы должны выполнить следующие три шага.

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

1. Подключение MKR1000 к DHT:это простая задача, особенно при использовании MKR1000. Я рекомендую вам питать DHT с помощью 5 вольт, которые доступны на MKR1000, указаны как 5 В. Предположительно, DHT может работать при напряжении 3,3 В, но я не нашел надежными показания DHT при более низком напряжении. У вас есть возможность использовать несколько разных выводов для ввода данных из DHT в MKR1000, но в моем эскизе я использую вывод 5 который соответствует контакту D5 на MKR1000 в верхней части платы.

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

2. Чтобы настроить IDE Arduino для работы с MKR1000, необходимо выполнить несколько шагов. Эти шаги включают загрузку двух библиотек и настройку Arduino IDE (1.6.4 или новее) с правильным пакетом платы MRK1000 (Инструменты -> Плата -> Менеджер плат). Многие из вас уже установили все необходимое программное обеспечение, для тех, кто еще не установил, ниже приведены ссылки для получения необходимых библиотек и пакета поддержки платы MKR1000. Также обратите внимание, что мне пришлось использовать предыдущую версию пакета платы MKR1000, поскольку последний пакет поддержки платы MKR1000 работал некорректно. Я надеюсь, что эта проблема будет решена к тому моменту, когда вы прочтете это.

https://www.arduino.cc/en/Reference/WiFi101

Две необходимые библиотеки для эскиза:

  • https://github.com/arduino-libraries/WiFi101
  • https://learn.adafruit.com/dht

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

3. Теперь вы готовы к заключительному этапу проекта. Вам нужно скопировать и вставить прилагаемый эскиз Arduino, настроить его для своего устройства, а затем загрузить эскиз на свой MKR1000. Скетч также передает последовательный выход со скоростью 9600 бод, поэтому вы можете отслеживать данные, отправляемые через Wi-Fi. Вам необходимо настроить следующие три поля на скетче Arduino:

А) Ваше имя Wi-Fi

Б) Ваш пароль от Wi-Fi

C) Идентификатор вашего устройства для отправки сообщений (devid)

Готово! Если все было выполнено правильно, ваш результат будет выглядеть примерно так, как на картинке ниже:

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

-SDB

Код

  • MKR1000 в Google Таблицы через PushingBox с использованием DHT
  • Скрипт Google для приема беспроводных данных в формате HTTPS
  • Строка URL PushingBox (для соединения HTTPS)
MKR1000 в Google Таблицы через PushingBox с использованием DHT Arduino
Этот скетч Arduino передает данные через WiFI в push-бокс для шифрования, а затем передает их в PushingBox для записи этих данных в ваш Google Sheet
 // --------------------- -------------------------- // Этот скетч объединен с датчиком Adafruit DHT и tdicola для библиотеки dht.h // https:// learn .adafruit.com / dht / overview // https://gist.github.com/teos0009/acad7d1e54b97f4b2a88// Другие авторы Arduino и связанный скрипт Google:// Адитья Риска Путра // Ахмед Реза Рафсанзани // Райан Эко Сапутро // См. Также:// http://jarkomdityaz.appspot.com/////ELINS UGM //// Изменено для проекта Hackster.io для MKR1000 // Стивен Борсей (Портленд, Орегон, США) // Начиная с Arduino не может https, нам нужно использовать Pushingbox API (использует http) для запуска // скрипта Google (использует https). В качестве альтернативы используйте шифрование SecureWifi от Ивана # include  #include "DHT.h" #define DHTPIN 5 // к какому контакту мы подключены, pin1 - это 5-й контакт с конца // Раскомментируйте любой тип датчика DHT, который вы используете ! #define DHTTYPE DHT11 // DHT 11 // # define DHTTYPE DHT21 // DHT 21 // # define DHTTYPE DHT22 // DHT 22DHT dht (DHTPIN, DHTTYPE); const char WEBSITE [] ="api.pushingbox.com"; // pushingbox API serverconst String devid ="YOUR_DEVICEID"; // идентификатор устройства на Pushingbox для нашего сценария const char * MY_SSID ="YOUR SSID"; const char * MY_PWD ="YOUR WiFi PASSWORD"; int status =WL_IDLE_STATUS; // если вы не хотите использовать DNS (и уменьшите размер скетча size) // используйте числовой IP вместо имени для сервера:// IPAddress server (74,125,232,128); // числовой IP-адрес для Google (без DNS) void setup () {// Инициализируем последовательный порт и ждем открытия порта:Serial.begin (9600); в то время как (! серийный) {; // ждем подключения последовательного порта. Требуется только для собственного USB-порта} // проверка наличия экрана:if (WiFi.status () ==WL_NO_SHIELD) {Serial.println («WiFi Shield отсутствует»); // не продолжать:while (true); } // пытаемся подключиться к сети Wi-Fi:while (status! =WL_CONNECTED) {Serial.print ("Попытка подключиться к SSID:"); Serial.println (MY_SSID); // Подключение к сети WPA / WPA2. Измените эту строку при использовании сети open / WEP status =WiFi.begin (MY_SSID, MY_PWD); // ждем 10 секунд подключения:delay (10000); } Serial.println («Подключен к Wi-Fi»); printWifiStatus (); } void loop () {// Ожидание между измерениями. задержка (10000); // предпочитаю использовать число с плавающей запятой, но размер пакета или преобразование с плавающей запятой не работает // в будущем будут пересмотрены с помощью функции преобразования строки или числа с плавающей запятой int влажностьData =dht.readHumidity (); // Считываем температуру в градусах Цельсия (по умолчанию) int celData =dht.readTemperature (); // Считываем температуру по Фаренгейту (isFahrenheit =true) int fehrData =dht.readTemperature (true); // Проверяем, нет ли сбоев при чтении, и выходим раньше (чтобы повторить попытку). if (isnan (влажностьData) || isnan (celData) || isnan (fehrData)) {Serial.println ("Не удалось прочитать с датчика DHT!"); возвращение; } // Вычислить индекс тепла в градусах Фаренгейта (по умолчанию) int hifData =dht.computeHeatIndex (fehrData, влажностьData); // Вычислить индекс тепла в градусах Цельсия (isFahreheit =false) int hicData =dht.computeHeatIndex (celData, влажностьData, false); Serial.print ("Влажность:"); Serial.print (влажностьДанные); Serial.print ("% \ t"); Serial.print ("Температура:"); Serial.print (celData); Serial.print ("* C"); Serial.print (fehrData); Serial.print ("* F \ t"); Serial.print («Тепловой индекс:»); Serial.print (hicData); Serial.print ("* C"); Serial.print (hifData); Serial.println ("* F \ n"); Serial.println ("\ nОтправка данных на сервер ..."); // если вы установили соединение, сообщите через последовательный порт:WiFiClient client; // Создание экземпляра объекта WiFi, область действия может быть отсюда или глобально // Служба API с использованием WiFi-клиента через PushingBox, а затем ретранслируется в Google if (client.connect (WEBSITE, 80)) {client.print ("GET / pushingbox? Devid =" + devid + "&влажностьData =" + (строка) влажность + "&celData =" + (строка) celData + "&fehrData =" + (строка) fehrData + "&hicData =" + (строка) hicData + "&hifData =" + (строка) hifData); // HTTP 1.1 обеспечивает постоянное соединение, разрешая пакетные запросы // или конвейерно к выходному буферу client.println ("HTTP / 1.1"); client.print ("Хост:"); client.println (ВЕБ-САЙТ); client.println («Пользовательский агент:MKR1000 / 1.0»); // для MKR1000, в отличие от esp8266, не закрывать соединение client.println (); Serial.println ("\ nДанные отправлены"); }} void printWifiStatus () {// распечатываем SSID сети, к которой вы подключены:Serial.print ("SSID:"); Serial.println (WiFi.SSID ()); // выводим IP-адрес вашего WiFi-экрана:IPAddress ip =WiFi.localIP (); Serial.print ("IP-адрес:"); Serial.println (ip); // выводим мощность полученного сигнала:long rssi =WiFi.RSSI (); Serial.print ("мощность сигнала (RSSI):"); Серийный принт (RSSI); Serial.println ("дБм");} 
Скрипт Google для приема беспроводных данных в формате HTTPS JavaScript
Вставьте это в редактор сценариев вашей таблицы Google, чтобы получить данные о беспроводной сети. Помните, что он должен быть зашифрован / формат сертификата безопасности HTTPS, поэтому я использую PushingBox
 // -------------------------- --------------------- // Первоначально опубликовано Mogsdad @ Stackoverflow // Изменено для jarkomdityaz.appspot.com// Изменено для Hackster.io Стивеном Борсей // -----------------------------------------------/*ПОЛУЧИТЬ запрос запроса:https://script.google.com/macros/s/  / exec? celData =data_here ----------------------- ----------------------------------------------- GScript, PushingBox и Arduino / ESP8266 Переменные в порядке:влажностьDatcelDatafehrDatahicDatahifData ----------------------------------------- ----------- * // * Использование API электронных таблиц * / function doGet (e) {Logger.log (JSON.stringify (e)); // просмотр параметров var result ='Ok'; // предполагаем успех if (e.parameter ==undefined) {result ='No Parameters'; } else {var id =' 
Строка URL PushingBox (для клея HTTPS) HTML
Это ваша строка для подключения ваших имен переменных Arduino / MKR1000, передаваемых в Google Таблицы с точно такими же именами. Использование PushingBox в качестве средства защиты, обеспечивающей RESTfully для посредника.
? ВлажностьData =$ влажность 

Изготовленные на заказ детали и корпуса

другие данные
другие беспроводные сети https://github.com/sborsay/Arduino_Wireless

Схема

Макет

Производственный процесс

  1. MATRIX VOICE GOOGLE ASSISTANT - MATRIX VOICE PROJECT
  2. Отправка данных датчика от одного Arduino к другому с помощью Firebase
  3. Создание монитора Ambilight с помощью Arduino
  4. Беспроводная магнитная передача данных
  5. Игра Arduino Pong - OLED-дисплей
  6. Arduino - Сделать снимок - Загрузить на Google Диск
  7. Детектор звуковой частоты
  8. Клон Arduino Tamagotchi - цифровой питомец
  9. Манипулятор беспроводного переключателя света
  10. Tech-TicTacToe