查看: 1257|回复: 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
  • TA的每日心情
    奋斗
    2019-3-13 19:17
  • 签到天数: 15 天

    [LV.4]偶尔看看III

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

    [LV.5]常住居民I

    发表于 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 ,手机上随时能看到温度湿度 控制继电器 开关设备 定时完成任务等等!不然你的 ...

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

    本版积分规则

    热门推荐

    ArduinoJason6教程由ArduinoJson作者Benoit亲自出马一对一教学
    ArduinoJason6教程由Ardui
    这几天我觉得社区教学好像缺了点什么,呃呃~我想一想好像是缺少了ArduinoJson6的教学
    Arduino+L298N小车实例教程
    Arduino+L298N小车实例教
    (第一次写教程,如有错漏,敬请拍砖)Arduino+L298N小车实例教程Arduino小车是一个非
    零知开源分享-蓝牙模块与手机APP通信
    零知开源分享-蓝牙模块与
    本篇文章中将讲解蓝牙模块与安卓手机APP进行通信。1、说明MCU:零知开发板-标准板模
    DHT库无法被找到
    DHT库无法被找到
    今天在安装了DHT库之后在编译时却显示无法找到库,请问我是在哪里安装出错了,谢谢大
    (可远程)ESP8266读DHT11温湿度,APP inventor制作app实时显示
    (可远程)ESP8266读DHT11
    原理讲解 原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表