Blog

Blog

PHODAL

最小物联网系统(八)——与单片机通讯

在我们完成了前面的几部分之后,我们也需要把这最后一部分解决,这里更多的是硬件,Arduino的存在可以让硬件更简单。

Arduino

Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。它适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。

那么让我们先来看看我们写的代码。


    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);
      }
    }
这个代码看上去似乎会有点复杂,但是让我们看点基础的,也就是由Arduino来控制一个LED的亮和灭。

    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 }
这个也就是来自于官方的示例程序,而我们要做的东西也和这个差不多,只是这个是自动的,上面那个是由串口通信来实现的。

串口通信

串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。

简单地来说,我们誻就是用这个来实现通信的,用之前的RaspberryPI 发送1和0给Arduino。那么我们在Arduino上就只是接受和执行,这个由loop里面的if来执行

初始化串口

如果你真心不喜欢51上的复杂的串口,那么我想Arduino又是解放双手的东西了。

 Serial.begin(9600);

这个就是串口初始化,速率为9600。

串口读取


     while (Serial.available()<0)
      {
        int inChar = Serial.read();
        if (isDigit(inChar)) {
          inString += (char)inChar; 
        }
        serialData=inString.toInt();
用于读取的就是这么一行

 int inChar=Serial.read()

而下面的部分则是刚我们接收到的数据转换为1,由于接到的为char类型,那么我们需要转为转为Int进行判断。

为什么不直接用'1'

只是为了写给需要的同学用的,也可以直接在上面用if(serialData=='1'),上面写可以让后期扩展的时候方便一点。


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签