久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 迷你氣壓溫濕度表制作 [打印本頁]

作者: xiaoniu    時間: 2014-12-27 22:08
標題: 迷你氣壓溫濕度表制作
先看成品圖
  
    掌心大小,這是我目前做的有完備功能的、最小的DIY了。
    再看功能:1、可以顯示實時氣壓、溫度、濕度,可以選擇顯示或者3項輪流顯示;2、自帶鋰電,具有電池保護、充電控制電路;

    一、淵源:
    做這個DIY起源于一年前的一個設想:那就是做一個無線的氣象站,采用成熟的傳感器芯片,有一個室外采集終端和室內采集、顯示終端,通過無線連接,后期又補充了網絡推送數據和GSM數據查詢功能,并已經選好了具體的芯片型號,只差下決心去做了,只是發現工程對自己來說還是有點浩大了,要做兩套不同的程序、要兩套程序統調、要考慮外殼的設計安裝,還有室外終端的供電問題,無線信號強度問題,這又涉及到無線模塊選擇的問題,最終設想暫時中止,這一停就是一年多時間。

    二、啟動:
    動力來自于多方面:1、拜淘寶所賜,發現淘寶上有一種4位段式液晶顯示器,個頭很小,價格比此前長沙太陽人的模塊便宜,也是三線式接口;2、單位里有不少沒人要的迷你磁帶盒,透明度很高,很適合做小東西的外殼;3、空閑得很,閑著也是閑著。

    三、電路設想:顯示用4位的HTB8832A段式液晶顯示器,氣壓采集用博世的BMP0805,溫濕度用盛世瑞恩的SHT10,精度是濕度4.5%,溫度0.5度,鋰電用600mah的,加一塊保護板和充電管理板,主控芯片用ATTINY24,2K容量,因為BMP0805最高工作電壓是3.6v,而鋰電充滿電后是4.2v,為了安全決定采用3.3v的供電電壓,本來如果沒這個限制的話,整個系統都可以不用穩壓了,直接用電池。

    四、模塊測試:
    共有四個模塊要測試:1、LCD 顯示模塊;2;SHT10溫濕度模塊;3、BMP0805氣壓模塊;4、充電管理模塊。

    (一)、LCD模塊:采用的是HT1621驅動芯片,以前用的是長沙太陽人的模塊,兩線或者三線,段碼要么是正碼要么反碼,跟LED數碼管相差不大,剛開始測試時也是按照普通數碼管編制的段碼表,發現顯示的數字無論如何都不對,而店主提供的數據表也看得一頭霧水,研究了半天的HT1621數據手冊,基本搞清了原來,卻和現實的顯示效果對不上號,最后采用一個筆畫一個筆畫顯示,這才搞定了段碼表,但是還是發現了一個問題,就是供電電壓是5v,而不是店主說的3.3v,模塊上也沒有調整元件,這樣電路的供電要修改了,修改成了:主控、氣壓、溫濕度模塊仍舊用3.3v,LCD另外加一5v個升壓模塊,因為是單向的通訊,所以不必考慮電平轉換的問題;臨時又測試了模塊的電流,不加升壓是500ua左右,加了升壓是1.8ma,離我的想法有差距了,我計劃中的整機耗電電流應該稍小于1ma,做到真正的低耗電電池設備。花了一個晚上搞定。

    (二)、BMP0805模塊:先上網找例程,找來找去,找到了一個arduino的演示程序,正好手頭有arduino板,可以測試一下模塊是否損壞。arduino程序編譯后是6K左右,這也難怪了,例程里有大量的浮點運算,只是當初我是認為只要從模塊中把數據讀出來就可以的,沒想到還需要大量的校正運算,看來attiny24的2k容量有點危險了。沒有相應的avr的c源程序怎么辦呢,那就直接移植arduino吧,基本不用改什么東西的,只是跟attiny接口上遇到了很大的問題,模塊跟avr用的是I2C接口,究竟是用avr內置接口還是用模擬i2c接口呢,考慮到自己做單面板的布線比較困難,決定采用模擬I2c,這樣可以根據布線要求,選擇合適的端口,而不局限于固定的端口,套用了以前做收音機搞的一段I2c例程,調試起來真的很困難,總是無法知道程序錯在i2c接口還是運算程序,最后再才接到arduino,讀出正確的校正參數,然后比對avr上的讀數,確定是I2C的問題,當1002的氣壓值出現在顯示器上的時候,心情無疑是很激動的。BMP0805測試程序編譯后已經差不多是2k了,這樣使用attiny24的計劃泡湯了,接下來改用m16開發板繼續測試SHT10。

    (三)、SHT10模塊:SHT10采用的是兩線的接口,但是并不兼容I2C,這樣也不用在是否使用主控接口上糾結了。網上例程很多,有自己寫的,但大部分改寫自官方的例程,有51的也有avr的,但是真要用的話就沒這么簡單了,實際上當貌似正確的數據出現在顯示器上的時候,還是發現有問題,別人的演示視頻里濕度數據會跳動,而我的似乎總在那么幾個數字上變動,而且變動得相當緩慢,別的濕度表早就動了10%了,我這里還是紋絲不動,但是哈口氣它還是能動的,說明還是從模塊里讀出了些什么,那么究竟是模塊本身問題還是接口的時序問題呢,單憑簡陋的手段似乎不太容易了。于是想到以前在淘寶上看到的一種便宜的邏輯分析儀,可以用它分析時序,花了180大元買了一個,大概熟悉了用法后,實測模塊時序,果然從波形上發現讀取的數據的LSB字節全是FF,而MSB是正常的,這絕對是時序問題了,對比官方例程,發現每次通訊結束后都必須拉高一下DATA,否則后續字節就會讀取失敗,看來這180元花得真值。

    (四)、充電模塊:很簡單,計算充電電流,在計算充電時間,再看充滿是否自停,就可以知道好壞了。

    五、整合:
    最終要用的主控選定是Mega8L,最低電壓2.7v,容量8k,裝我的程序足夠,體積小巧,只有小指甲蓋大小,只是是QFN封裝,不過其他幾塊模塊也都要求用貼片焊接,再加上上次做過的電池電壓顯示器用的也是貼片,而且磁帶盒剩余空間只夠選用貼片了。設計電路板有點麻煩,因為沒有現成的SHT10和BMP0805的封裝,所以要自己畫,然后再根據安裝要求調整元件的位置,整來整去又去掉用MINIUSB充電的念頭,最后板子做好后,發現漏掉了3.3v穩壓芯片的位置,頭疼!


     接下來是焊接調試,出現異常情況,發現端口調試小程序不能點亮端口,或者只有1.6v的輸出電壓,要命的很,怎么修改程序都不行,最后半夜12點起床,冒著破壞PCB的危險,搞掉了M8L,換上了一個新的,剛開始測試時正常,甚至都能顯示正確的數據,只是把功能切換程序加上去的時候,又出現了跟上次一模一樣的毛病,真的抓狂了,是5V升壓板破壞了M8L的端口了么,不像啊,程序能正常LOADED的,也能運行,I2C所在接口也能輸出3.3V電平,而且在M8的開發板上都是這樣用的,只是無法點亮LCD,因為電平是在太低了,PCB已經經不起第二次折騰了,要么就是重做一塊,要么就此放棄本次DIY,不過這一冷藏,可能就是一年半載的時間。最后掙扎了一下,在LCD所在端口強制確定了數據方向為輸出,沒想到成了!原來一直以為上電后默認是輸出的,所以沒有另外加DDR命令。
    最后是總裝:理想總是美好的,到總裝的時候才知道,要把一堆東西裝進一個不能變的外殼有多困難,最后去掉了用連接器連接電池的做法,改用插針連接,剪短了SIP插針和按鈕的高度,縮短了電池和充電板的電線,磨掉了一點LCD上的黑膏,總算能把所有東西都塞進去了~~~。

    最后成品的數據準確度由我的卡西歐登山表和一個溫濕度表開共同確定。氣壓的準確性卡西歐可以保證,應該BMP0805剛測試好的時候就發現兩者的數據非常接近,也就是卡西歐測試數據應該是可信的,溫度顯示讀取的也是BMP0805,既然氣壓比較準確,那么溫度也是可信的,盡管SHT10也能提供溫度數據,濕度就很難說了,要這么貴的模塊靠一個幾十塊的便宜的家用溫濕度計來校正,真有點悲哀了,不過不管了,反正人家說了濕度本來就是個比較負責的參數,精度差點也沒什么。再測一下整機的耗電,大約3ma,離理想有點遠,好在可以充電,不用太在意。

    耗時15天,費銀90許,The Ending~~



作者: 王若愚    時間: 2017-4-27 07:48
兄弟能不能把那個HT1621的段位表給我一份?





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲色欧美另类 | 亚洲在线一区 | 精品日韩在线 | 国产精品视频在线播放 | 欧美成人精品激情在线观看 | 色视频在线播放 | 国产亚洲高清视频 | 最新中文字幕在线播放 | 亚州精品成人 | 国产精品国产三级国产aⅴ入口 | 国产精品高清在线 | 午夜久草 | 国产美女在线观看 | 欧美成人激情 | 在线视频一区二区三区 | 黄色av网站在线观看 | 久久中文视频 | 国产中文字幕在线观看 | 一区二区亚洲 | 欧美国产精品一区二区 | 亚洲成av人片在线观看 | 亚洲一一在线 | 日韩欧美中文字幕在线视频 | 91网站在线看 | 成人免费一区二区三区视频网站 | 中文字幕日韩欧美一区二区三区 | 99精品亚洲国产精品久久不卡 | 久久久久久久久久久久久久国产 | 黄色欧美在线 | 精品国产乱码久久久久久丨区2区 | 日日干天天操 | 91精品中文字幕一区二区三区 | 精品久久影院 | 亚洲最大av| 国产高清在线视频 | 99精品视频在线观看 | 欧美日韩视频在线播放 | 国产精品99久久久久久宅男 | 一级毛片免费 | 国产日韩精品视频 | 久久久久久av |