查看: 215|回复: 2

我的Arduino之路-实现物联网应用(1)

[复制链接]

该用户从未签到

发表于 2019-2-12 17:18 | 显示全部楼层 |阅读模式
本帖最后由 zhuhai 于 2019-2-13 14:54 编辑

在一个养蜂论坛中偶然认识了Arduino,这一认识让我不能自拨,简单易懂的语言,丰富的库,开放的资源,只要搬砖就可以完成大多数项目,真是太好了。
学习Arduino先定个小目标:
1)能测量温湿度
2)能远程查看温湿度,历史数据曲线表达,能用手机看曲线
3)能远程控制设备运行

制定了目标后开始实验
购买硬件,尽量少买点,先入门为主
入门硬件1.PNG

第一课hello world
这课认识了setup()和loop()的作用
知道了HIGH就是开关打开通上电,LOW开关上没有电
delay(1000)就是拖延一秒钟

第二课 串口通信
认识了波特率,Arduino开发软件与sscom串口工具只能有一个与开发板连接,使用时要断开一个连另一个,否则要报错。
两头波特率要一至才能正常通信

第三课、跑马灯
知道了开发板上这么多针脚,都是开关啊

第四课、温湿度测量
手上有一个Dht11,网上找来代码,碰到了Arduino开发重要的一环,库文件的使用。
库文件是前辈将复杂的代码简化了,方便我等使用
来源有以下几种
1)作者提供下载地址或百度下载地址
2)开发软件中的库管理器中找
下载下来的库文件解压后一级目录下要有库文件,目录放在开发软件的libraries目录下
我的开发板是MEGA2560,有4个串口,但是开发软件与开发板之间通信似乎只认第一个串口
下面代码是将dht11测得的温湿度在串口工具上显示出来
#include <dht11.h>            
dht11 DHT11;  
#define DHT11PIN 8
//初始化-----------------------------------------
void setup()
{
    Serial.begin(9600);
}
//主循环-----------------------------------------
void loop()
{
  int chk = DHT11.read(DHT11PIN);
  // 测试 DHT 是否正确连接
  Serial.print("Read sensor: ");
  switch (chk)
  {
    case DHTLIB_OK:
    Serial.println("OK");
    break;
    case DHTLIB_ERROR_CHECKSUM:
    Serial.println("Checksum error");
    break;
    case DHTLIB_ERROR_TIMEOUT:
    Serial.println("Time out error");
    break;
    default:
    Serial.println("Unknown error");
    break;
  }
  // 获取测量数据
  Serial.print("Humidity (%): ");
  Serial.println((float)DHT11.humidity, 2);
  Serial.print("Temperature °C): ");
  Serial.println((float)DHT11.temperature, 2);
  delay(5000);
  }

dht11a.PNG
温度符号在串口中显示是乱码,不知道怎么显示,请知道的前辈指点
现在温湿度能测量了,并在串口显示了,下一步要实现在另一台电脑上显示


入门硬件1.PNG
  • TA的每日心情
    无聊
    2019-2-13 04:21
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2019-2-13 04:22 | 显示全部楼层
    中文的标点符号,乱码是正常的,你把标点符号,比如冒号,改成英文的冒号。你就会发现 哎嘿不乱码了。
  • TA的每日心情
    开心
    2019-2-17 00:18
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2019-2-15 16:07 | 显示全部楼层
    本帖最后由 ecstart 于 2019-2-15 16:10 编辑

    其实你应该用论坛的Blinker ,手机上随时能看到温度湿度 控制继电器 开关设备 定时完成任务等等!不然你的研究路线还很长,你这个要实现在很远的地方的另外一台电脑显示就必须要安装wifi 蓝牙或者其他无线模块,你就会发现你进入了一个技术无底洞!作为一般玩家耍耍的 可以使尝试Blinker 我也是没有编程基础的 Blinker 实现了我想要的功能 而且很简单。

    话说回来 基于你目前的设备你还要加一个esp8266 模块  写上AT 指令  然后就是串口TCP发送数据到指定的电脑的TCP服务器了 就可以用电脑的TCP服务器显示出来了。但是这样并不实用 还要开着一台电脑,为什么我打字这么多 就是因为我刚接触这个2个月,中间走了不少弯路,其实作为一般玩家 Blinker就够了,你可以去论坛的Blinker板块体验下,分分钟让你手机看到远处场所的温度 湿度 空气质量等等。然后可以设置阈值来自动控制设备。
    而且你会发下aduino的板子太大了,设备小型化也不太好,当然有NANO但是还是比esp8266模块大,建议直接入手esp8266   开发版 自带原生的wifi 模块,只要保证有wifi 覆盖即可安置你制作的传感器。
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    求助,Due使用问题。
    求助,Due使用问题。
    如图,Due没有SPI库和Wire库。
    arduino+onenet+edp协议
    arduino+onenet+edp协议
    每次在edp.c这里报错,请问这是什么问题?(这一句本身应该没有问题的)
    一文教你选择Arduino开发板,小白进
    一文教你选择Arduino开发
    笔者在2016年接触了Arduino,跳了万条坑,行了千里弯,到今天也算是Arduino的一
    能够与arduino结合的嵌入式视觉识别模块
    能够与arduino结合的嵌入
    该视觉识别模块是我司于2018年新推出的产品,处理器采用双核MCU,面向创客以及steam
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表