【DIY】嫌arduino太贵?太大?试试ATTINY85!DIY温湿度计入门级教程请收下

ATTINY85做主控,OLED显示的温湿度计。

简介:

通过Arduino开发环境,对ATTINY85进行编程,利用DH11温湿度传感器,在SSD1306(128*64)OLED显示屏上显示温度和湿度。

材料:

  1. ATTINY85

  2. DHT11

  3. SSD1306 (12864 OLED)

  4. 电池盒

  5. 纸盒

  6. 导线胶布等工具

教程:

首先,下载arduino。我这里使用window系统,因为windows对usb的驱动比较友好。linux调试半天没有发现attiny85的驱动。如果谁能解决这个问题,欢迎提交。

https://downloads.arduino.cc/arduino-1.8.9-windows.exe

下载后一路安装就可以了。启动后,打开:文件->首选项,点击附加开发板管理器,输入 http://digistump.com/package_digistump_index.json

接下来打开:工具->开发板->开发板管理器,输入digistump搜索,安装即可。

然后,选择开发板:digispark(default-16.5mhz)

这个时候,把必要的库文件(Adafruit_Sensor、DHT-sensor-library)复制到C:\Program Files (x86)\Arduino\libraries文件夹。

该库的下载链接:https://github.com/weathernetwork/docs/raw/master/weatherminibox/code.zip

接线:

oled 的SDA接ATTINY85的P0,SCK接ATTINY85的P2,DHT11的输出端接ATTINY85的P1。其余的GND和VDD/VCC都连接好即可。

接下来新建一个项目,文件源码如下:

源码:

#include "SSD1306_minimal.h"
#include <avr/pgmspace.h>
#include "DHT.h"

#define DHTPIN 1     // what pin we're connected to
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

SSD1306_Mini oled;

void setup() {
  oled.init(0x3c);
  oled.clear();
  oled.startScreen();
  oled.cursorTo(8, 1);
  oled.printString("attiny85 & dht11");
  oled.cursorTo(0, 4);
  oled.printString("Temp: ");
  oled.cursorTo(0, 6);
  oled.printString("Humidity: ");
  dht.begin();
}


void loop() {
  delay(1000);

  char temp[16];
  oled.cursorTo(115, 4);
  itoa((int)dht.readTemperature(), temp, 10);
  oled.printString(temp);

  char hum[16];
  oled.cursorTo(115, 6);
  itoa((int)dht.readHumidity(), hum, 10);
  oled.printString(hum);

}

插上ATTINY85,烧录即可。

最终效果如下图所示:

这些裸漏的线很有geek的感觉。但是为了日常使用,还是要加一个壳子。

因为我的3D打印机坏了,所以徒手使用纸壳做一个。

先看一下大小 

然后画出大致位置并打洞 

把东西粘上去。(请无视我的黑胶布)

最终就是这样子,外形有些丑,但并不影响使用。 

附:源代码下载地址:

https://github.com/weathernetwork/docs/raw/master/weatherminibox/code.zip

获取更多创客作品和教程

请扫描二维码

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值