0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用树莓派读取倾斜比重计

454398 来源:wv 2019-09-26 11:44 次阅读

第1步:您需要什么

Rapberry Pi 3-可从RS Components获得。

RPi3内置了蓝牙无线电。您也许可以将其与RPi的早期版本和蓝牙加密狗配合使用,但我没有尝试过。

用于RPi的microSD卡

监视器,键盘和鼠标(仅用于RPi的初始设置)

一个Google帐户。

像这样的小型显示器。 (可选)

10芯带状电缆,40针和10针接头连接器插座等,用于将显示器连接到RPi GPIO接头(可选)

第2步:设置Raspberry Pi操作系统

由于在https://www上已经有很多howtos,因此我将不涉及设置raspberry pi SD卡的细节。 raspberrypi.org。下载最新版本的Raspbian,并使用Win32 Disk Imager(Windows)或dd(linux)等软件包对SD卡进行映像。插入电源,将显示器,键盘和鼠标连接到RPi并打开电源。将其启动到桌面后,使用WiFi或直接将其插入网络集线器将其连接到本地网络。

打开终端外壳,并使用pi更新pi上的软件存储库信息。以下命令:

sudo apt-get update -y

然后使用

sudo apt-get upgrade -y

sudo apt-get dist-upgrade -y将pi上的所有软件升级到最新版本

最后,确保已安装所有必需的蓝牙和python软件

sudo apt-get install bluez python-bluez python-requests python-pygame python-rpi.gpio -y

步骤3:检查Pi是否可以看到倾斜的IBeacon

怎样用树莓派读取倾斜比重计

将倾斜式比重计放在一杯水中或倾斜一定角度以将其打开并在终端中发出以下命令。

sudo hcitool lescan

当您看到倾斜的地址和名称弹出时,请按ctrl + c停止扫描。 12位十六进制数字是倾斜的蓝牙地址。它就像是用于网络设备的MAC地址,但用于蓝牙。

如果未出现,则表示不正确。检查Tilt的电池状态,并且它实际上已经打开(当倾斜度从垂直位置移动到倾斜位置时,LED应当闪烁)。倾斜到垂直位置时,需要20到30秒才能进入睡眠模式。尝试使用AndroidIOS设备连接到Tilt。如果Tilt正常,则RPi一定有问题。仔细检查是否已安装所有必需的蓝牙软件。

步骤4:设置Python代码

这是我第一次完成任何操作Python除了运行别人开发的奇怪脚本外,还可以运行。这是一种很棒的高级解释器语言,看起来非常直观。并不是说我立即成为超级黑客,但是我可以让它做我想让它相对容易地做的事情。希望新手能够轻松浏览我的代码,知道自己在做什么的家伙不会太笑了。

要使此代码正常工作,您需要安装Google表格并如Tilt Hydrometer的人员在此博客文章中所述,作为Web应用程序进行了部署。将blescan.py和tiltV1.py复制到RPi上的同一目录(我与/home/pi/tilt一起使用),导航到该目录,然后使用文本编辑器(如文本编辑器)将表格Web部署应用程序的URL复制到纳米或gedit。使用

sudo python tiltV1.py

代码执行代码:

import blescan

import sys

import requests

import datetime

import time

import bluetooth._bluetooth as bluez

import pygame

import os

#Assign uuid‘s of various colour tilt hydrometers. BLE devices like the tilt work primarily using advertisements.

#The first section of any advertisement is the universally unique identifier. Tilt uses a particular identifier based on the colour of the device

red = ’a495bb10c5b14b44b5121370f02d74de‘

green = ’a495bb20c5b14b44b5121370f02d74de‘

black = ’a495bb30c5b14b44b5121370f02d74de‘

purple = ’a495bb40c5b14b44b5121370f02d74de‘

orange = ’a495bb50c5b14b44b5121370f02d74de‘

blue = ’a495bb60c5b14b44b5121370f02d74de‘

yellow = ’a495bb70c5b14b44b5121370f02d74de‘

pink = ’a495bb80c5b14b44b5121370f02d74de‘

#The default device for bluetooth scan. If you’re using a bluetooth dongle you may have to change this.

dev_id = 0

#function to calculate the number of days since epoch (used by google sheets)

#In python time.time() gives number of seconds since epoch (Jan 1 1970)。

#Google Sheets datetime as a number is the number of days since the epoch except their epoch date is Jan 1 1900

def sheetsDate(date1):

temp = datetime.datetime(1899, 12, 30)

delta=date1-temp

return float(delta.days) + (float(delta.seconds) / 86400)#scan BLE advertisements until we see one matching our tilt uuid

def getdata():

try:

sock = bluez.hci_open_dev(dev_id)

except:

print “error accessing bluetooth device.。。”

sys.exit(1)

blescan.hci_le_set_scan_parameters(sock)

blescan.hci_enable_le_scan(sock)

gotData = 0

while (gotData == 0):

returnedList = blescan.parse_events(sock, 10)

for beacon in returnedList: #returnedList is a list datatype of string datatypes seperated by commas (,)

output = beacon.split(‘,’) #split the list into individual strings in an array

if output[1] == black: #Change this to the colour of you tilt

tempf = float(output[2]) #convert the string for the temperature to a float type

gotData = 1

tiltTime = sheetsDate(datetime.datetime.now())

tiltSG = float(output[3])/1000

tiltTemp = tempf

tiltColour = ‘BLACK’

tiltBeer = ‘test’ #Change to an identifier of a particular brew

#assign values to a dictionary variable for the http POST to google sheet

data= {

‘Time’: tiltTime,

‘SG’: tiltSG,

‘Temp’: tiltTemp,

‘Color’: tiltColour,

‘Beer’: tiltBeer,

‘Comment’: “”

}

blescan.hci_disable_le_scan(sock)

return data

def main():

global screen

updateSecs = 600 #time in seconds between updating the google sheet

timestamp = time.time() #Set time for beginning of loop

updateTime = timestamp + updateSecs #Set the time for the next update to google sheets

while True:

data = getdata()

if time.time() 》 updateTime: #if we‘ve reached the update time then do a POST to the google sheet and reset the updateTime

r = requests.post(’https://the.address.of.your.google.sheets.script/exec‘, data) #Change this to the address of your google sheet script

#print r.text

updateTime = updateTime + updateSecs

if __name__ == “__main__”: #dont run this as a module

main()

我建议您在测试时减少’updateSecs‘变量的时间,无需等待片刻的更新。尝试将奇数打印(变量)也放入代码中,这样您就可以看到发生了什么事

步骤5:添加本地显示

“太好了”,我听你说,“但是如果我没有网络可以连接,那就太好了!”。是的,是的。我在介绍中提到的LAMP服务器安排将是一个很好的理由。另一种可能性是增加一个小的TFT显示屏,让您知道发生了什么。我使用了从我当地的Jaycar购买的Freetronics 128x128像素OLED显示器,价格约为20澳元。我按照这里的说明将其连接到Raspberry Pi上的GPIO接头,然后按照说明在此处安装由Notro开发的fbtft模块。

就我而言,我必须在目录/etc/modules-load.d/中添加一个名为fbtft.conf的文件:

sudo nano /etc/modules-load.d/fbtft.conf

,并添加以下几行

spi-bcm2835

fbtft_device

(在nano中按CTRL + x保存并退出)

然后将一个名为fbtft.conf的文件添加到/etc/modprobe.d/:

sudo nano /etc/modprobe.d/fbtft.conf

,并在其中添加以下几行

options fbtft_device name=freetronicsoled128

最后,最重要的是在“主界面”-》“首选项”-》“ Raspberry Pi配置”中’标签,启用SPI接口。重新启动,如果一切正常,将有另一个帧缓冲区fb1。通过发出以下命令进行检查:

ls /dev | grep fb

响应应为:

fb0

fb1

fb0是pi的HDMI输出。

《这些小屏幕很容易烧坏,所以我想建立一个函数使屏幕进入睡眠状态并有一个按钮将其唤醒。该显示器在显示器的“机翼”上带有两个按钮。我将它们以下拉配置连接到GPIO17和GPIO27。上面的电路图。

步骤6:使用Pygame开发显示器

一旦硬件就位并且操作系统能够识别显示器,我们就可以修改Python代码以使用Pygame合并屏幕。在这种情况下,我将修改SDL Environment变量以直接写入Freetronics显示器的帧缓冲区。希望代码中的行注释可以说明发生了什么。

与上次相同,将tiltV2.py模块复制到与blescan.py相同的目录中,并使用以下命令执行程序:

sudo python tiltV2.py

需要注意的几件事。如果您没有连接几个按钮,则没有办法退出该程序,除非将RPi上的插头拔出或将其推入一个单独的控制台并终止进程或重新启动。同样,一旦进入睡眠状态,将无法唤醒屏幕。您可以使用Pygame来监视键盘事件。我确定代码在那里。

Anywho,就是这样。也许这不是一个超级优雅的解决方案,我还没有考虑到校准点的编码,但是它可以工作,并且是新的android设备的廉价替代品。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 树莓派
    +关注

    关注

    116

    文章

    1707

    浏览量

    105660
收藏 人收藏

    评论

    相关推荐

    干货来喽!实用树莓Linux编译指南

    不友好,有没有好的解决办法? 今天来分享一下我的私藏干货——树莓Linux编译。编译好之后,开发板只需插到树莓派上连接电脑就可以直接用了,极其方便。 本文以树莓
    的头像 发表于 12-18 16:31 104次阅读
    干货来喽!实用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>Linux编译指南

    树莓传感器使用方法 树莓 Raspberry Pi 4优缺点

    开发和物联网应用。以下是一些基本的树莓传感器使用方法: 1. 连接传感器 GPIO引脚 :树莓的GPIO(通用输入/输出)引脚允许直接连接传感器。这些引脚可以用于
    的头像 发表于 12-06 10:35 447次阅读

    树莓与Arduino的区别是什么

    在当今的科技世界中,树莓(Raspberry Pi)和Arduino是两个经常被提及的名字。它们都是开源硬件平台,但它们的目标、功能和用途却大相径庭。 1. 目标和用途 树莓(Ra
    的头像 发表于 11-11 11:14 779次阅读

    ARM开发板与树莓的比较

    ARM开发板和树莓都是基于ARM架构的单板计算机,它们在教育、工业控制、物联网等领域有着广泛的应用。 硬件配置 ARM开发板和树莓的硬件配置各有特点,具体取决于不同的型号和制造商。
    的头像 发表于 11-05 11:11 463次阅读

    树莓gpio有什么,树莓gpio接口及编程方法

    /Output,通用输入/输出)是树莓提供的一组可编程的引脚,是树莓与外部世界进行交互的重要桥梁。通过GPIO,用户可以控制外部电路,读取
    的头像 发表于 10-22 18:09 891次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 909次阅读

    树莓网关:物联网应用的新标杆

    什么是树莓树莓(Raspberry Pi)是一种基于Linux的小型单板计算机,由英国的树莓
    的头像 发表于 10-09 16:44 321次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物联网应用的新标杆

    树莓和单片机的优缺点是什么

    树莓(Raspberry Pi)和单片机(Microcontroller)是两种广泛应用于电子项目和嵌入式系统的硬件平台。它们各自具有独特的优缺点,适用于不同的应用场景。 树莓
    的头像 发表于 08-30 18:21 1659次阅读

    树莓的功能用途是什么

    树莓(Raspberry Pi)是一款由英国树莓基金会研发的信用卡大小的单板计算机,自2012年推出以来,已经发展出多个型号和版本。树莓
    的头像 发表于 08-30 18:01 2712次阅读

    树莓gui开发什么ide

    树莓(Raspberry Pi)是一款功能强大的微型计算机,可以运行多种操作系统,如Raspbian、Ubuntu等。在树莓派上进行GUI(图形用户界面)开发,可以使用多种集成开发环境(IDE
    的头像 发表于 08-30 16:49 891次阅读

    树莓是x86还是arm

    树莓(Raspberry Pi)是一款由英国树莓基金会(Raspberry Pi Foundation)开发的微型计算机。它基于ARM架构,而非x86架构。 一、
    的头像 发表于 08-30 15:42 1088次阅读

    树莓装ubuntu和raspbian哪个更好

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的单板计算机,广泛应用于教育、科研、物联网等领域。树莓
    的头像 发表于 08-30 15:41 1338次阅读

    树莓5,Raspberry Pi 5 评测

    上进行了存储性能测试。使用Sysbench的文件IO测试,树莓5从一个Kingston Canvas Go Plus MicroSD卡读取速度为12.75MB/s,写入速度为8.5MB/s。同时
    发表于 06-19 14:51

    树莓主板如何连接电脑

    连接树莓派到电脑是一个非常有用的功能,它可以让我们在电脑上进行树莓的操作和管理。本文将详细介绍如何连接树莓主板到电脑。我会从准备工作开始
    的头像 发表于 01-07 15:40 1979次阅读

    基于树莓的环境监测系统

    树莓(Raspberry Pi)是一种小型而功能强大的计算机,其性能和功能足以支持许多应用领域。在环境监测系统中,树莓也被广泛应用。本文将详细介绍基于
    的头像 发表于 01-04 15:15 2728次阅读