Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Kirim Data MKR1000 ke Google Spreadsheet

Komponen dan persediaan

Arduino MKR1000
× 1
Sensor Suhu &Kelembaban DHT11 (4 pin)
× 1
Kabel jumper (generik)
× 1
Breadboard (generik)
× 1

Aplikasi dan layanan online

Arduino IDE
Google Spreadsheet

Tentang proyek ini

Proyek ini memungkinkan Anda untuk memproses data dengan MKR1000 Anda dan mengirimkan data tersebut ke Google Spreadsheet di cloud melalui WiFi. Proyek ini dapat diselesaikan tanpa pendaftaran kartu kredit atau penggunaan API kotak hitam berpemilik. Untuk contoh khusus ini saya menggunakan sensor lingkungan DHT11 yang murah dan ada di mana-mana, namun Anda dapat dengan mudah mengubah kode Arduino yang disertakan untuk sensor atau perangkat apa pun yang Anda suka. Penting untuk menunjukkan sekarang bahwa proyek ini dapat dengan mudah digabungkan dalam sketsa dengan salah satu proyek terkait saya, yang mengunggah data DHT11 ke Thingspeak.com untuk pembuatan bagan grafis.

Ini adalah bagian pertama dari empat bagian. Di bagian pertama proyek, Anda akan menyiapkan dan mengonfigurasi Google Sheet Anda sendiri untuk menerima Data WiFi Anda dengan menggunakan kode Google App Script yang disertakan.

Bagian 1:Membuat dan Menerapkan Google Sheet Anda

1. Daftar untuk mendapatkan email Google gratis jika Anda belum memilikinya.

2. masuk ke akun Google gratis Anda dan buat "Google Sheet" baru, ini adalah spreadsheet yang akan diisi oleh nilai sensor DHT kami melalui WiFi. Pada titik ini Anda perlu menyalin dan menyimpan kunci URL spreadsheet Anda. Kunci ini tercantum di URL antara “/d/” dan “/edit” spreadsheet baru Anda (lihat lingkaran biru).

3. Beri nama Spreadsheet Anda sesuatu yang asli seperti "Data Lingkungan", sekarang kita harus membuat Google App Script (mirip dengan JavaScript) yang akan memproses data kita dan mengisi spreadsheet dengan benar. Untuk menyisipkan Google App Script, pertama-tama kita menavigasi dari spreadsheet ke Editor Skrip:

Alat →Editor Skrip

Kita sekarang akan berada di halaman Google Script Editor. Sekarang kita dapat memberi nama Gscript kita sesuatu yang ekstra-kreatif seperti "My Environmental GScript". Pada titik ini, kami memiliki empat hal yang harus dilakukan di halaman editor Skrip.

A) Salin dan Tempel kode Google Script yang disertakan ke dalam Editor

B) Salin dan tempel kunci URL spreadsheet yang disimpan sebelumnya (langkah 2) ke baris yang benar dalam kode Google Script (di antara tanda kutip) yang bertuliskan:

var id =' '; // ID Spreadsheet 

C) Simpan skrip:File→Save All

D) Terapkan sebagai Aplikasi web:Publish-→ Terapkan sebagai Aplikasi web…

4. Langkah terakhir kami untuk menyiapkan lembar Google kami akan melibatkan konfigurasi parameter penerapan Web. Anda harus mengatur semua bidang ini dengan benar. Jika Anda tidak menyetel keempat bidang dengan tepat, spreadsheet Anda tidak akan berfungsi dengan baik.

Bidang 1) Salin dan Simpan “URL aplikasi web saat ini: “ yang baru saja dibuat, kita akan membutuhkannya nanti ketika kita mengkonfigurasi API kita di PushingBox.

Bidang 2) Simpan versi proyek sebagai “baru ” pada setiap iterasi, penting untuk dicatat bahwa jika Anda tidak membuat versi proyek baru untuk setiap revisi skrip yang Anda buat (jika Anda memutuskan untuk membuat revisi), revisi skrip Anda tidak akan diperbarui di web. Ini kontra-intuitif, dan mudah diabaikan, tetapi saat ini sistem ini dikonfigurasi oleh Google.

Bidang 3) “Jalankan aplikasi sebagai : “ setel ini ke “saya(GMail Anda di sini) ”.

Kolom 4) “Siapa yang memiliki akses ke aplikasi : “ setel ini ke "siapa pun, bahkan anonim ."

Bagian 2:Konfigurasi PushingBox

Pushingbox.com berfungsi sebagai perantara API yang sederhana, gratis, dan mudah dalam memungkinkan data DHT kami cocok untuk Google Spreadsheet. Kebutuhan untuk menggunakan perantara PushingBox API adalah untuk mengubah data yang ditransmisikan HTTP menjadi data terenkripsi HTTPS yang sesuai dengan Google. Kami dapat mencoba membuat algoritme enkripsi non-sepele untuk memenuhi persyaratan standar tetapi menggunakan PushingBox lebih mudah, dan kami diberikan hingga 1.000 permintaan per hari secara gratis. Selain itu, kami tidak harus berurusan dengan API "Kotak Hitam" di mana kami dapat memasukkan parameter kami sendiri, tetapi kemudian mendapatkan sedikit kendali atas penyesuaian, dan tidak ada gagasan nyata tentang bagaimana fungsi tersebut sebenarnya bekerja. Berikut adalah langkah-langkah untuk mengonfigurasi Pushingbox agar berfungsi dengan data kami:

1. Buat akun PushingBox menggunakan Gmail Anda.

2. Di bagian atas klik “Layanan Saya”

3. Saat berada di “Layanan Saya”, buka kotak “Tambahkan layanan” dan klik “Tambahkan layanan”.

4. Layanan yang ingin Anda buat adalah item terakhir dalam daftar layanan dan disebut:”CustomURL, Setel layanan Anda sendiri ! ”. Sekarang pilih layanan CustomUrl ini.

5. Sebuah kotak akan terbuka dan meminta tiga item. Isi seperti di bawah ini, lalu tekan kirim

Nama konfigurasi URL Khusus Anda:

URL Akar: Url ini akan dimulai dengan https://script.google.com... karena ini adalah alamat Google Script Anda yang disimpan dari Bagian 1

Metode:

6. Setelah mengirimkan layanan Anda, Anda sekarang harus membuat skenario untuk layanan tersebut. Untuk melakukannya, pilih “Skenario Saya” di bagian atas halaman.

7. Masukkan nama yang sesuai untuk skenario Anda di kotak “Buat skenario atau tambahkan perangkat”. Setelah Anda memberi nama layanan Anda, klik tombol “tambah” di sebelah kanan.

8. Sekarang akan diminta untuk "Tambahkan tindakan untuk skenario Anda" Sekarang Anda harus memilih tombol "Tambahkan tindakan ke layanan ini" yang tercantum di sebelah nama layanan yang Anda buat pada langkah sebelumnya. Ini menetapkan skenario baru Anda ke layanan baru Anda.

9. Sebuah kotak data akan terbuka menanyakan metode "Dapatkan" atau "Posting" Anda (kami menggunakan metode Dapatkan meskipun ini tampaknya kontra-intuitif). Untuk merekam semua data DHT kami (lima titik data) ke dalam lembar Google Anda, Anda perlu menautkan nama variabel Anda yang tercantum dalam Skrip Aplikasi Google Anda ke nama-nama yang tercantum dalam sketsa Arduino kami. Memformat nama dengan benar di Pushingbox API akan menyelesaikan tugas penautan ini. Salin dan tempel string berikut ke dalam kotak Anda.

?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$ 

Catatan: Pernyataan dimulai dengan " ? " untuk menunjukkan "DAPATKAN".

Hasilnya akan terlihat seperti berikut, tetapi dengan nama skenario dan nomor ID Perangkat Anda sendiri:

Pastikan untuk menyalin string "DeviceID" Anda, Anda akan memerlukannya untuk pengujian awal di langkah berikutnya, dan nanti untuk Sketsa Arduino di Bagian 4.

3. Menguji API

Sebelum kita melanjutkan ke langkah terakhir, di mana kita memprogram MKR1000 untuk mengirim data DHT kita melalui web, akan sangat membantu untuk menguji apakah semua yang telah kita lakukan sejauh ini benar. Jika kita menunggu untuk menyelesaikan bagian perangkat keras maka penyebab kesalahan mungkin lebih sulit untuk dilacak. Untungnya kami memiliki metode sederhana untuk menguji kode kami sejauh ini. Kita bisa langsung memasukkan beberapa pseudo-data hard-code ke bilah alamat browser web kita dan memeriksa apakah lembar Google kita diperbarui dengan benar. Berikut adalah contoh dari apa yang dapat Anda salin dan tempel ke bilah alamat browser Anda.

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

Jika Anda suka, Anda bahkan dapat memasukkan kembali data palsu baru dengan nilai yang berbeda untuk baris berikutnya, namun ingat, Anda hanya memiliki 1.000 permintaan per hari dari Pushingbox jadi jangan gila! Jika prosedur ini tidak memperbarui spreadsheet Anda, kembali dan tinjau Bagian 1 -3 dari instruksi ini untuk menemukan kesalahan sebelum mencoba Bagian 4.

Bagian 4

Setelah mengonfirmasi bahwa Anda dapat memasukkan beberapa data semu yang dikodekan langsung dari browser Anda ke Google Sheet Anda, Anda sekarang siap untuk langkah berikutnya yang melibatkan pengiriman data langsung dari MKR1000 ke Google Sheets melalui Pushingbox melalui WiFi. Sebelum Anda dapat mengunggah dan menjalankan sketsa Arduino yang disertakan ke MKR1000, Anda harus menyelesaikan tiga langkah berikut.

Perangkat Keras

1. Menghubungkan MKR1000 ke DHT:Ini adalah tugas sederhana, terutama jika menggunakan MKR1000. Saya sarankan Anda menyalakan DHT dengan 5 volt, yang tersedia di MKR1000, terdaftar sebagai 5v. Seharusnya DHT dapat bekerja pada 3.3v tetapi saya belum menemukan pembacaan DHT yang dapat diandalkan pada tegangan yang lebih rendah. Anda memiliki pilihan untuk menggunakan sejumlah pin yang berbeda untuk memasukkan data dari DHT ke MKR1000, tetapi dalam sketsa saya, saya menggunakan Pin 5 yang dipetakan ke Pin D5 di MKR1000 di bagian atas papan.

Perangkat Lunak(1)

2. Ada beberapa langkah untuk menyiapkan Arduino IDE agar berfungsi dengan MKR1000 Anda. Langkah-langkah ini termasuk mengunduh dua perpustakaan dan mengonfigurasi Arduino IDE (1.6.4 atau lebih baru) dengan paket Papan MRK1000 yang benar (Alat-->Board-->Boards Manager). Banyak dari Anda telah menginstal semua perangkat lunak yang Anda butuhkan, bagi yang belum, di bawah ini adalah tautan untuk mengambil pustaka yang dibutuhkan dan paket dukungan papan MKR1000. Perhatikan juga bahwa saya harus menggunakan paket Papan MKR1000 versi sebelumnya karena paket dukungan papan MKR1000 terbaru tidak berfungsi dengan benar. Saya berharap masalah ini telah teratasi pada saat Anda membaca ini.

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

Dua perpustakaan yang diperlukan untuk sketsa:

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

Perangkat Lunak(2)

3. Anda sekarang siap untuk langkah terakhir proyek, Anda perlu menyalin dan menempelkan sketsa Arduino yang disertakan, menyesuaikannya untuk perangkat Anda, dan kemudian mengunggah sketsa ke MKR1000 Anda. Sketsa juga menyampaikan output serial pada 9600 baud sehingga Anda dapat memantau data yang dikirim melalui WiFi. Tiga bidang pada sketsa Arduino yang harus Anda sesuaikan adalah:

A) Nama WiFi Anda

B) Kata Sandi WiFi Anda

C) ID Perangkat kotak Dorong Anda (devid)

Itu saja, Anda sudah selesai! Jika semuanya selesai dengan benar, output Anda akan terlihat seperti gambar di bawah ini:

Terima kasih kepada semua orang yang membangun sebagian besar komponen perangkat lunak untuk proyek ini. Saya mencantumkan nama mereka di komentar kode untuk atribusi yang tepat. Silakan gunakan bagian apa pun dari proyek ini yang Anda butuhkan untuk membuat keajaiban Anda sendiri.

-SDB

Kode

  • MKR1000 ke Google Spreadsheet melalui PushingBox menggunakan DHT
  • Google Script untuk menerima data nirkabel dalam format HTTPS
  • String URL PushingBox (untuk lem HTTPS)
MKR1000 ke Google Spreadsheet melalui PushingBox menggunakan DHTArduino
Sketsa Arduino ini mendorong data melalui WiFI ke mendorong kotak untuk enkripsi kemudian ke PushingBox untuk mencatat data tersebut ke Google Sheet Anda
//--------------------- --------------------------//Sketsa ini digabung dari sensor DHT Adafruit dan tdicola untuk dht.h library// https://learn .adafruit.com/dht/overview// https://gist.github.com/teos0009/acad7d1e54b97f4b2a88//other Penulis Arduino dan Google Script yang terkait://Aditya Riska Putra//Ahmed Reza Rafsanzani//Ryan Eko Saputro// Lihat Juga://http://jarkomdityaz.appspot.com/////ELINS UGM////Dimodifikasi untuk proyek Hackster.io untuk MKR1000 //oleh Stephen Borsay(Portland, OR, USA)//Sejak Arduino tidak bisa https, kita perlu menggunakan Pushingbox API (menggunakan http) untuk menjalankan // Google Script (menggunakan https). Sebagai alternatif, gunakan enkripsi SecureWifi Ivan#include #include "DHT.h"#define DHTPIN 5 // pin apa yang kita sambungkan, pin1 adalah pin ke-5 dari ujung// Batalkan komentar jenis sensor DHT apa pun yang Anda gunakan !#define DHTTYPE DHT11 // DHT 11//#define DHTTYPE DHT21 // DHT 21//#define DHTTYPE DHT22 // DHT 22DHT dht(DHTPIN,DHTTYPE);const char SITUS WEB[] ="api.pushingbox.com"; //pushingbox API serverconst String devid ="YOUR_DEVICEID"; //device ID pada Pushingbox untuk Scenarioconst char* MY_SSID ="YOUR SSID";const char* MY_PWD ="YOUR WiFi PASSWORD";int status =WL_IDLE_STATUS;// jika Anda tidak ingin menggunakan DNS (dan kurangi sketsa Anda size)// gunakan IP numerik sebagai ganti nama untuk server://IPAddress server(74.125.232.128); // IP numerik untuk Google (tanpa DNS)void setup() { //Inisialisasi serial dan tunggu port terbuka:Serial.begin(9600); while (!Serial) {; // tunggu port serial terhubung. Diperlukan hanya untuk port USB asli } // periksa keberadaan pelindung:if (WiFi.status() ==WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // jangan lanjutkan:while (true); } // mencoba menyambung ke jaringan Wifi:while (status !=WL_CONNECTED) { Serial.print("Mencoba menyambung ke SSID:"); Serial.println(MY_SSID); //Sambungkan ke jaringan WPA/WPA2. Ubah baris ini jika menggunakan status jaringan terbuka/WEP =WiFi.begin(MY_SSID, MY_PWD); // tunggu 10 detik untuk koneksi:delay(10000); } Serial.println("Tersambung ke wifi"); printWifiStatus(); }void loop() { // Tunggu di antara pengukuran. penundaan (10000); //lebih suka menggunakan float, tetapi ukuran paket atau konversi float tidak berfungsi //akan merevisi di masa mendatang dengan fungsi string atau fungsi konversi float int moistureData =dht.readHumidity(); // Baca suhu sebagai Celcius (default) int celData =dht.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit =true) int fehrData =dht.readTemperature(true); // Periksa apakah ada pembacaan yang gagal dan keluar lebih awal (untuk mencoba lagi). if (isnan(humidityData) || isnan(celData) || isnan(fehrData)) { Serial.println("Gagal membaca dari sensor DHT!"); kembali; } // Hitung indeks panas dalam Fahrenheit (default) int hifData =dht.computeHeatIndex(fehrData, moistureData); // Hitung indeks panas dalam Celcius (isFahreheit =false) int hicData =dht.computeHeatIndex(celData, moistureData, false); Serial.print("Kelembaban :"); Serial.print(Data kelembaban); Serial.print("%\t"); Serial.print("Suhu :"); Serial.print(celData); Serial.print("*C"); Serial.print(fehrData); Serial.print("*F\t"); Serial.print("Indeks panas:"); Serial.print(hicData); Serial.print("*C"); Serial.print(hifData); Serial.println(" *F\n");Serial.println("\nMengirim Data ke Server..."); // jika Anda mendapatkan koneksi, laporkan kembali melalui serial:WiFiClient client; //Instansiasi objek WiFi, dapat dicakup dari sini atau Secara global //layanan API menggunakan Klien WiFi melalui PushingBox kemudian diteruskan ke Google if (client.connect(WEBSITE, 80)) { client.print("GET /pushingbox?devid=" + devid + "&humidityData=" + (String) kelembabanData + "&celData=" + (String) celData + "&fehrData=" + (String) fehrData + "&hicData=" + (String) hicData + "&hifData=" + (String) hifData ); // HTTP 1.1 menyediakan koneksi persisten, memungkinkan permintaan batch // atau disalurkan ke buffer output client.println(" HTTP/1.1"); client.print("Tuan rumah:"); klien.println(SITUS WEB); client.println("Agen-Pengguna:MKR1000/1.0"); //untuk MKR1000, tidak seperti esp8266, jangan tutup koneksi client.println(); Serial.println("\nData Terkirim"); }}void printWifiStatus() { // mencetak SSID dari jaringan yang terhubung dengan Anda:Serial.print("SSID:"); Serial.println(WiFi.SSID()); // cetak alamat IP pelindung WiFi Anda:IPAddress ip =WiFi.localIP(); Serial.print("Alamat IP:"); Serial.println(ip); // mencetak kekuatan sinyal yang diterima:long rssi =WiFi.RSSI(); Serial.print("kekuatan sinyal (RSSI):"); Serial.print(rssi); Serial.println(" dBm");}
Google Script untuk menerima data nirkabel dalam format HTTPSJavaScript
Rekatkan ini ke Editor Skrip Google Sheet Anda untuk menerima data Nirkabel Anda. Ingat itu harus dienkripsi/sertifikat keamanan format HTTPS, itu sebabnya saya menggunakan PushingBox
//-------------------------- ---------------------//Awalnya diterbitkan oleh Mogsdad@Stackoverflow//Dimodifikasi untuk jarkomdityaz.appspot.com//Dimodifikasi untuk Hackster.io oleh Stephen Borsay// -----------------------------------------------/*DAPATKAN permintaan permintaan:https://script.google.com/macros/s//exec?celData=data_here----------------------- ----------------------------------------------- GScript, PushingBox dan Variabel Arduino/ESP8266 secara berurutan:humidityDatcelDatafehrDatahicDatahifData----------------------------------------- -----------*//* Menggunakan spreadsheet API */function doGet(e) { Logger.log( JSON.stringify(e) ); // lihat parameter var result ='Oke'; // asumsikan sukses if (e.parameter ==undefined) { result ='No Parameters'; } else { var id =' 
String URL PushingBox (untuk lem HTTPS)HTML
Ini adalah string Anda untuk menghubungkan nama variabel Arduino/MKR1000 Anda yang dikirim ke Google Sheets dengan nama yang sama persis. Menggunakan PushingBox sebagai keamanan memungkinkan perantara dengan tenang.
?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$

Suku cadang dan penutup khusus

data lain
nirkabel lainnyahttps://github.com/sborsay/Arduino_Wireless

Skema

tata letak

Proses manufaktur

  1. MATRIX VOICE GOOGLE ASSISTANT – MATRIX VOICE PROJECT
  2. Kirim data sensor dari satu Arduino ke Arduino lainnya menggunakan Firebase
  3. Membuat Monitor Ambilight Menggunakan Arduino
  4. Transfer Data Magnetik Nirkabel
  5. Game Arduino Pong - Tampilan OLED
  6. Arduino - Ambil Gambar - Unggah ke Google Drive
  7. Detektor Frekuensi Audio
  8. Klon Arduino Tamagotchi - Hewan Peliharaan Digital
  9. Manipulator Saklar Lampu Nirkabel
  10. Tech-TicTacToe