我的Arduino之路-实现物联网应用(1)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5017|回复: 3

我的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
发表于 2019-2-13 04:22 | 显示全部楼层
中文的标点符号,乱码是正常的,你把标点符号,比如冒号,改成英文的冒号。你就会发现 哎嘿不乱码了。
发表于 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 覆盖即可安置你制作的传感器。
 楼主| 发表于 2019-2-19 10:10 | 显示全部楼层
ecstart 发表于 2019-2-15 16:07
其实你应该用论坛的Blinker ,手机上随时能看到温度湿度 控制继电器 开关设备 定时完成任务等等!不然你的 ...

谢谢你提供的几个方向,我要一一尝试一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:38 , Processed in 0.077720 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表