树莓派学习记录
树莓派3B+的学习记录,基于wiringPi和node.js
喜欢的朋友可以微信搜索公众号:小猿猪哥
获取最新文章和和我联系。
小猿猪哥
这个作者很懒,什么都没留下…
展开
-
(三十一)树莓派3B+获取ADS1115 ADC转换的数据
好久没写东西了,最近事情也比较多,但是有时间还是在继续玩树莓派了。最近玩的是ADS1115模块。顺便把之前的代码都整理了一下。ADS1115是TI出的一个16位ADC模数转换芯片。这个是芯片的结构图,从这个图可以看出使用上是比较简单的一个芯片了。实际使用中发现也不难。但是和之前使用的ADXL345、MPU6050等IIC接口的芯片又有一些细小的差异。先看下面这个图:写操作是先往Pointer Register寄存器写0x01,表示接下来的是写操作,再写入对应的配置数据;读操作是先往Pointe原创 2021-04-14 08:59:56 · 2034 阅读 · 0 评论 -
(三十)树莓派3B+ 1-wire获取DS18B20温度
在之前的系列文章中,介绍了树莓派的GPIO端口的使用,IIC和SPI的使用。现在看似乎就剩下单总线和串口了。由于没有windows电脑,串口就没有研究了。上周也没有发推文了,一直卡在使用GPIO口按照DS18B20的时序图来驱动DS18B20,最后实验了几种方式还是不行。这里就按照网上有的方式来操作了。关于DS18B20,是一个单总线的温度传感器,关于单总线是什么,DS18B20是什么,大家可以自行上网查找。树莓派是支持单总线接口的。设置树莓派的1-wire端口1.在root用户模式下执行:rasp原创 2020-12-15 14:20:07 · 1340 阅读 · 0 评论 -
(二十九)树莓派3B+ 获取BH1750FVI光强度传感器数据
这个模块是几年前淘宝买的,找出来,发现还能使用,就找找资料玩了一下。产品介绍BH1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。(1lx-65535lx)产品特点支持 I2C BUS 接口(f/s Mode Support)。接近视觉灵敏度的光谱灵敏度特性(峰值灵敏度波长典型值:560nm)。输出对应亮度的数字值。对应广泛的输入光范围(原创 2020-11-19 10:30:40 · 2306 阅读 · 6 评论 -
(二十八)树莓派3B+ Node.js硬件SPI驱动Nokia5110液晶
前言在以前用wiringPi写过驱动Nokia液晶的例子《(十六)树莓派3B+ wiringPi库的使用–硬件SPI驱动NOKIA5110液晶》。现在使用的是Node.js驱动这个显示屏。简介Nokia5110液晶屏现在买到的都是之前Nokia5110手机的拆机屏幕,液晶驱动芯片是PCD8544。1.液晶屏原理图结合实物看,这个液晶屏的对外接口都是很简单的。2.PCD8544芯片特征单芯片 LCD 控制/驱动48 行,84 列输出显示数据 RAM 48*84 位芯片集成:——L原创 2020-11-11 15:12:27 · 643 阅读 · 2 评论 -
(二十七)树莓派3B+ 获取ADXL345加速度计的数据
简介在之前的文章中,介绍了MPU6050《12.树莓派3B+ MPU6050 两轴姿态显示》和HMC5883L《14.树莓派3B+ 获取HMC5883L的磁场数据》。这里的ADXL345又是IIC的操作,是代码没什么区别,就是每个传感器芯片的寄存器的差异和数据转换问题。ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率 高(13位),测量范围达± 16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用 中原创 2020-10-28 14:06:34 · 2420 阅读 · 0 评论 -
(二十六)树莓派3B+ 获取HMC5883L的磁场数据
模块介绍霍尼韦尔 HMC5883L 是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。HMC5883L 包括最先进的高分辨率 HMC118X 系列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在 1°~2°的 12 位模数转换器.简易的 I2C 系列总线接口。HMC5883L 的所应用领域有手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统。HMC5883L 采用霍尼韦尔各向异性磁阻(AMR)技术,该技术的优原创 2020-10-13 10:55:59 · 1590 阅读 · 0 评论 -
(二十五)树莓派3B+ MPU6050 三轴姿态显示
在上一篇中《12.树莓派3B+ MPU6050 两轴姿态显示》,是直接读取MPU6050的数据然后显示的,抖动很大,后来加了平均值滤波效果好了很多,但是还是获取不到Z轴的数据。后来发现可以通过四元数法获取到Z轴的数据,自己也试验过,发现Z轴的数据在不断的变化,并不稳定。也了解了一些DMP这个运动处理库,发现直接这个就可以获取到X、Y、Z三轴的角度,可是js并没有这个库,原库是C写了。但是发现网络还是有牛人,直接C和Node.js混编,搞出来了。但是在使用之前需要静置一段时间(我设置的是20s)获取误差值,然原创 2020-09-17 10:55:46 · 1561 阅读 · 1 评论 -
(二十四)树莓派3B+ Node.js驱动MPU6050
在之前的博客中写过MPU6050模块。(十四)树莓派3B+ wiringPi库的使用–硬件IIC驱动MPU6050之前使用的wiringPi和C语言写的,现在使用Node.js操作一下。关于电路连接和MPU6050模块的介绍,这里不做说明,大家自行查看之前的文章或者百度。树莓派驱动MPU6050var i2c = require('i2c-bus');// MPU6050 寄存器var PWR_MGMT_1 = 0x6B, PWR_MGMT_2 = 0x6C, SMPLRT_DIV = 0x原创 2020-09-09 11:24:10 · 467 阅读 · 0 评论 -
(二十三)树莓派3B+ 驱动蜂鸣器播放《茉莉花》
在上一篇(十二)树莓派3B+ node-rpio库的使用–硬件PWM中已经介绍了树莓派的PWM的使用。这里实际就是在上一个的基础之上的一个应用。需要一些关于简谱和蜂鸣器的基本知识了。1.简谱相关知识简谱是指一种简易的记谱法。有字母简谱和数字简谱两种。数字简谱以可动唱名法为基础,用1、2、3、4、5、6、7代表音阶中的7个基本级,读音为do、re、mi、fa、sol、la、ti(中国为si),英文由C、D、E、F、G、A、B表示,休止以0表示。每一个数字的时值名相当于五线谱的4分音符。一般来说,所有音原创 2020-08-21 10:40:57 · 2012 阅读 · 0 评论 -
(二十二)树莓派3B+ 部署vue网页项目且外网访问
最近高仿了一下手机网页端的华为商城项目。由于之前的阿里云服务器、域名都过期了,就一直寻思着怎么部署这个项目。刚好想到了家里还有树莓派,一直在吃灰中就拿出来用用了。准备项目准备项目的细节这里不做说明,大家有需要的可以自行下载查看git地址:https://gitee.com/hgdq/vmail.git,dist目录是我已经打包好了的,部署使用这个目录即可。树莓派 安装git树莓派安装git,可以看我之前的文章:Ubuntu 安装git和配置ssh(Coding实例)sudo apt-get upd原创 2020-08-05 19:31:58 · 1977 阅读 · 1 评论 -
(二十一)树莓派3B+ 阿里云IOT的接入 Node.js SDK RPC API调用
在上一篇 《(二十)树莓派3B+ 阿里云IOT的接入 Node.js SDK》介绍了使用阿里云IOT的Node.js SDK控制设备。这里其实也是使用SDK开发。阿里云的文档地址:https://help.aliyun.com/document_detail/57342.html云端API文档地址:https://help.aliyun.com/document_detail/30559.html安装阿里云Node.js SDK完成以下操作安装Node.js SDK:从GitHub下载所需产品的S原创 2020-05-28 20:55:19 · 776 阅读 · 0 评论 -
(二十)树莓派3B+ 阿里云IOT的接入 Node.js SDK
树莓派这个系列文章没有 七 和 十九 我也很无奈,有需要的可以 私聊我。其实树莓派接入阿里云真的很简单的,仔细看阿里云的相关文档即可。下面列举下必须看的(如果你不是使用Node.js 可以忽略)入门教程接入物联网平台设备开发引导Node.js SDK当然所有的文章都在这里:https://help.aliyun.com/product/30520.html安装 Node.js SDK将SDK安装到Nodejs项目所在目录: npm install alibabacloud-iot-dev原创 2020-05-17 15:20:09 · 814 阅读 · 0 评论 -
(十九)树莓派3B+ 接口控制LED
var express = require('express');var router = express.Router();var rpio = require('rpio');var LED_PIN = 29;rpio.open(LED_PIN, rpio.OUTPUT,rpio.LOW);// 打开LEDfunction turnOn() { rpio.write(LED_PIN, rpio.HIGH);}// 关闭LEDfunction turnOff() { rpio.w原创 2020-05-26 09:12:49 · 784 阅读 · 1 评论 -
(七)树莓派3B+ 访问树莓派
上周都是把树莓派带到公司玩,这个确实不怎么好。 就一直在想怎么可以访问放在宿舍的树莓派。网上有很多方法。我还是选择了花生壳做,这个简单。花生壳的购买购买地址:https://www.oray.com/activity/140902/?icn=oray_140902&ici=hsk_home-grid 我购买的是个人体验版本: 注册账号注册地址:https://conso...原创 2020-05-17 14:43:03 · 3497 阅读 · 2 评论 -
(十八)树莓派3B+ wiringPi库的使用--外部中断
搞过单片机的同学都知道,一般的单片机都有中断系统和外部中断。通过看树莓派的IC手册和WiringPi-Priority, Interrupts and Threads,可以发现树莓派也是具备的,且WiringPi还给我们通过了操作外部中断的函数。这里就介绍一下外部中断怎么使用。这个也是看WiringPi的文档和例子和自己多次试验测试之后发现的,官方文档和例子并不全面,这个不全面也导致我断断续续的搞...原创 2018-10-19 10:19:38 · 9120 阅读 · 3 评论 -
(十七)树莓派3B+ wiringPi库的使用--软件SPI驱动NOKIA5110液晶
在上一篇《 (十六)树莓派3B+ wiringPi库的使用–硬件SPI驱动NOKIA5110液晶》中介绍了使用树莓派的硬件SPI驱动NOKIA5110液晶屏幕。其实还可以软件驱动,这里我保存使用的引脚和程序功能和上一篇一致,就只需要修改两个函数。第一个数初始化管脚:// 初始化GPIO 端口void gpioInit(){ pinMode(LCD_DC,OUTPUT); pi...原创 2018-10-15 16:07:15 · 1316 阅读 · 0 评论 -
(十六)树莓派3B+ wiringPi库的使用--硬件SPI驱动NOKIA5110液晶
在这篇文章《stm8 软件模拟IIC驱动PCF8563T,NOKIA5110液晶显示》中使用的是STM8的硬件SPI驱动的NOKIA5110液晶。现在手里有树莓派,刚好wiringPi库也有SPI接口,这次就使用硬件SPI驱动NOKIA5110液晶。NOKIA5110液晶介绍NOKIA5110液晶是拆机屏幕,84*48的分辨率,接口为串行SPI(SPI-百度百科)接口。关于这个的详细介绍可...原创 2018-10-11 09:44:10 · 8233 阅读 · 1 评论 -
(十五)树莓派3B+ wiringPi库的使用--超声波测距HC-SR04
之前八月节气回家找了一下之前大学自己买的各种电子模块,记得有超声波模块的,也找到了,是HC-SR04超声波模块。这个实验也是上个月就测试好了的。HC-SR04模块介绍这些模块介绍,我都是直接截图的说明书的。淘宝上买模块,很多店家都会附带资料下载地址的。HC-SR04模块原理图通过这个原理图,可以看出,其实模块内部也有一个STC11的单片机处理了的,这里也可以看出为什么上面的时序图那么...原创 2018-10-09 08:55:05 · 1887 阅读 · 0 评论 -
(十四)树莓派3B+ wiringPi库的使用--硬件IIC驱动MPU6050
使用之前在使用树莓派3B+和wiringPi之前希望你已经熟读了和他们相关的文档。http://wiringpi.com/reference/i2c-library/树莓派3B+的引脚图这张图可以清晰的查看每个引脚的功能。mpu6050模块电路图模块外观:模块的资料地址:http://pan.baidu.com/share/link?shareid=2384903480&am...原创 2018-09-20 16:33:09 · 6226 阅读 · 2 评论 -
(十三)树莓派3B+ wiringPi库的使用--软件PWM
在《(十一)树莓派3B+ wiringPi库的使用–硬件PWM》介绍的是硬件PWM,其实wiringPi库还提供了软件PWM的方法。 电路图还是和之前的一样,效果也差不多。代码#include <wiringPi.h>#include <softPwm.h>#define pwm_pin 1 //定义PWM引脚 GPIO.1int main...原创 2018-09-12 15:31:44 · 6210 阅读 · 3 评论 -
(十二)树莓派3B+ node-rpio库的使用--硬件PWM
树莓派PWM引脚关于树莓派的引脚图可以看《 (六)树莓派3B+ node-rpio库的使用–点亮LED》。我的是树莓派3B+,排针的第12引脚也就是GPIO.1就是PWM输出的引脚。 在库rpio中介绍了树莓派的PWM引脚26-pin models: pin 1240-pin models: pins 12, 32, 33, 35那么我的树莓派3B+的第12,322,33,35...原创 2018-09-10 14:37:59 · 2279 阅读 · 7 评论 -
(十一)树莓派3B+ wiringPi库的使用--硬件PWM
关于树莓派的引脚图可以看《(五)树莓派3B+ wiringPi库的使用–点亮LED》。我的是树莓派3B+,排针的第12引脚也就是GPIO.1就是PWM输出的引脚,树莓派只有这个一路PWM输出引脚。当然如果采用软件PWM,那么每个GPIO引脚都可以当做PWM输出引脚使用。什么是PWM什么是PWM,我觉得可以看看百度百科的解释:PWM–百度百科。PWM占空比pwm的占空比,就是指高电平...原创 2018-09-07 22:52:50 · 13853 阅读 · 4 评论 -
(十)树莓派3B+ node-rpio库的使用--button按钮操作
在《(六)树莓派3B+ node-rpio库的使用–点亮LED》中使用的GPIO的输出功能,点亮一个LED。这次实验的button按钮的操作。电路链接 LED正极接排针的第40引脚; button按钮接排针的第38引脚。代码var rpio = require('rpio');var led_pin = 40; // 定义 排针的第40引脚接LED正极va...原创 2018-08-31 14:04:33 · 1526 阅读 · 1 评论 -
(九)树莓派3B+ wiringPi库的使用--button按钮操作
在《(五)树莓派3B+ wiringPi库的使用–点亮LED》中使用的GPIO的输出功能,点亮一个LED。这次实验的button按钮的操作。电路链接 LED正极接排针的第40引脚; button按钮接排针的第38引脚。代码#include <wiringPi.h>#define led_wirPIn 29 // 定义 排针的第40引脚接LED正极#d...原创 2018-08-29 15:31:49 · 3402 阅读 · 0 评论 -
(八)树莓派3B+ Mac安装树莓派系统
在《(一)树莓派3B+ 系统安装》,使用的是windows系统的电脑给树莓派装系统,一共大概是两步:格式化TF卡和写入系统。之前一直都是在公司使用公司的windows电脑。当时一直都没高通wifi链接。晚上就回去搞wifi。按照网上的方法测试了都没搞好,反到是搞的几次不能链接树莓派,前后一共是安装了4次树莓派的系统,一直都是安装的: RASPBIAN STRETCH LITE,无桌面版本的。这次...原创 2018-08-29 14:10:07 · 7137 阅读 · 0 评论 -
(六)树莓派3B+ node-rpio库的使用--点亮LED
node-rpio又可以叫rpio。是一个node.js版本的树莓派GPIO库。关于介绍可以直接看文档:https://www.npmjs.com/package/rpio。安装1.sudo npm install rpio 这个时候是会报错的:root@raspberrypi:/# sudo npm install rpio&gt; rpio@0.9.22 install ...原创 2018-08-27 15:04:01 · 2887 阅读 · 1 评论 -
(五)树莓派3B+ wiringPi库的使用--点亮LED
关于wiringPiwiringPi是用C语言编写的基于BCM 2835、BCM 2836和BCM 2837 的SoC 访问树莓派GPIO的库。wiringPi的安装我的软件都是clone在/home/pi目录下面,且我一般都是在root用户下操作。下面的操作无特殊说明都是root用户。 1.clone代码 git clone git://git.drogon.net/wiring...原创 2018-08-23 17:15:25 · 5440 阅读 · 1 评论 -
(四)树莓派3B+ 安装gcc和g++
安装如果不是root 用户,请自行加上sudo apt-get install gcc g++ 然后执行:gcc -v出现如下结果: 表示gcc安装成功测试一下(1)新建文件touch hello.c (2)插入如下代码:#include &lt;stdio.h&gt;int main(int argc, char *argv[]){ printf(...原创 2018-08-22 16:38:04 · 13645 阅读 · 0 评论 -
(三)树莓派3B+ 更换镜像源
镜像源可以简单的理解就是我们去从哪里的服务器下载软件源。树莓派默认的树莓派官方,也就是以为这意味着我们需要连接国外的服务器下载。但是在国内,我们就有必要修改成国内的镜像源,这个好处是大家都知道的。 在操作之前也是网上看了别人的文章:《树莓派—raspbian软件源(全》。这篇博客里面也列举了很多的镜像源,大家可以自行选择。ssh连接树莓派我使用的是默认的pi账户登录的树莓派,在更换之前需...原创 2018-08-22 09:46:21 · 6540 阅读 · 0 评论 -
(二)树莓派3B+ Node.js/pm2/git/nginx的安装
在之前的文章中我写过《Ubuntu 安装Node.js、Express和MySQL》和《CentOS上安装Node.js–v8.9.0》。今天就介绍一下在树莓派上怎么安装node.js。 在树莓派上安装我也试过我之前的安装方式,发现不成功。所以才有下面的安装办法。下载node.js最新版下载地址:https://nodejs.org/dist/latest/ 选择版本:这里我选择的是 ...原创 2018-08-21 14:27:17 · 1667 阅读 · 0 评论 -
(一)树莓派3B+ 系统安装
想想也有3年没玩电子了。今年来时就一直在关注树莓派。这个月实在是忍不住还是买了一个今年新出的树莓派3B+。上图欣赏 以前只是听说这个卡片大小。上周到手之后,确实只有卡片大小。这次有图有真相了,只有比一个常见的IC卡大一点点。 E14版本的包装也就是一个板子,说明说,没有静电包装。准备工作1.百度以下,你就知道 2.《[折腾向]树莓派3B+安装系统(Raspbian)以及配...原创 2018-08-20 15:17:35 · 3743 阅读 · 0 评论