【FireBeetle Board-ESP32应用教程】让你的打火机可穿戴
对于一个烟民来说,是否有过想抽烟却找不到打火机的经历?是否想过如果打火机可穿戴该有多好?没错,我就经历过这样的痛苦。话不多说,先晒两张照片:呵呵,体积有点儿大,不过效果已经很明显了,至少我自己都被迷住了。
我的打火机和传统的打火机不一样,是采用电弧打火的,通过触控按钮来控制打火。触控按钮采用FireBeetle Board-ESP32主板GPIO自带的触摸功能。而且,可以看出,他还是一个手表。下面我将制作过程分享给大家。
一、硬件清单
电弧点火器高压升压线圈×1
NPN三极管×1
51Ω电阻×1
1KΩ电阻×1
1N4007二极管×1
大功率NPN三极管×1
FireBeetle Board-ESP32主板×1
FireBeetle Covers-Proto Board×1
FireBeetle Covers-24×8 LED Matrix×1
3.7V锂电池×1
注意:部分原件可以在DFRobot商城采购到。
二、硬件连接
1、电路原理图,如下图所示:
将电子元器件按照图中的方式焊接在FireBeetle Covers-Proto Board板上,并将打火机的控制引脚用导线与D3连通,可以直接连接到FireBeetle Covers-Proto Board的D3,因为FireBeetle系列是pin to pin兼容的。
将Vcc连接到FireBeetle Covers-Proto Board板的Vcc,GND连接到FireBeetle Covers-Proto Board的GND(如果你看不懂原理图那就没得救了)。
2、连接触摸导线
DFR0478 FireBeetle Board-ESP32主板 自带触摸功能,这里用的是T3(A4)和T5(MCLK/IO12)(触摸引脚对应的端口可以查看FireBeetle Board-ESP32用户使用手册)。将A4和MCLK/IO12分半用导线引出来。
3、将LED灯板、ESP32主板和焊接好元件的扩展板连接在一起,如下图所示:
连接的方式可以采用排针和排母插接的方式,方便中间放置锂电池。
三、组装外壳
外壳采用3D打印机打印,源文件下载地址,点击下载。
组装前需要先下载代码到主板,源代码在压缩文件包中,程序如下:
#include "DFRobot_HT1632C.h"
#include <TimeLib.h>
#define DATA D6
#define CS D2
#define WR D7
DFRobot_HT1632C ht1632c = DFRobot_HT1632C(DATA, WR,CS);
int threshold = 40;
bool touch1detected = false;
bool touch2detected = false;
String twoDigits(int digits){
if(digits < 10) {
String i =String(digits);
return i;
}else {
return String(digits);
}
}
uint8_t utf8ascii(byte ascii) {
static uint8_t LASTCHAR;
if ( ascii < 128 ) {
LASTCHAR = 0;
return ascii;
}
uint8_t last = LASTCHAR;
LASTCHAR = ascii;
switch (last) {
case 0xC2: return(ascii);break;
case 0xC3: return(ascii | 0xC0);break;
case 0x82: if (ascii == 0xAC) return (0x80);
}
return0;
}
void updataClock(void){
String timenow = String(hour())+":"+twoDigits(minute())+":"+twoDigits(second());
uint16_t length = timenow.length() + 1;
uint16_t k = 0;
char* str = (char*)malloc(length*sizeof(char));
timenow.toCharArray(str,length);
length--;
for(uint16_t i=0;i<length;i++){
char c = utf8ascii(str<i>);
if(c!=0)
str = c;
}
str = 0;
ht1632c.clearScreen();
ht1632c.print(str);
free(str);
}
void gotTouch1(){
touch1detected = true;
}
void gotTouch2(){
touch2detected = true;
}
void setup() {
Serial.begin(115200);
pinMode(D3,OUTPUT);
digitalWrite(D3,LOW);
ht1632c.begin();
ht1632c.isLedOn(true);
ht1632c.clearScreen();
delay(500);
touchAttachInterrupt(T5, gotTouch1, threshold);
touchAttachInterrupt(T3, gotTouch2, threshold);
}
void loop() {
if(touch1detected){
touch1detected = false;
ht1632c.clearScreen();
ht1632c.print("1");
}else if(touch2detected){
touch2detected = false;
ht1632c.clearScreen();
ht1632c.print("2");
}else{
updataClock();
}
delay(50);
}</i> 将触控导线分别穿过外壳预留的按钮安装孔,如下图所示:
然后,将螺丝弹垫用热风枪吹热,这样方便固定螺丝弹垫到外壳(这个就是触控按钮了):
注意:不要用手去拿弹垫,小心烫手。
将弹垫固定到外壳,确保弹垫和导线连接:
注意:在固定前,需要将高压线圈的两个输出导线穿过外壳:
然后用热熔胶固定整个外壳。手环和打火机分别用魔术贴连接,如下图所示:
接着,下载程序到打火机,程序源码点击下载(3D源文件也在里面)。
再然后,就完工了。。。。。。
Chocho2017 发表于 2017-6-2 09:02
那两个凸起的峰,看到了么?上面有两个导线电极,是通过它们打火的。
有视频最佳~~论坛里都是不抽烟的好孩子~ Richard.Su 发表于 2017-6-5 14:50
确定打火的时候不会把旁边的PLA融化?
不会的,是电弧遇到物体才会燃的,外壳周围根本就没有问题。 Chocho2017 发表于 2017-6-2 09:02
那两个凸起的峰,看到了么?上面有两个导线电极,是通过它们打火的。
感觉像防狼的+1 照例,自己先抢个沙发。 我就想知道这是怎么打火的?求详解 我也想知道怎么打火:lol,不过样子很个性 防狼器也可以吧 那两个凸起的峰,看到了么?上面有两个导线电极,是通过它们打火的。 造型好像鸭嘴兽;P
Grey 发表于 2017-6-1 19:10
我就想知道这是怎么打火的?求详解
+1看来都是不抽烟的好孩子 安卓机器人 发表于 2017-6-1 21:29
防狼器也可以吧
:) 遇到色狼,直接喷火~~啊哈哈 LUNA开发了新玩法 确定打火的时候不会把旁边的PLA融化? Grey 发表于 2017-6-1 19:10
我就想知道这是怎么打火的?求详解
电弧啊。。。打个火星然后像于谦那样使劲嘬一口就着了{:5_191:} 师兄软件硬件都很了得!赞一个! luna 发表于 2017-6-5 10:04
+1看来都是不抽烟的好孩子
感觉像防狼电击棒。。。。 能否发个打火的照片 发个打火的视频 不玩火,但是点火的方式可以学一学 flashyidea 发表于 2018-3-9 07:31
不玩火,但是点火的方式可以学一学
对的。
页:
[1]
2