參考:http://white5168.blogspot.com/2017/01/line-notify-6-line-notify.html#.Yh63k09BzX4
只需修改sToken 與 sFilepath填入你自已的Token與圖檔放置的位置就可以直接執行。
參考:http://white5168.blogspot.com/2017/01/line-notify-6-line-notify.html#.Yh63k09BzX4
只需修改sToken 與 sFilepath填入你自已的Token與圖檔放置的位置就可以直接執行。
Sub line_notify() '=================================== 'Line訊息 '=================================== Dim oXML As Object Dim Token As String Dim URL As String '指定的Line Notify Token Token = "你的TOKEN" 'Line Notify的傳送訊息網址 Line_Message = "利用VBA傳訊息" URL = "https://notify-api.line.me/api/notify" Set oXML = CreateObject("Microsoft.XMLHTTP") With oXML '使用同步傳輸 .Open "POST", URL, 0 '設定傳送封包Header .setRequestHeader "Content-Type", "application/x-www-form-urlencoded" .setRequestHeader "Authorization", "Bearer " & Token '執行Ajax傳送 .send "message=" & Chr(10) & Line_Message Debug.Print oXML.responseText End With '釋放物件資源 Set oXML = Nothing End Sub
Public Sub sendData2GoogleSheet() On Error GoTo handleerr num1 = Sheet1.Range("E2") '將excel的E2的欄位資料丟進num1的變數中 num2 = Sheet1.Range("F2") '將excel的F2的欄位資料丟進num2的變數中 num3 = Sheet1.Range("G2") '將excel的G2的欄位資料丟進num3的變數中 num4 = Sheet1.Range("H2") '將excel的H2的欄位資料丟進num4的變數中 num5 = Sheet1.Range("I2") '將excel的I2的欄位資料丟進num5的變數中 num6 = Sheet1.Range("J2") '將excel的J2的欄位資料丟進num6的變數中 num7 = Sheet1.Range("K2") '將excel的K2的欄位資料丟進num7的變數中 num8 = Sheet1.Range("L2") '將excel的L2的欄位資料丟進num8的變數中 '將資料寫進googlesheet Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1") postData = "method=write&snum1=" & num1 & "&snum2=" & num2 & "&snum3=" & num3 & "&snum4=" & num4 & "&snum5=" & num5 & "&snum6=" & num6 & "&snum7=" & num7 & "&snum8=" & num8 '&與變數之間要空一格 WinHttp.Open "POST", "這裡請填上你發佈的網路應用程式的網址", False WinHttp.setRequestHeader "authority", "script.google.com" WinHttp.setRequestHeader "User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" WinHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded" WinHttp.send postData MsgBox "傳送成功" Exit Sub handleerr: MsgBox "傳送失敗" End Sub
var sheet1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1"); function doPost(e) { var para = e.parameter, method = para.method; if (method == "write") { write_data(para); } } function write_data(para) { var num1 = para.snum1,num2 = para.snum2,num3 = para.snum3,num4 = para.snum4,num5 = para.snum5,num6 = para.snum6,num7 = para.snum7,num8 = para.snum8; var date = new Date(); var now = date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds(); sheet1.getRange(4,2).setValue(num1); sheet1.getRange(5,2).setValue(num2); sheet1.getRange(6,2).setValue(num3); sheet1.getRange(7,2).setValue(num4); sheet1.getRange(8,2).setValue(num5); sheet1.getRange(9,2).setValue(num7); sheet1.getRange(10,2).setValue(num8); sheet1.getRange(3,2).setValue(num6); sheet1.getRange(1,2).setValue(now); }
Private Sub CommandButton1_Click() On Error Resume Next NETComm1.SThreshold = 1 NETComm1.RThreshold = 1 NETComm1.CommPort = ComboBox1.Text If NETComm1.PortOpen = False Then 'if the serial port is closed NETComm1.PortOpen = True 'open the serial port CommandButton1.Enabled = False End If If Err Then MsgBox Error$, 48 End Sub Private Sub CommandButton2_Click() 'Close serial port on exit On Error Resume Next 'Error handler If NETComm1.PortOpen = True Then 'check if the serial port is open NETComm1.PortOpen = False 'close the serial port End If If Err Then MsgBox Error$, 48 'Display error in message box End End Sub Private Sub NETComm1_OnComm() Static Buffer As String Dim CRLFPos As Integer Buffer = Buffer & NETComm1.InputData 'or whatever name you use for the instance of NETComm CRLFPos = InStr(Buffer, vbCr) If CRLFPos > 0 Then Dim MyData As String d = Now() MyData = d & Mid(Buffer, 1, CRLFPos - 1) & vbCrLf TextBox1.Text = TextBox1.Text & MyData Buffer = "" End If End Sub Private Sub UserForm_Initialize() Dim i As Byte For i = 1 To 9 If IsComPortAvailable(i) = True Then ComboBox1.AddItem i End If Next End Sub Private Sub UserForm_Terminate() 'Close serial port on exit On Error Resume Next 'Error handler If NETComm1.PortOpen = True Then 'check if the serial port is open NETComm1.PortOpen = False 'close the serial port End If If Err Then MsgBox Error$, 48 'Display error in message box End Sub Function IsComPortAvailable(ByVal portNum As Integer) As Boolean Dim fnum As Integer On Error Resume Next fnum = FreeFile Open "COM" & CStr(portNum) For Binary Shared As #fnum If Err = 0 Then Close #fnum IsComPortAvailable = True End If End Function
Private Sub CommandButton1_Click() End End Sub Private Sub UserForm_Initialize() Dim i As Byte For i = 1 To 9 If IsComPortAvailable(i) = True Then ComboBox1.AddItem i End If Next End Sub Function IsComPortAvailable(ByVal portNum As Integer) As Boolean Dim fnum As Integer On Error Resume Next fnum = FreeFile Open "COM" & CStr(portNum) For Binary Shared As #fnum If Err = 0 Then Close #fnum IsComPortAvailable = True End If End Function
Private Sub Workbook_Open() UserForm1.Show '表單名稱.show End Sub
Private Sub CommandButton1_Click() On Error Resume Next NETComm1.SThreshold = 1 NETComm1.RThreshold = 1 NETComm1.CommPort = 4 If NETComm1.PortOpen = False Then 'if the serial port is closed NETComm1.PortOpen = True 'open the serial port End If If Err Then MsgBox Error$, 48 End Sub Private Sub CommandButton2_Click() 'Close serial port on exit On Error Resume Next 'Error handler If NETComm1.PortOpen = True Then 'check if the serial port is open NETComm1.PortOpen = False 'close the serial port End If If Err Then MsgBox Error$, 48 'Display error in message box End End Sub Private Sub NETComm1_OnComm() Dim d As Date Static Buffer As String Dim CRLFPos As Integer Buffer = Buffer & NETComm1.InputData 'or whatever name you use for the instance of NETComm CRLFPos = InStr(Buffer, vbCr) If CRLFPos > 0 Then Dim MyData As String d = Now() MyData = d & Mid(Buffer, 1, CRLFPos - 1) & vbCrLf TextBox1.Text = TextBox1.Text & MyData Buffer = "" End If End Sub Private Sub UserForm_Terminate() 'Close serial port on exit On Error Resume Next 'Error handler If NETComm1.PortOpen = True Then 'check if the serial port is open NETComm1.PortOpen = False 'close the serial port End If If Err Then MsgBox Error$, 48 'Display error in message box End Sub
#include <DHT.h> #define DHTPIN 2 // 設定DHT的接腳 #define DHTTYPE DHT11 // DHT 11 定義DHT的類型為DHT11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); //Serial.println("DHT11 test!"); dht.begin(); //啟動DHT } void loop() { // 每次偵測間隔2秒 char ch=13; delay(2000); //讀取濕度 float h = dht.readHumidity(); //讀取攝氏溫度 float t = dht.readTemperature(); //讀取華氏溫度 float f = dht.readTemperature(true); //檢查是不是有讀到資料 if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor! \n"); return; } Serial.print("Humidity:"); Serial.print(h,1); //顯示到小數點後一位 Serial.print("%/"); Serial.print("Temperature:"); Serial.print(t,1);//顯示到小數點後一位 Serial.print("C"); Serial.print(ch); }