一 DHT22传感器

 

目前树莓派可以使用的温度传感器还是比较多,主要有DHT11、DHT22和DS18B20。其中DS18B20只能测量温度,而DHT11精度和范围都比HDT22要差,量程湿度20-90%RH, 温度0~50℃, 所以我选择了DHT22,价格上DHT115,6块钱。而DHT22大概在15-18块左右。 温湿度传感器在空调、除湿机、汽车等很多地方都有使用。

DHT22样子是这样。上面写着ASAIR AM2302,表示使用的奥松的AM2302型温湿度传感器。每次使用一个设备之前都必须要了解这个设备的信息,奥松官网有详细的AM2303手册参考。

 

继续阅读

0

之前在美国的VPS主机上使用SeaFile搭建过一个网盘,但是用的很少。 在腾讯买了主机之后,正好利用COS一起可以在搭建一个网盘。在网上看了下,NextCloud用的人比较多,所以准备试一下。 官网: https://nextcloud.com/

 

 

一 NextCloud 安装

 

官网上有好几种安装方式,使用Docker或者是Snap安装是最方便的,直接集成好了需要的环境。我还是采用手动安装的方式,这样整个过程是可控的。

 

 

1.环境准备

 

我的主机是Ubuntu16.04的系统,使用NextCloud 需要HTTP服务器、PHP和数据库。 这些我之前已经装好了,如果没有安装请先安装。下面是我服务器上安装的版本,如果版本不同,可能会有一些差别,特别是php版本。

  • nginx:1.10.3
  • php: v7.0.30
  • MySQL:5.7.23

所以在安装nextcloud之前,请保证nginx、php7和MySQL能正常使用。

 

安装PHP插件

nextcloud需要安装一些php插件才能正常工作,下面是我安装时需要用到的。 其中mysql是我之前安装wordpress已经安装了。后续安装过程中如果还提示缺少插件,可以在安装。可以参考:Installation on Linux

sudo apt install php7.0-curl php7.0-gd php7.0-zip php7.0-mbstring php7.0-mysql

 

创建MySQL数据库和用户

nextcloud需要使用到数据库,所以我们可以创建一个数据库和用户。命令行登入到MySQL之后,执行下面命令来创建数据库和用户。

mysql> create database nextcloud; 

mysql> create user 'nextcloud'@'%' identified by '你用户的密码';

mysql> grant all privileges on nextcloud.* to 'nextcloud'@'%';

mysql> flush privileges;

继续阅读

0

前面成功的使用RPi.GPIO库,设置高低电平完成了LED灯和蜂鸣器的状态控制,因为RPi.GPIO没有提供对TM1637的支持,所以借助了已有的库完成了四位数码管的显示。从tm1637.py源码看,他实际也是使用了RPi.GPIO库。 虽然PRi.GPIO库只提供了简单的设置GPIO高低电平的功能,但是我们前面说过这是所有通信的基础,你可以自己通过设置高低电平来实现所有的协议通信。这么一说和我们只用0和1来编程有点象了。只要有0和1,你可以编写任何代码。而这里有高低电平你可以控制任何设备。所以这一篇打算简单分析一下TM1637的源码。

 

一 TM1637

 

先从高层次的TM1637开始分析。在控制LED和蜂鸣器时,我们使用一个高低电平就能控制设备,因为对于这样的设备来说,他们的通信协议非常简单。 高电平发光、低电平不发光。相比而言,TM1637数码的协议就负责很多。要想知道一个设备的通信协议就需要有设备的资料。

我们在网上买到的TM1637一般是下面这个样子。这是由CATALEX公司出的4-Digit Display。而一般称他为TM1637是指它背后的拿颗20针的控制芯片。整个数码管子是由TM1637芯片(U1)、4位数码管(U2)和4针接口(J1)组成的。

继续阅读

0

前面已经学习了一些树莓派系统和GPIO的基本知识了,现在可以开始动手做一些简单的东西了。因为一些外设的连接会涉及到一些电路的知识,如果操作不当可能会损坏外设或者是树莓派。所以在哦动手之前最好还是补充点电路相关的知识。我是花了点时间又把初中电路稍微复习了下,然后又乱七八糟看了点模拟电路、数字电路。所以最终应该也没有太多用处。

网上对于树莓派第一个项目基本就是接LED,然后控制。所以我第一个程序也使用LED,只不过想做的稍微复杂一点。 结合数码管和蜂鸣器来模拟十字路口的交通信号灯。使用的材料主要有:

  • 3个不同颜色的LED灯
  • TM1637四位数码管
  • 有源蜂鸣器
  • 若干100欧以上的电阻
  • 面包板和面包板连接线
  • 若干杜邦线

 

继续阅读

0

树莓派基本环境搭建好之后就可以在上面安装各种应用了。这样对树莓派来说就是一台小型电脑,基本电脑、服务器能做的事情她也都能做。只不过内存比较小。1G的内存多跑2个服务内存就吃不消了。最近VPS也是,apache和tomcat一跑,差不多吃了500M内存,也不知道能怎么优化了。而且家里光猫无法破解成桥接模式,外网穿透还没有做,所以就没装什么服务。 所以还是玩一玩树莓派相比电脑特有的东西吧。

 

一 GPIO

 

GPIO全称是General Purpose Input Output (通用输入/输出)。广义上来说它并不是类似USB、DVI、HDMI这样一种特定协议的接口,而是通用接口的总称。对于了解单片机的人来说应该非常熟悉,而对于我们这些纯软件开发,没有接触过单片机的人来说,并不是很好弄清楚到底是个什么东西。 下面是维基百科的定义:

general-purpose input/output (GPIO) is an uncommitted digital signal pin on an integrated circuit or electronic circuit board whose behavior—including whether it acts an input or output—is controllable by the user at run time.

从上面总结出几点:

    1. 数字针脚(可以是集成电路上的针脚,比如CPU或位处理器的针脚;也可以是开发板比如树莓派、Arduino上提供的GIPO接口)
    2. 可以用来输入或输出
    3. 运行时可控

继续阅读

0

一 安装开发必备软件

 

 

build-essential

 

最基本的,系统已经装好了,里面主要包括gcc, libc, make

pi@raspberrypi-cc:~ $ sudo apt install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version (12.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

 

gcc/g++

 

build-essential系统已经装好了,那么gcc自然也好了

好像从Android 7.0开始的source编译默认编译器已经使用clang,不过目前也没编译源码的需求,关键这机器得编译一天吧。。。哈哈,先不装了

继续阅读

0

目前除了官方系统和其他基于Linux的系统外,树莓派还可以使用Windows IoT系统,当然也有然把Windows10 ARM移植到了树莓派上。不过Windows IoT是官方系统。 微软目前有一整套物联网相关的解决方案,主要包括Azure IoT 和 Windows10 IoT,应该分别对应的了云端和设备端。 对于云端来说可以利用微软的Azure云平台,提供大数据存储和处理,人工智能,机器学习等功能,然后和安装了Windows10 IoT的设备进行联通控制。 有兴趣的话可以看一下微软的网站:https://www.microsoft.com/zh-cn/internet-of-things/products

 

Windows10 IoT

 

Windows 10 IoT powers the intelligent edge

Simplify the Internet of Things with a rich device platform, world class developer tools, enterprise grade support and a global partner ecosystem. Do more at the edge with machine learning capabilities and scale with the power of Azure IoT.

通过利用 Windows 10 IoT 将你的资产转变为智能设备,以实现边缘和云智能的出色平衡,从而拓展深度学习,完成更多事项。

这是微软对Windows10 IoT的解释。利用Windows10 IoT可以实现跨平台,在不同平台上有相同的表现。IoT系统主要有两种:

  • Windows IoT Core

    Built for small, secure, smart devices. Our smallest Windows 10 operating system can run on both Intel or ARM hardware.

  • Windows IoT Enterprise

    Bringing the full power of Windows to smart devices, Windows 10 IoT Enterprise has specialized lockdown features for creating dedicated devices.

对于树莓派来说安装的是Windows10 IoT Core。

 

继续阅读

0

最近业余有点空闲时间,入手了一台树莓派3B+,想业余时间架点服务,另外尝试一下连接一些外设玩玩。第一次玩,很多不清楚的,所以边玩边写下来。

 

一 硬件

 

目前最新的树莓派版本是3B+,今年3月发布,上一代是16年发布的。主要区别在于CPU 频率提升到了1.4G, 网卡升级到了1000M,支持5GWIFI, 蓝牙升级到4.2。

其他树莓派型号如下:

继续阅读

1+

我们在浏览器访问一个网页时,一般输入一个网页的地址,比如: www.baidu.com,然后就可以和远程服务器建立HTTP连接传输数据。但是对于网络层来说,它只认识IP地址,并不认识网页地址。所以他们之间有一个转换的过程。这个转换过程是DNS服务完成的。

 

域名

 

网域名称英语:Domain Name),简称域名网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

IP地址Internet主机的作为路由寻址用的数字体标识,人不容易记忆。因而产生了域名这一种字符型标识。

域名是有分级的,顶级域名主要按照组织(com, org, net)和地区(us, cn, hk ,cc)划分。比如我注册的021xt.cc这个域名,.cc是一个地区顶级域名,021xt.cc是顶级域名下的一个二级域名。 而www.021xt.cc, blog.021xt.cc 这些都是三级域名,而xxx.blog.021xt.cc是四级域名,依次类推。

 

DNS

 

网域名称系统英文Domain Name System,缩写DNS)是互联网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCPUDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符

继续阅读

0

一 VPS是啥

 

虚拟专用服务器英语:Virtual private server,缩写为 VPS),是指通过虚拟化技术在独立服务器中运行的专用服务器。每个使用VPS技术的虚拟独立服务器拥有各自独立的公网IP地址、操作系统、硬盘空间、内存空间、CPU资源等,还可以进行安装程序、重启服务器等操作,与运行一台独立服务器基本相同。

这是维基百科上的解释。其实和我们自己在电脑上装虚拟机是一样的,只不过VPS有独立的公网IP。多个VPS之间系统是隔离的,但是硬件不是隔离的。 比如Host Server是8核CPU+16G内存,如果安装了8个VPS,那么每个分配1核CPU+2G内存。用过虚拟机的就明白的,不用多解释。

VPS系统主要是xUNIX系统,这样不需要图形界面,远程SSH上去操作。目前也有Windows的VPS,主要就是图形化的远程登录操作。VPS就好比是自己电脑,自由度很大。

 

虚拟主机?云主机?

 

虚拟主机英语:Virtual Host)(英语:Shared Web Hosting),又称虚拟服务器主机空间或是网页空间,是一种网络技术,可以让多个主机名称(host name),在一个单一服务器(或是一个服务器组)上运作,而且可以分开支持每个单一的主机名称。

虚拟主机是以前用的比较多的,主要用来架设个人网站,搭建FTP服务器等。利用Apache和IIS 就很容易搭建虚拟主机。以前主要使用FTP等方式进行远程操作。相对于VPS自由度比较小。而云服务可以说是VPS加上云的概念,是在一组集群主机上划分出的多个VPS集群。

所以个人用而言,使用VPS是最好的选择。一般使用xUNIX系统,无论是科学上网、建站、搭建云盘等等都不在话下。

继续阅读

0