Translate

2018年12月19日 星期三

工科技藝競賽-數位電子與全國技藝競賽-工業電子ARM開發環境

使用MCU:STM32L052R8

使用軟體為STM32CubeMX,用於快速初始化晶片與建立範例專案

使用軟體為Keil uVision5,用於編寫程式、除錯與燒錄

使用燒錄器為ST-LINK/V2

先下載MDK for STM32F0,STM32G0與STM32L0

(ARM與STMicroelectronics合作,用戶可免費使用STM32F0,STM32G0和STM32L0全功能的Keil MDK版本。)

一、先至http://www2.keil.com/stmicroelectronics-stm32/mdk下載MDK-ARM版本5.26並啟用(上述網址有啟用說明)

二、下載STM32CubeMX與ST-Link utility download link

三、開啟STM32CubeMX下載STM32L0Cube Library或直接下載完在匯進去。


 Help-Manage embedded software packages


選擇STM32L0點選最新的版本就會自動下載安裝

點選From Local...可以載入之前下載的lib



 

2018年12月4日 星期二

國產溫度控制器(配合電鍋變身舒肥機)解析-Vulcan、JetSOVI、EZPLUG

之前有想過自已用Arduino做舒肥機,所以找了很多的資料,有看到三台國產的舒肥機,看了這三台的介紹順便用外行人的眼光在解析一下供有興趣的人參考。
Vulcan 價格:3899
官網:http://store.kitchbot.com/ FB:https://www.facebook.com/KitchBot.Taiwan/
嘖嘖群眾集資:https://www.zeczec.com/projects/vulcan

JetSOVI  價格:2200
部落格:https://www.jet3c.com/
FB:https://www.facebook.com/Jet3C/

EZPLUG 價格:2280
官網:https://ezplugcooking.com/
FB:https://www.facebook.com/EZplug-Sous-Vide-Plug-%E6%99%BA%E6%85%A7%E8%88%92%E8%82%A5%E6%8F%92%E9%A0%AD-137254786874557/
嘖嘖群眾集資:https://www.zeczec.com/projects/ezplug

解析:
誕生時間:Vulcan最早,接下來是JetSOVI、EZPLUG最後

商品體積:JetSOVI > Vulcan > EZPLUG
JetSOVI:體積最大,最重。
Vulcan:體積適中。
EZPLUG:體積最小好攜帶。

外觀:Vulcan > EZPLUG >JetSOVI
Vulcan、EZPLUG:有開版
JetSOVI:3D列印

APP操作:Vulcan > JetSOVI >EZPLUG
Vulcan:可以更新食譜
JetSOVI: EZPLUG:功能最簡單

直接操作:JetSOVI > Vulcan > EZPLUG
Vulcan:三顆觸控按鍵
JetSOVI:觸控面板
EZPLUG:什麼都沒有

額外功能:Vulcan > JetSOVI=EZPLUG
Vulcan:可以控制烤箱

支援電壓:Vulcan = JetSOVI>EZPLUG
Vulcan、JetSOVI:110~220V
EZPLUG:110V

可控制功率:JetSOVI > Vulcan = EZPLUG
JetSOVI:約1650W (25A SSR)
Vulcan:網路查不到資料
EZPLUG:使用繼電器HF3FA(250V 10A)

硬體規格:
Vulcan:群登科技AI7697H(ARM Cortex M4 197MHZ、352KB SRAM、4MB Flash、Wifi、BLE)
JetSOVI :Arduino nano(Atmel ATmega328P 16MHZ 、2KB SRAM、32KB Flash)外加ESP8611(WIFI)、3.2吋解控螢幕
EZPLUG:查無資料

2018年12月3日 星期一

2018年11月28日 星期三

透過Execl VBA將資料寫進google sheet(import or send data from Excel to Google sheet)

參考:透過Excel將資料寫進google sheet(import or send data from Excel to Google sheet)

詳細的使用方法上述參考網址都有,就不在敘述。

使用上的問題,當有修正Google Apps Script的程式時除了要重新發佈->部置為網路應用程式外專案版本也要變動。不然會一直是修正前的程式碼在執行。

可以將Google的試算表傳給任何人,當Excel上傳資料後,Google試算表約1~3秒就會更新。適合即時回報統計數值。

1、VBA副程式

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

2、Google Apps Script

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);
}