樂創物聯物聯網架構之硬體層中間件Arduino模擬量

2020-12-10 樂創iot

0 前言

大家好!我叫樂創物聯,我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大,後續也會自主去學習一下。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。

樂創物聯物聯網學習路線

回顧一下上節樂創物聯物聯網架構之硬體層中間件Arduino數字量,從Arduino數字量(數字 I/O、時間函數、串口收發函數),然後介紹Blink例子、按鈕控制LED例子,最後講解了按鍵消抖原理。本節就來講感知層下硬體層中間件Arduino模擬量。感知層是物聯網最基礎的部分,就像人的五官一樣去感受世界。

1 Arduino 模擬量

模擬 I/O

int analogRead(pin) 模擬IO口讀函數,pin表示為0~5(Arduino Diecimila為0~5,Arduino nano為0~7)。比如可以讀模擬傳感器(10位AD,0~5V表示為0~1023)。

analogWrite(pin, value) - PWM 數字IO口PWM輸出函數,Arduino數字IO口標註了PWM的IO口可使用該函數,pin表示3, 5, 6, 9, 10, 11,value表示為0~255。比如可用於電機PWM調速或音樂播放。

Arduino

2 模數轉換功能

步驟:

1) 定義需要的模擬量輸入引腳,Arduino UNO 為 A0~A5;

2) 讀取對應的模擬量,10位精度,2的10次方,0~1023;

3) 把對應的模擬量進行比例變換,使用map()函數或者用其他函數;

4) 把最終數據顯示到串口、液晶、數碼管等設備上。

3 PWM脈寬調製

PWM是英文「Pulse Width Modulation」的縮寫,簡稱脈寬調製。它是利用微處理器的數字輸出來對模擬電路進行控制的一種有效的技術手段,廣泛應用於測量、通信、功率控制與變換等許多領域。PWM,頻率不變(周期不變),脈衝高電平寬度可以調節,實際是調試做功時間(單位時間做功),從而達到調節電壓、電流或者功率等參數。

PWM在一些情況下可以代替DAC(數模轉換)功能。所以在Arduino裡面使用函數analogWrite(pin, value) 寫模擬量,Arduino的PWM是8位,換算數字量是0~255。PWM使用晶片內部自帶的PWM發生器,只有主板上標有PWM標識的才能用。Arduino UNO的PWM引腳為3/5/6/9/10/11。

4 熱敏電阻溫度例子

該模塊是基於熱敏電阻(阻值隨外界環境溫度變化而變化)的工作原理,能夠實時感知周邊環境溫度的變化,我們把數據送到 Arduino 的 analog IO,接來下我們只要經過簡單的編程就能將傳感器輸出的數據轉換為攝氏溫度值,並加以顯示,使用起來還是方便、有效的呢,藉此廣泛應用於園藝、家庭警報系統等裝置中。與一般的溫度傳感器是一樣的,都是 3 線封裝,我們在使用時接好電源線後確定信號輸入端就行了,因為模塊輸出的是模擬信號,我們要把信號輸出端接到 Arduino 的模擬 IO上進行採樣,這樣才能正確讀出溫度值;熱敏電阻之所以也能測量溫度,就是因為它結合了 Steinhart-Hart Thermistor 方程,測試代碼中的函數 double Thermister(int RawADC)就是該方程的體現。溫馨提示:代碼中有用到關於 Steinhart-Hart Thermistor 方程的應用。

請參閱http://en.wikipedia.org/wiki/Thermistor

#include <math.h>int val;double Thermister(int RawADC) {double Temp;Temp = log(((10240000/RawADC) - 10000));Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );Temp = Temp - 273.15; // Convert Kelvin to Celciusreturn Temp;}void setup() {Serial.begin(9600);}void loop() {val=analogRead(A0);Serial.print(Thermister(val)); // display FahrenheitSerial.println("C");delay(5000);}

5 土壤傳感器例子

用於土壤的溼度檢測。可通過電位器調節土壤溼度的閥值,順時針調節,控制的溼度會越大,逆時針越小;溼度低於設定值時,DO輸出高電平,模塊提示燈亮;溼度高於設定值時,DO輸出低電平,模塊提示燈滅。工作電壓3.3V-5V。3V時,在空氣中AO讀取的值最大為695 , 浸泡在水裡的 最小值245;5V時,在空氣中AO讀取的值最大為1023 ,浸泡在水裡的最小值 245。

#define PIN_AO 0#define PIN_DO 2void setup() {pinMode(PIN_AO, INPUT);pinMode(PIN_DO, INPUT);Serial.begin(9600);}void loop() {Serial.print("AO=");Serial.print(analogRead(PIN_AO));Serial.print(", DO=");Serial.println(digitalRead(PIN_DO));delay(5000);}

土壤傳感器例子

6 PWM調LED亮度

const int analogInPin = A0;//模擬量輸入const int analogOutPin = 9;//PWM輸出引腳int sensorValue = 0;//電位計電壓值int outputValue = 0;//模擬量輸出值(PWM)void setup() {// 串口初始化Serial.begin(9600);}void loop() {// 讀模擬量值sensorValue = analogRead(A0);//變換數據空間outputValue = map(sensorValue, 0, 1023, 0, 255);//輸出對應的PWM值analogWrite(analogOutPin, outputValue);//列印到串口Serial.print("sensor=");Serial.print(sensorValue);Serial.print("\t output=");Serial.println(outputValue);delay(2000);}

PWM調LED亮度

7 結論

這些都是經過實踐檢驗的,本來想等開專欄,放專欄裡的,現在不掙錢,交個朋友!跟我一起入門物聯網吧!

相關焦點

  • 樂創物聯物聯網架構之硬體層中間件Arduino簡介
    我叫樂創物聯,我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大,後續也會自主去學習一下。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。
  • 樂創物聯物聯網架構之硬體層中間件Arduino EEPROM
    我叫樂創物聯,我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大,後續也會自主去學習一下。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。
  • 樂創物聯物聯網架構之硬體層中間件Arduino數字量
    我叫樂創物聯,我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大,後續也會自主去學習一下。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。
  • 樂創物聯物聯網架構之硬體層中間件Arduino語言
    我叫樂創物聯,我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大,後續也會自主去學習一下。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。
  • 用Arduino開發物聯網設備之初識Arduino
    最近幾年,物聯網發展的非常迅速,周圍很多設備基本上都聯網了,越來越多的小夥伴不滿足大企業大公司提供的固定的物聯網設備,大家都想嘗試開發出屬於自己的設備。那麼最簡單、應用範圍最廣的開發方式當然是Arduino,那麼什麼是Arduino呢?Arduino到底是什麼?
  • 物聯網架構設計
    然後像lan這樣的應用,在裡面剛屬於服務層。物聯網層級結構通常,我們很容易在網上看到如下圖所示的三層結構:從理論上劃分這樣的層級結構是沒有問題的,也是有各種理論依據。然而理論和現實往往是嚴重脫軌的,如上圖所示,圖中將網絡層單獨分為了一層,而並沒有獨立出應用程式相關的功能。從實踐的角度上,我更願意用如下的架構來構建我的物聯網系統。
  • 大牛輕鬆帶你玩轉Arduino智能硬體:(一)arduino入門:硬體介紹
    (一)arduino入門:硬體介紹認識arduino你都不需要去關心單片機編程繁瑣的細節,提供給你的是一套容易使用的工具包。Arduino程式語言可以通過C++庫進行擴展,· 硬體開源並可擴展 - Arduino板基於 Atmel 的ATMEGA8 和ATMEGA168/328 單片機。Arduino基於Creative Commons 許可協議,所以有經驗的電路設計師能夠根據需求設計自己的模塊,可以對其擴展或改進。
  • Arduino使用光敏電阻實驗
    包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。其成員包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
  • 採埃孚發布中間件並宣布建立全球軟體中心
    在2021 CES 前夕,採埃孚發布了最新的中間件。這一開放式的軟體平臺是車輛的計算運營系統及其軟體應用之間的「橋梁」。中間件的主要功能是通過可攜式的軟體應用以減少計算機硬體以及這些應用的通信。  作為「橋梁」,採埃孚的中間件可實現從軟體功能到硬體組件的高效通訊。
  • 無錫醫療物聯網研究院&蛋殼研究院:2020醫療健康物聯網白皮書(附...
    醫療健康物聯網行業同樣不能免俗。白皮書就涉及醫療健康物聯網的這「五駕馬車」逐一進行了探討。第二章:醫療健康物聯網基礎架構及技術醫療健康物聯網作為物聯網的一個分支,其網絡基礎架構仍然遵循物聯網的基本架構。
  • 特斯聯副總裁李楊:城市級移動物聯網運營平臺架構及應用
    在WOT2016大數據技術峰會物聯網分會場,特斯聯副總裁李楊做了主題為「城市級移動物聯網運營平臺架構及應用」的演講,51CTO記者在峰會現場對其進行了專訪。【受訪人簡介】特斯聯物聯網架構特斯聯於硬體、平臺、組網各有建樹從硬體方面講,智能門鎖、門禁、閘機和地鎖,有空調、窗簾、燈光、電器和環境監測,
  • 物聯網平臺架構設計
    對技術感興趣的同學可進群(備註:Java)現在網上討論的有關物聯網的帖子非常之多,但大部分都是介紹理論或者有關硬體,通訊相關的問題,比如物聯網模塊,物聯網通訊協議MQTT、XMPP、NB_IOT等,個人認為這些只是物聯網中一部分,而涉及到物聯網的設備如何管理,用戶如何管理,數據包如何解析,大數據如何展示等也是物聯網模塊中非常重要的部分,所以作者就根據自身工作中總結出來的建構在雲端的物聯網平臺基本架構分享給大家,並基於此架構如何一步一步來開發一套物聯網平臺。
  • 本體資深架構專家NingHu:區塊鏈「中間件」市場想像空間巨大
    ,由火星區塊鏈研究院林中路深度對話Chainlink中國區負責人Philip(條子哥)、本體資深架構專家NingHu、IOSG Ventures投資總監肖銳以及Conflux聯合創始人張元傑。NingHu表示,區塊鏈「中間件」有兩個方向,連接區塊鏈應用和業務應用,連接區塊鏈系統和傳統網際網路系統。不管是通用的解決方案還是業務的解決方案都是為了促進區塊鏈,成為真正可以「日用」的服務。
  • 如何用Matlab連接控制Arduino:GUI界面製作與電機控制
    而Arduino開發板是一種越來越受到歡迎的開源硬體。  一個是什麼都能算的軟體,一個是最火爆的開源硬體,兩者結合能碰撞出什麼樣的火花呢?筆者以Matlab軟體研究如何控制Arduino,將從Matlab製作Arduino的GUI界面和simulink應用出發,探索如何使用Matlab連接和控制Arduino。
  • 好看書單·Arduino&Raspberry開源硬體技術|共18部
    (RaspberryPi)的架構、編程、開發與項目實踐。本書可作為高校電子信息類專業「開源硬體設計」「電子系統設計」「創新創業」等課程的教材,也可作為創客及智能硬體愛好者的參考用書,還可作為從事物聯網、創新開發和設計專業人員的技術參考書。
  • arduino 從零開始(2)探索arduino開發板和arduino IDE
    1、你將會探索arduino開發板2、你將會打開並上傳程序到arduino 板3、你將會學到arduino程序的基本框架和基本函數4、你將會自己編寫並上傳arduino程序一、arduino 板簡單來說,arduino(硬體)就是一個可以用來根據你的要求進行編程從而可以和很多輸入輸出設備進行交互的一個微型電腦系統。
  • Arduino為什麼這麼火
    arduino究竟好在哪裡。硬體開源+IDE2.處理IO開源硬體+IDE開源一詞最初是用來形容原始碼的公開可見,這裡的硬體開源主要是說arduino相關的眾多元件的製作原理可見,以及元件製作者對元件基本功能實現編寫的代碼可查。
  • 基於ActiveMQ的消息中間件系統 OneMM邏輯與物理架構設計詳解
    基本介紹與組件架構圖維基百科對消息中間件的定義是「Message-oriented Middleware is software infrastructure focused onsending and receiving messages between distributed system。」
  • Arduino_集合Arduino教程、Arduino IDE及設計應用的技術專題
    在線等挺急的 詳細點 回答28# eepwlover:Arduino開發工具(arduino IDE) 1.0.5 綠色免費版
  • LABVIEW+Arduino
    而arduino可以模擬這些操作,再與LABVIEW相結合,可以在同一程序能實現切換頻點、通道等的操作,並根據測試需要將所需要的測試數據記錄在相應的表格內。一、什麼是arduinoArduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。