2017年11月7日 星期二

arduino手機控制開門

使用arduino控制開門,與上次不同的是這次code非常簡單,麻煩的反而是機構設計。光是馬達我就從continuous servo(因為是以時間定位會有位置誤差) -> step motor(扭力不足) -> servo才達成想要的目的。另外零件不好找也是一大問題,克難滑輪組(3M電線貼)阻力過大的問題也是後來才發現。

另外一開始沒發現買到的是continuous servo而不是servo,在code上面也卡了一下,continuous servo的數值是速度而非角度。

另外供電不足會造成馬達抖動。由於有接紅外線的module,本來是想用並聯的方式供電,結果馬達就抖動不受控制,找了一些資料以為是電磁干擾,後來獨立拉一條線路供電後就沒事了。供電不足時arduino yun會重啟,並且l13 LED會閃。

這次同時也使用了電晶體想增加紅外線LED的遙控距離,不過還是沒辦法達到理想的要求,換過LED本身也沒用。最後是拉線解決。

第一版

第二版


2018/11/4更新
發現Yun在太久連不到網路後會回復網路預設值,需要再一次手機重新連上後設定無線網路。並且會出現"Could not connect to YunServer 146 Connection refused"的錯誤訊息。解決方法是再重新上傳一次sketch即可解決。另外如果序列埠那邊找不到yum wifi ip,電腦需安裝bonjur後yun重開即可搜尋到。

2019/5/22更新


參考資料

步進馬達
http://ee543.blogspot.tw/2016/01/arduino-uno420.html
http://atceiling.blogspot.tw/2013/04/arduino.html

continuous servo
https://arduino.stackexchange.com/questions/1321/servo-wont-stop-rotating

servo
http://atceiling.blogspot.tw/2017/03/arduino.html
http://www.hobbytronics.co.uk/arduino-tutorial2-servos
http://thats-worth.blogspot.tw/2013/12/arduino-controlling-servo-motor.html

MG995 spec
http://bugworkshop.blogspot.tw/2016/09/diy-robot-towerpro-mg995-servo.html

string to int(角度控制)
https://www.arduino.cc/en/Tutorial/StringToIntExample

電晶體腳位判斷
http://gc.digitw.com/MyDocument/Recognize-Transister/RecognizeTR.htm
http://coopermaa2nd.blogspot.tw/2011/03/lab21-12v.html
http://cms.35g.tw/coding/arduino-remote-daikin/

USB ping腳供電
http://www.coolaler.com/threads/3pinusb.240842/
http://yehnan.blogspot.tw/2013/09/arduinotower-pro-sg90.html

麵包板並聯
https://www.guokr.com/post/718305/

"Could not connect to YunServer 146 Connection refused"
http://yehnan.blogspot.com/2016/04/arduino-yunwi-fi.html
自己

arduino email solution

想使用arduino在需要時發email通知。一開始找ethernet library,結果要使用的話必須要有public ip,後來找到的方法是利用arduino sdk寫code再利用外部網站API達到目的,不過那個需要付費並且掌握在別人手上。後來找到直接install apk在arduino linux上即可達到目的,為了這個還發現arduino出廠時是使用factory image,必須要自己upgrade才能獲取全部的arduino society support。看到download.linino.org就代表你是連到factory自己建的repository,不但常常掛資源也少,正確的應該是downloads.arduino.cc

參考資料

ethernet lib
https://forum.arduino.cc/index.php?topic=126829.0

arduino sdk
http://tronixstuff.com/2013/11/23/tutorial-send-email-with-the-arduino-yun/

arduino linux
http://www.binarypower.com/2014/07/use-arduino-yun-to-send-emails-simple.html

download.linino.org
https://forum.arduino.cc/index.php?topic=286191.0

2017年8月31日 星期四

pfsense openvpn TCP_size_error

之前就有發生過類似的情形,後來試了一下發現是碰不到openvpn server(log沒有反應,區網測試可以)。trouble shoot老半天結果居然是Dlink router DMZ不會轉送 port 443,我還找到MTU那邊去。之前因為都是直接用pfsense pppoe,最近換到dlink減輕server負擔沒想到會這樣,暈倒....

附上解決方法,除了DMZ外再做一次port forwarding....

參考資料
自己
https://www.google.com.tw/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwji842Uv4HWAhUFJ5QKHU4sBlIQFggoMAA&url=https%3A%2F%2Fwww.mobile01.com%2Ftopicdetail.php%3Ff%3D110%26t%3D5888&usg=AFQjCNF3Tx6urZ1LXe0L-3gCuDcaNebGuA

2017年8月14日 星期一

pfsense DNS forwardar

必須要將DHCP server的DNS server設為pfsense IP才會生效

參考資料
https://forum.pfsense.org/index.php?topic=31327.0

Arduino smart home ac remote

想要玩arduino很久了,總算有時間來試一下。參考了網路上的資訊,從完全沒摸過到寫程式燒錄到arduino,還有網頁http request的研究,總算最後是完成了。花了三天的時間,很有成就感也很累,在炎炎夏日還蠻實用的。

幾個過程中的重點:

arduino:

  • 匯入程式庫後compile才成功,不能自己用貼上.h的方式
  • Could not connect to YunServer 146 Connection refused的問題在我去除while (!Serial);後有顯著的改善
  • 目前紅外線LED的遙控距離還是太短,考慮增加電阻
  • 使用readuntil到?時會中斷(應該是timeout),所以目前是拿掉,之後再看有沒有辦法解決
  • 網頁資料是使用serial,我改用rest的方式,所以在資料取得方式上有些不同


web:


  • header必須要用Status: 200而非HTTP/1.1 200 OK,後者會導致content type無法變成text/html
  • arduino rest api protection要關閉,是為了讓網頁執行時不會hit到CORS(cross-origin resource sharing)的問題。狀況是這樣,因為使用了authrization所以會變成非簡單要求,發出OPTION request後因為我們建置的並非正式webserver所以response為空沒辦法加入header(arduino寫的程式必須要先能夠碰到REST)因此被擋(無法回傳access-allow-origin: *),使用datatype: jasonp並沒有辦法解決問題。沒使用authrization前是401,使用後是400。



參考資料
自己
smart home ac
http://cc.beingo.net/archives/2234
https://m.mobile01.com/topicdetail.php?f=731&t=4135366&p=1
http://cms.35g.tw/coding/arduino-remote-daikin-3/
http://cms.35g.tw/coding/arduino-remote-daikin-2/
http://cms.35g.tw/coding/arduino-remote-daikin/

arduino yun
https://forum.arduino.cc/index.php?topic=191895.0
https://forum.arduino.cc/index.php?topic=227213.0
http://yehnan.blogspot.tw/2014/04/arduino-yunbridgeconsoleprocess.html
https://www.arduino.cc/en/Tutorial/Bridge
https://arduino.stackexchange.com/questions/10257/sending-values-to-an-arduino-yun-across-different-networks
http://yehnan.blogspot.tw/2014/04/arduino-yunbridgeyunserveryunclient.html
http://yehnan.blogspot.tw/2013/01/arduinods18b20.html
http://yehnan.blogspot.tw/2013/05/arduino.html
http://yehnan.blogspot.tw/2016/04/arduino-yunwi-fi.html
https://forum.arduino.cc/index.php?topic=192936.0

CORS
http://www.ruanyifeng.com/blog/2016/04/cors.html
https://blog.m157q.tw/posts/2016/09/07/cross-origin-resource-sharing/
https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Access_control_CORS

ajax
http://blog.techbridge.cc/2017/05/20/api-ajax-cors-and-jsonp/
https://babaawesam.com/2014/11/06/control-input-output-of-arduino-yun-with-ajax/
http://www.cnblogs.com/Mainz/p/3506956.html
http://shiyousan.com/post/635433082130309661

phpmyadmin create sql
http://www.complete-concrete-concise.com/web-tools/creating-a-mysql-database-using-ampps

HTML
http://www.w3school.com.cn/tags/tag_doctype.asp

字元與字串
http://dhcp.tcgs.tc.edu.tw/c/p009.htm

Basic Auth
https://stackoverflow.com/questions/5507234/how-to-use-basic-auth-with-jquery-and-ajax
https://stackoverflow.com/questions/3571090/basic-authentication-with-jquery-ajax-request-and-jsonp
https://stackoverflow.com/questions/27904082/using-http-basic-authentication-with-ajax-call

php windows工作排程
http://mrbignose.blogspot.tw/2010/05/php-windows-php.html

2017年4月13日 星期四

pfsense pppoe 失效問題

最近伺服器只要重開PPPOE就會撥接不上,本來還以為是switch topology有誤,後來總算是發現原來是wan interface沒有正確assign到em0,重新assign後問題解決。

參考資料:
自己