สารบัญ:

ข้อมูลสภาพอากาศโดยใช้ Google ชีตและ Google Script: 7 ขั้นตอน
ข้อมูลสภาพอากาศโดยใช้ Google ชีตและ Google Script: 7 ขั้นตอน

วีดีโอ: ข้อมูลสภาพอากาศโดยใช้ Google ชีตและ Google Script: 7 ขั้นตอน

วีดีโอ: ข้อมูลสภาพอากาศโดยใช้ Google ชีตและ Google Script: 7 ขั้นตอน
วีดีโอ: Google Apps Script ตอนที่ 1: เขียน Code จัดการข้อมูลใน Google Sheet ด้วยภาษา Java Script เบื้องต้น 2024, กรกฎาคม
Anonim
ข้อมูลสภาพอากาศโดยใช้ Google ชีตและ Google Script
ข้อมูลสภาพอากาศโดยใช้ Google ชีตและ Google Script

ใน Blogtut นี้ เราจะส่งการอ่านเซ็นเซอร์ SHT25 ไปยัง Google ชีตโดยใช้ Adafruit huzzah ESP8266 ซึ่งช่วยในการส่งข้อมูลไปยังอินเทอร์เน็ต

  • การส่งข้อมูลไปยังเซลล์ชีตของ Google เป็นวิธีที่มีประโยชน์และเป็นพื้นฐานในการบันทึกข้อมูลในรูปแบบตารางออนไลน์
  • แทนที่จะใช้บริดจ์พิเศษใดๆ เช่น ผลักกล่อง หรือ MQTT NODE RED หรือ REST API อื่นๆ เราจะส่งข้อมูลโดยใช้ google script ซึ่งรับข้อมูลจากเซ็นเซอร์อย่างง่ายดายโดยใช้สคริปต์ ลิงก์ที่จัดทำโดย แอปพลิเคชันสคริปต์ของ Google หลังจากเผยแพร่
  • เราสามารถใช้สคริปต์เพื่อส่งข้อมูลจาก Google ชีต เอกสาร หรือแม้แต่ไปยัง Google ไดรฟ์
  • อย่าเพิ่งจบที่นี่ คุณสามารถเชื่อมต่อ Google ชีตกับแอปพลิเคชันบนเว็บที่แบ่งปันข้อมูลกับผู้ใช้ตามที่พวกเขาต้องการ
  • ไม่มีค่าใช้จ่ายเพิ่มเติมที่ต้องจ่ายไม่เหมือนเซิร์ฟเวอร์ออนไลน์อื่น ๆ ที่นี่และคุณสามารถเก็บข้อมูลได้สูงสุด 10 GB ในบัญชีผู้ใช้และสามารถใช้งานได้
  • หนึ่งในความพยายามที่ดีที่สุดคือคุณสามารถเรียนรู้เกี่ยวกับการเชื่อมต่อข้อมูลกับอินเทอร์เน็ตด้วยแอปพลิเคชันแบบเรียลไทม์ประเภทนี้ได้อย่างง่ายดาย
  • เราจะใช้การเชื่อมต่อ I2C ซึ่งใช้โปรโตคอลมาสเตอร์ทาสเพื่อแบ่งปันข้อมูลกับ Google ชีตในลักษณะที่ยืดหยุ่น
  • แพลตฟอร์มโปรโตคอล I2C เชื่อมต่อฮาร์ดแวร์เซ็นเซอร์และทำงานร่วมกับเซ็นเซอร์ประมาณ 256 ตัวในคราวเดียวโดยใช้เพียง 2 สายดึงขึ้นเพื่อถ่ายโอนข้อมูลเซ็นเซอร์ในฮาร์ดแวร์ 8 บิต

ขั้นตอนที่ 1: ฮาร์ดแวร์

Adafruit Feather HUZZAH Kits

Adafruit Feather Huzzah Board

Adafruit I2C ในตัวและอะแดปเตอร์ USB

SHT25 เซ็นเซอร์อุณหภูมิและความชื้น

สายเคเบิล I2C

ขั้นตอนที่ 2: สิ่งต่าง ๆ ทำงานอย่างไร

การดึงข้อมูลการอ่านข้อมูลแบบเรียลไทม์ของเซ็นเซอร์ผ่าน ESP8266 และส่งข้อมูลไปยังแพลตฟอร์มคลาวด์ต่างๆ ทำได้ง่ายมาก

เราจะใช้ไลบรารี Wire.h ใน Arduino IDE เพื่อสร้างการสื่อสารแบบมีสายสองสายระหว่าง Adafruit Huzzah Board และโมดูล I2C ของเซ็นเซอร์ SHT25 และสายเคเบิล I2C

หมายเหตุ: เพื่อหลีกเลี่ยงโครงสร้างการเดินสายที่ซับซ้อน ฉันจะใช้อะแดปเตอร์ I2C สำหรับ Adafruit Huzzah ที่ออกแบบมาเพื่อเชื่อมต่อเซ็นเซอร์ I2C

สำหรับมือใหม่ในการตั้งค่า Esp8266 คุณต้องผ่านการตั้งค่า ESP8266

ขั้นแรกให้เริ่มต้นไลบรารี:

  • ห้องสมุดสาย
  • ESP8266WiFi
  • WiFiClientSecure

ขั้นตอนที่ 3: กระบวนการดำเนินการโมดูล I2C ใน Arduino IDE

หลังจากเริ่มต้นไลบรารี เราจะกำหนดกระบวนการ I2C เพื่อใช้ในการดึงการอ่านค่าของเซ็นเซอร์ที่แปลงและเปลี่ยนข้อมูล 8 บิตตามข้อกำหนด:

เริ่มต้นการลงทะเบียนในโปรโตคอล I2C สองสายสำหรับโมดูลเซ็นเซอร์ I2C

#define แอดเดอร์ 0x40

  • เริ่มการส่ง I2C และเริ่มต้นการลงทะเบียนและขอข้อมูล 2 ไบต์จากตำแหน่งที่เราจะอ่านข้อมูลเซ็นเซอร์
  • หากมีข้อมูล 2 ไบต์ ให้อ่านข้อมูลเซ็นเซอร์และใช้สูตรที่กล่าวถึงด้านล่าง เราจะแปลงค่าที่ต้องการ

ความชื้นลอย = (((data[0] * 256.0 + data[1]) * 125.0) / 65536.0) - 6;

float cTemp = (((data[0] * 256.0 + data[1]) * 175.72) / 65536.0) - 46.85;

float fTemp = (cTemp * 1.8) + 32;

พิมพ์ค่าในหน้าจอมอนิเตอร์แบบอนุกรม

ขั้นตอนที่ 4: การเชื่อมต่อ ESP8266 ด้วย WiFi และ Google Spreadsheet

หลังจากดำเนินการโมดูล I2C เราจะเรียนรู้เกี่ยวกับวิธีการดึงข้อมูลและโดยใช้ไลบรารี WiFi และรหัสโฮสต์ รวมถึงคีย์ API เพื่อส่งข้อมูลไปยัง Google ชีต

  • กำหนดข้อมูลรับรอง WiFi ทั่วโลกใน ESP8266 ซึ่งจะช่วยให้เราเชื่อมต่อบอร์ดกับอินเทอร์เน็ต
  • เนื่องจากเราจะใช้ไคลเอนต์ HTTP และจะกำหนดโปรโตคอล HTTPS = 443 สำหรับการรักษาความปลอดภัยเส้นทาง HTTP เนื่องจากสคริปต์จะทำงานในเส้นทางที่ปลอดภัยเท่านั้น
  • เริ่มต้นรายละเอียดโฮสต์ในรหัส

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

const int https Port = 443;

String SCRIPT_ID = "ระบุ ID สคริปต์ตามที่กล่าวไว้ใน snaps";

หมายเหตุ: มีการกล่าวถึงรหัสสคริปต์ใน “URL ของเว็บแอป” ในขณะที่รหัส Gscript จะถูกเผยแพร่ เพียงคัดลอกและวางรหัสที่กล่าวถึงด้านล่างและเริ่มต้นในคำสั่งด้านบน

  • ด้วยการใช้ตัวแปรผันผวน เราจะเริ่มต้นตัวแปรทั่วโลกซึ่งดึงข้อมูลจากโมดูล I2C และส่งไปยังสคริปต์ URL ซึ่งจะส่งข้อมูลไปยังปลายทางต่อไป
  • การใช้ห้องสมุด WiFi ESP8266 เราจะสามารถเชื่อมต่อบอร์ดกับอินเทอร์เน็ตได้
  • ข้อมูลเซ็นเซอร์จะโฮสต์ไปยังเซิร์ฟเวอร์ภายในทุก ๆ 5 วินาที
  • ด้วยความช่วยเหลือของสคริปต์ URL ข้อมูลจะถูกโฮสต์ไปยังลิงก์ที่เผยแพร่ของสคริปต์ของ Google หน้าที่ใช้งานอยู่ทุก ๆ 15 วินาที

ขั้นตอนที่ 5: ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor

ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor
ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor
ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor
ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor
ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor
ทำให้ Google ชีตเป็นอัตโนมัติโดยใช้ GScript Editor

เนื่องจากเราทุกคนมีบัญชี Google เพื่อลงชื่อเข้าใช้ Google ชีตด้วยบัญชีของคุณ

  • ระบุค่าที่คุณต้องได้รับจากเซ็นเซอร์ที่เชื่อมต่อกับ ESP8266
  • ไปที่เครื่องมือ>ตัวแก้ไขสคริปต์
  • ใช้ฟังก์ชัน “Doget” เพื่อรับเหตุการณ์
  • ในฟังก์ชัน "Doget" เพื่อเริ่มต้นคีย์ API สเปรดชีตรวมทั้งเชื่อมต่อ Active Sheet ที่คุณต้องการส่งค่าเซ็นเซอร์
  • ด้วยความช่วยเหลือของฟังก์ชั่นอัตโนมัติที่กล่าวถึงในรหัสเพื่อแสดงข้อมูลในแถวและคอลัมน์ได้อย่างง่ายดาย
  • สุดท้ายบันทึกข้อมูลและคลิกที่ "เผยแพร่" >> คลิก "ปรับใช้เป็นเว็บแอป"
  • ตรวจสอบให้แน่ใจทุกครั้งที่มีการเปลี่ยนแปลงใด ๆ ให้เลือก "รุ่นโครงการ" >> "ใหม่" >> กด "อัปเดต"

URL ของเว็บแอปปัจจุบันจะปรากฏดังนี้:

script.google.com/macros/s/”GScript ID”/exec:

ใช้เพิ่มเติมในรหัส ESP8266 สำหรับการดึงข้อมูลจากเซ็นเซอร์

การเชื่อมต่อโฮสติ้งเราจะใช้คำขอ HTTPS รับเพื่อเชื่อมต่อข้อมูลกับรหัสโฮสต์ที่กล่าวถึงในตัวแก้ไข gscript ซึ่งเราเข้ารหัสข้อมูลของเราเพิ่มเติมเพื่อเชื่อมต่อกับ Google ชีต

ฟังก์ชั่น doGet (e) { Logger.log (JSON.stringify (e)); // ดูพารามิเตอร์ var ผลลัพธ์ = 'ตกลง'; // ถือว่าสำเร็จถ้า (e.parameter == 'undefined') { result = 'No Parameters'; } อื่น ๆ { var sheet_id = ''; // 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
  • เราต้องเปลี่ยนค่าในรูปแบบสตริงแล้วส่งข้อมูลไปยังลิงค์ gscript URL

ขั้นตอนที่ 7: รหัส เครดิต ข้อมูลอ้างอิง

รหัส Github:

github.com/varul29/SHT25_GoogleSheets_Goog…

อ้างอิง

รหัส I2C:https://github.com/ControlEverythingCommunity/SHT2…

บทช่วยสอน Google Script:https://developers.google.com/apps-script/articles…

ร้านค้าแบบฝัง:https://dcubestore.com/

บล็อกการสอน:https://pdacontrolen.com/update-https-redirect-vers…

แนะนำ: