自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

物联网爱好者,持续分享电子DIY、物联网相关技术

持续分享电子DIY、物联网相关技术

  • 博客(121)
  • 收藏
  • 关注

原创 Arduino开发框架和常用函数学习

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。Arduino可以用于构建各种交互式项目和原型,无论是艺术品还是科学实验。Arduino开发板通常由一个单片机(如AVR系列的ATmega328P,或者乐鑫的ESP32等),引脚(用于连接其他电子模块和传感器),电源接口和与计算机通信的串口或USB接口组成。

2023-11-11 14:50:39 248

原创 基于VSCode + PlatformIO创建运行第一个esp32程序

到ESP32开发板。单片机开发和电脑程序开发有一个非常不同的点:电脑程序是在电脑上开发,电脑上运行,而单片机开发是电脑上开发,开发板上运行,所以编写好的代码需要通过数据线上传到开发板,才能运行。代码上传完成之后,会在开发板上自动运行(无需像电脑程序一样手动启动程序,因为单片机上只有一份程序,通电即自动运行),大家可以观察开发板上蓝色LED灯的效果(如果大家使用的不是我淘宝店铺提供的配套的开发板,那驱动芯片有可能不是CH340,这种情况下需要安装对应的驱动,这里的设备名也会有区别。

2023-11-11 14:48:21 705

原创 VSCode + PlatformIO ESP32开发环境配置(离线版5分钟搞定)

五分钟手把手教你搭建ESP32开发环境,不用几个小时在线下载,博主直接提供离线安装包,分分钟搞定

2023-11-11 14:45:35 1453 2

原创 ESP32开发板介绍

开发板型号模组型号模组官方资料芯片芯片官方资料管脚数量:30内存大小:512KBFlash大小:4MB双核 Xtensa® 32-bit LX6处理器,最高时钟频率240MHZ;内置Wifi、传统蓝牙、低功耗蓝牙支持;外设包括电容式触摸传感器,霍尔传感器,SD 卡接口,以太网,高速 SPI,UART,I2S 和 I2C,ADC,DAC等;支持睡眠模式,大幅提升续航能力;

2023-11-11 14:41:27 1937

原创 ESP生态介绍

乐鑫是一家总部位于中国上海的半导体和系统解决方案提供商。该公司成立于2008年,专注于为物联网(IoT)应用提供先进的无线通信技术和软件解决方案。乐鑫开发并推出了一系列低功耗、高性能的无线通信芯片和模组,其中最著名的是ESP32和ESP8266系列芯片。这些芯片具备集成Wi-Fi和蓝牙功能,并且易于开发和使用,成为IoT应用中的主要选择之一。Espressif还提供相应的软件开发工具和开发板,方便开发者进行应用开发和测试。

2023-11-11 14:39:45 105

原创 树莓派和Arduino,哪个才是你的菜

树莓派是基于ARM架构的单板计算机,而Arduino Uno则基于Atmel AVR单片机。这就导致了它们在处理能力和内存容量上的差异。树莓派具有更强大的计算能力,能够运行类似于桌面计算机的操作系统,例如Linux,从而可以处理复杂的任务。而Arduino Uno则更专注于物理计算和低级别控制,适合简单的嵌入式应用。树莓派具有更多的输入输出接口和可扩展性,可以连接不同类型的外部设备和传感器。这使得树莓派更适合需要与外部设备进行交互的项目,例如物联网应用或需要复杂输入输出控制的项目。

2023-11-11 14:34:59 81

原创 Arduino到底适不适合做产品

Arduino的优势在于社区的强大和众多类库资源,其资源和影响力已经让GitHub都加上了Arduino语言分类。如果在任一程序QQ群说“php是最好的语言”,必定会激起一番论战。如果讨论众多硬件开发平台孰好孰坏,就会陷入这种无意义的逻辑中。没有最好的开发平台,只有最适合项目的,最适合自己的开发平台。

2023-11-11 14:32:18 327

原创 Arduino、arm、树莓派、单片机四者有什么不同

树莓派基于ARM体系结构,具有处理器、内存、输入输出端口等组件,可以运行类似于桌面计算机的操作系统,并用于各种应用,包括学习编程、媒体中心、物联网项目等。单片机通常用于执行特定的任务,提供实时控制和处理能力。在总体上,Arduino是一种用于电子原型开发的平台,ARM是一种指令集架构,树莓派是一种功能强大的单板计算机,而单片机是一种用于嵌入式系统的集成芯片。初学单片机的同学,可能会对Arduino、ARM、树莓派以及单片机这些概念比较模糊,实际上,这四个是不同的概念和技术。】获取免费视频/文档资料。

2023-11-11 14:28:51 126

原创 为什么单片机内不继承晶振

有人说,芯片内部有 PLL,管它晶振频率是多少,用 PLL 倍频/分频不就可以了,那么这有回到成本的问题上来了,100M 的晶振集成到芯片里, 但我用不了那么高的频率,我只想用 10M 的频率, 那我为何要去买你集成了 100M 晶振的芯片呢, 又贵又浪费。芯片和晶振的材料是不同的,芯片 (集成电路) 的材料是硅,而晶体则是石英 (二氧化硅),没法做在一起,但是可以封装在一起,目前已经可以实现了,但是成本就比较高了。集成到单片机内部的晶振不够稳定,可能会受到周围环境的影响,导致频率偏差。

2023-11-11 14:04:47 192

原创 为什么继电器上会有多组电压/电流标识

这样一说,大家肯定就清晰了,产品要在国际市场上销售,就需要满足各个国家的各种认证标准,所以同一个继电器上会有不同的电气参数标准。其实呢,这样标注并非厂商有毛病,而是因为这些看似矛盾的标注,是不同认证标准下的参数。10A 250V AC (250V交流情况下,最大电流10A)10A 250V AC (250V交流情况下,最大电流10A)10A 250VAC (250V交流情况下,最大电流为10A)10A 125VAC (125V交流情况下,最大电流为10A)这两组看似多余或矛盾的标识呢?

2023-11-11 14:01:24 357

原创 上拉电阻与下拉电阻

大家在玩单片机的过程中,一定没少听过上拉电阻和下拉电阻这组名词,那么到底什么是上拉电阻和下拉电阻呢?今天我们一起来简单了解一下。

2023-11-11 13:55:59 26

原创 《零基础7天入门Arduino物联网-06》程序基础-编程语言是什么

程序设计可以理解为是用计算机语言创造出一系列指令的过程,这些指令可以让计算机按照我们预先设定的规则和流程,完成一些特定的任务或达到某种特定的目标。比如,我们可以编写一个程序来计算数学方程、管理电子邮件、控制机器人等等。程序设计是将人类的想法转换为计算机可以理解和执行的指令的过程,同时需要保证程序的正确性和高效性,确保计算机能够按照我们预期的方式工作。

2023-08-17 00:15:38 96

原创 《零基础7天入门Arduino物联网-05》电路基础知识下

电阻用于电路中,其主要功能在于控制电流的流动和阻碍电流的流动。在一个电路中,当电压施加到电阻上时,电阻会抵消电流的流动,从而减慢电流的流速。这有效地控制了电流的强度,并允许电路中的其他部分安全地工作。在电路中,计算电阻阻值时,通常会用到欧姆定律。在电路中一般用`R`表示。

2023-08-17 00:11:58 158

原创 《零基础7天入门Arduino物联网-04》电路基础知识上

直流电(DC)是指电流的方向始终保持不变的电流。这意味着,直流电的电子在电路中只向一个方向流动,通常从负极流向正极 。直流电的电压和电流通常是恒定的,不随时间而变化,直流电一般分为正极和负极。直流电通常用于需要稳定电源的应用,如电池、太阳能电池板、电动机等

2023-08-17 00:06:48 156

原创 《零基础7天入门Arduino物联网-03》单片机的定义基础知识科普

单片机是一种集成了微处理器、存储器和各种输入输出接口的单个芯片。它具有处理器的基本功能,同时还包括一些外设如定时器、计数器、ADC/DAC转换器、串口通信接口等,可以完成特定的任务,如控制电机、传感器读取、显示文本等。由于其小巧、低功耗、可编 程性强等特点,单片机广泛应用于电子产品、自动化控制、通信等领域。

2023-08-17 00:01:13 82

原创 《零基础7天入门Arduino物联网-02》物联网相关知识科普

物联网(Internet of Things, IoT)是指将物理世界和数字世界连接起来的概念。通过对物理设备进行智能化,并通过互联网将这些 设备与其他设备或系统连接起来,使它们可以通过网络沟通并进行数据传输。例如,智能家居设备,智能家电,智能医疗设备等都属于物联网的范畴。物联网的目的是使更多的物理对象变得更智能,更联系,更可控,从而提高人类的生活质量。

2023-08-16 23:58:11 100

原创 《零基础7天入门Arduino物联网-01》学前必看

零基础的小伙伴,建议您按照课程顺序一步步学习,除非您有相关知识积累,否则不建议跳跃式学习。本系列课程长期持续更新,欢迎不定期光临本站~ 另外,为了在学习过程中遇到问题有小伙伴一起讨论,建议加入上面所说的QQ交流群。群体开发,非系统性讲解,亦非为Offer而学。只要您对物联网感兴趣,不排斥Arduino,您就可以跟着本系列课程学习物联网,不需要您具备任何专业背景,更不需要任何编程基础,7天就能入门。节课之后的硬件,大家按需购买即可,课件中都 有详细购买地址。节课中用到的所有元器件,从。

2023-08-16 23:46:24 120

原创 Intellij打可执行Jar包的方法

Intellij打可执行Jar包方法点击项目设置:添加jar包配置

2019-08-22 16:57:27 340

原创 JDK Timer实现详解

概述定时器是工程开发中比较常用的工具,本文研究JDK中Timer定时器的实现原理。在JDK中,Timer主要由TimerTask,TimerThread,TaskQueue组成。TimerTaskTimerTask主要用来定义定时时间到来时,需要干什么事情,TimerTask继承自Runnable,所以具体的任务定义在run接口中。Task的状态有如下几种: /** * This t

2017-06-30 10:18:35 3303

原创 Thrift源码解析(三)传输层协议

传输层协议解析概述Thrift源码解析(二)序列化协议一文中介绍了thrift中传输的数据流怎么序列化,本文介绍数据流怎么传输。如 Thrift源码解析(一)主要类概述一文中的类继承图所示,thrift中所有的传输层协议的基类是TTransport。另外,需要说明的一点是,thrift是基于TCP协议的。基类剖析先看看TTransport这个基类有哪些common的抽象函数: /** *

2017-06-21 14:53:15 5398

原创 Thrift源码解析(二)序列化协议

概述对于一个RPC框架,定义好网络数据的序列化协议是最基本的工作,thrift的序列化协议主要包含如下几种:TBinaryProtocolTCompactProtocolTJSONProtocolTSimpleJSONProtocolTTupleProtocol(继承自TCompactProtocol)就如同Thrift源码解析(一)主要类概述的类继承图,上述这些序列化协议都是继承自TP

2017-06-14 23:59:09 3808

原创 Thrift源码解析(一)主要类概述

thrift简介Thrift是一个跨语言的RPC框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltal

2017-06-12 22:13:03 3314 1

原创 atom配置python开发环境

需要安装的插件快捷键配置ctrl + shift + p,搜索key map,修改配置文件如下:# 'atom-text-editor':# 'enter': 'editor:newline'## 'atom-workspace':# 'ctrl-shift-p': 'core:move-up'# 'ctrl-p': 'core:move-down''atom-text-edi

2017-05-23 22:22:57 5215

原创 is invalid, transitive dependencies (if any) will not be available解决方案

问题描述maven项目在编译的时候报如下WARNING: [WARNING] The POM for com.winwill.test:0.0.1-SNAPSHOT is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details翻译一下:

2017-05-15 20:51:13 18611 1

原创 NoSQL简介

NoSQL是“Not only sql”的简称,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的 web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据

2017-05-13 10:31:45 931

原创 slf4j的优势与使用原理

slf4j的全称是Simple Loging Facade For Java,即它仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已。所以单独的slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如apache的org.apache.log4j.Logger,jdk自带的java.util.logging.Logger等等。 s

2017-05-13 10:30:49 12169

原创 log4j配置详解

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。LoggerLoggers组件被分为五个级别:DEBUGINFOWARNERRORFATAL 各个级别的顺序是这样那个的:

2017-05-13 10:30:07 1323

原创 看完还不懂HTTPS我直播吃翔

存在即合理http是非常常见的应用层协议,是超文本传输协议的简称,其传输的内容都是明文的。在这个混乱的世界,明文传输信息想想就可怕,网络“小混混”的手段远比我们这些凡人高明得多,他们有一万种方式劫持,篡改我们的数据。对于一个网站或者服务,如果你给你的用户两个选择:通讯数据明文传输,速度快;通讯数据加密传输,但是速度可能会稍微慢一点.我想,只要脑袋没有长歪的用户都宁愿牺牲一点速度去换取数据传输的

2017-05-13 00:11:43 5136 3

原创 Mac版git命令自动补全

在Mac上安装了git之后,发现命令不能自动补全,使用起来非常不方便,本文介绍怎么让git命令能够自动补全。 确保bash能够自动补全在终端(本文使用的是OS X的终端)执行如下命令:brew list 看看是否已经安装有bash-completion,比如我的机器(已经安装了)运行上面的命令会显示: bash-completion node openssl pkg

2017-05-13 00:09:25 11577 1

原创 《互联网+创业相对论》摘抄

花了两天时间读完了《互联网+创业相对论》,下面是我摘抄下来的比较喜欢的语录: 当劳动者每个月的收入都是从我这获取的时候,我就掌握了绝对控制权。产品开发过程中过分追求完美,是产品快速迭代的大忌。创业者在市场机会微光乍现的时候,要能够及时把握,先做再纠正,要比等调研结果再做,更好。毕业于北京信息科技大学计算机专业的王宁,至今不会写代码,连一行都不会写。但“社会大学”给了他很多每一个痛点都是一个机会

2017-05-13 00:08:31 682

原创 差点挂球了

话说我年前2月2号就回家了,因为家在南方,比较冷,并且没有暖气,所以一种比较常规的取暖方式就是烧炭火取暖。然而,也就是因为烧炭火,我差点就在除夕的前一天挂球了。 事情是这样的,腊月二十八那晚,我烧了一盆碳火放在自己的卧室里(因为太冷,门窗都是关闭的),然后一边玩Dota一边烤火,玩到大概凌晨一点的时候,头开始有点晕了,我以为是玩太久了太累了,也没多想,于是就直接关了电脑上床睡觉了。睡到半夜三点的时

2017-05-13 00:08:00 682

转载 程序员八荣八耻

以动手实践为荣,以只看不练为耻。 以打印日志为荣,以出错不报为耻。 以局部变量为荣,以全局变量为耻。 以单元测试为荣,以手工测试为耻。 以代码重用为荣,以复制粘贴为耻。 以多态应用为荣,以分支判断为耻。 以定义常量为荣,以魔法数字为耻。 以总结思考为荣,以不求甚解为耻。

2017-05-13 00:07:21 693

原创 程序员最重要的两个东西

先来讲一个故事,最近在改造项目中日志处理服务,使用了公司内部公共的一些组件与服务。好不容易改造完成了,前几天开始灰度上线,上线观察了一天,从监控平台上可以看到,每次流量高峰期(一般早中晚各一次)就会出现大量的thrift反序列化失败的问题。出现问题怎么办呢?解决呗,就这样,故事开始了… 数据流图先来介绍整个服务的数据流示意图,如下: 每台服务器都会部署一个scribe-agent,用于将本机产生的

2017-05-13 00:05:46 1252

转载 代码战争

一天我路过一座桥,碰巧看见一个人想跳河自杀。我跑过去对他大喊道:“别跳,别死啊。” “为什么不让我跳?”他说。 “因为还有很多东西值得我们活下去啊。” “有吗?比如说?” “呃……你做什么工作?” “程序员。” “我也是!瞧,有共同点了吧。你是软件还是硬件?” “软件。” “我也是!PC 还是 Web?” “PC。” “我也是!Wi

2017-05-13 00:05:05 3097

原创 对称加密与非对称加密

想要在网络中传输数据,往往信息安全是首先要考虑的问题。一般来说,重要的信息在网络中传播都需要加密,接收方拿到信息之后需要解密。 加密/解密算法大致可以分为对称加密和非对称加密两类:对称加密定义采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据

2017-05-13 00:04:25 966

原创 给求职者的面试心得

最近组里急需招人,所以小伙伴们一起发力,在脉脉上发布了很多职位信息,果不其然,收到了很多很多求职简历,其中一半以上的都是iOS方向的(难道iOS真的是烂大街了吗),但是简单过了一遍之后,很多简历,大部分都比较糙,质量不达标,直接筛了。 剩下的通知来面试的,其实还是有很多问题,下面我以一个面试官的角度大致说一下,一份好的简历是什么样的,还有在面试过程中应该注意些什么:简历篇幅一定不能太长,一般一页

2017-05-13 00:03:30 801

原创 皆大欢喜的加薪

我的朋友A君是个典型的.NET开发人员,技术不错,人品也不错,在一家小公司(姑且称为甲公司)做项目开发,是技术骨干。3个月前,他找到我说想跳槽,让我帮忙介绍工作。我说为什么想跳了?为什么想离职?他简单说了一下他在甲公司当时的状况:A君在甲公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后,周末最多只有一天休息。

2017-05-13 00:02:47 700 3

原创 揭秘Node.js中exports和module.exports

首先我们得先摆出两条不变的真理:exports一开始是指向module.exports的;通过require得到的是module.exports中的内容,而不是exports的内容; 详解exports和module这两个对象是所有Node.js类型的文件中都默认隐式存在的,比如我们新建一个test.js文件:console.log(exports);console.log(module);在

2017-05-13 00:01:53 668

原创 如何为博客增加打赏功能

很多朋友喜欢在网络上分享自己的学习心得、工作经验、技术见解,自己呕心沥血写的好文章当然是非常希望得到认可。本文介绍怎么为博客文章增加打赏功能。我的博客使用的是maupassant主题,原来的主题没有打赏功能,接下来看看怎么自己实现打赏功能。最终的效果请看本文末尾,另外,本文介绍的方法我已经在GitHub上实现了,如果不想自己动手,那就使用我写好的现成的吧~增加css文件在主题的css文件夹下(我的目

2017-05-12 13:33:20 3126 1

原创 严防Math.abs()返回负数

最近有个线上spark streaming程序跑着跑着就挂了,调查了一番,发现了一个平时大家都不太注意的问题。看了日志,抛出的异常如下:java.lang.ArrayIndexOutOfBoundsException: -2 at com.xiaomi.poppy.hbase.HBaseUtil.getHashPrefix(HBaseUtil.java:58) at com.x

2017-05-12 13:32:37 4513

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除