物聯網系統設計——與單片機通信

在咱們完成了前面的幾部分以後,咱們也須要把這最後一部分解決,這裏更多的是硬件,Arduino的存在可讓硬件更簡單。 git

Arduino

Arduino 是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各類型號的arduino板)和軟件(arduino IDE)。它適用於藝術家、設計師、愛好者和對於「互動」有興趣的朋友們。 github

    void setup() {
      Serial.begin(9600);
      pinMode(13,OUTPUT);
    }
    
    int serialData;
    void loop() {
      String inString = "";
      while (Serial.available()> 0)
      {
        int inChar = Serial.read();
        if (isDigit(inChar)) {
          inString += (char)inChar; 
        }
        serialData=inString.toInt();
        Serial.print(serialData);
      }
      if(serialData==1){
        digitalWrite(13,HIGH);
      }else{
        digitalWrite(13,LOW);
      }
    }



那麼讓咱們先來看看咱們寫的代碼。 (轉載保留  Phodal's Blog   Phodal's  zenthink

這個代碼看上去彷佛會有點複雜,可是讓咱們看點基礎的,也就是由Arduino來控制一個LED的亮和滅。 oop

    int led = 13;
    
    void setup() {                
      pinMode(led, OUTPUT);     
    }
    
    void loop() {
      digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(1000);               // wait for a second
      digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);               // wait for a second
    }


這個也就是來自於官方的示例程序,而咱們要作的東西也和這個差很少,只是這個是自動的,上面那個是由串口通訊來實現的。 ui

串口通訊

串行接口是一種能夠將接受來自CPU的並行數據字符轉換爲連續的串行數據流發送出去,同時可將接受的串行數據流轉換爲並行的數據字符供給CPU的器件。通常完成這種功能的電路,咱們稱爲串行接口電路。
簡單地來講,咱們誻就是用這個來實現通訊的,用以前的RaspberryPI 發送1和0給Arduino。那麼咱們在Arduino上就只是接受和執行,這個由loop裏面的if來執行spa

初始化串口

若是你真心不喜歡51上的複雜的串口,那麼我想Arduino又是解放雙手的東西了。 .net

     Serial.begin(9600);

這個就是串口初始化,速率爲9600。 設計

串口讀取

     while (Serial.available()<0)
      {
        int inChar = Serial.read();
        if (isDigit(inChar)) {
          inString += (char)inChar; 
        }
        serialData=inString.toInt();

用於讀取的就是這麼一行code

 

     int inChar=Serial.read()

 

而下面的部分則是剛咱們接收到的數據轉換爲1,因爲接到的爲char類型,那麼咱們須要轉爲轉爲Int進行判斷。
blog

爲何不直接用'1'

只是爲了寫給須要的同窗用的,也能夠直接在上面用if(serialData=='1'),上面寫可讓後期擴展的時候方便一點。接口


 

討論空間

QQ羣:348100589

項目首頁:http://iot.phodal.com

代碼地址:http://github.com/gmszone/iot

相關文章
相關標籤/搜索