精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>利用PocketBeagle的多合一系統開源設計

利用PocketBeagle的多合一系統開源設計

2023-07-07 | zip | 0.66 MB | 次下載 | 免費

資料介紹

動機

每天早上從查看短信、天氣、電子郵件開始,有時,當您感覺非常好并且最重要的是,新聞。但是,要查看這些,您需要在手機上打開手機短信應用、天氣應用和新聞應用,或者至少滾動瀏覽手機上的所有通知。

為了讓我的早晨,希望你的早晨更輕松一些,我的目標是為你的床頭柜制作一個屏幕,顯示每日預報和當前溫度,以及當天的新聞頭條。一目了然,您可以看到開始新的一天所需了解的所有信息:如何穿著得體以及昨晚發生的時事。

概述:系統和電源框圖

poYBAGOW5WmAUwUUAABNBQaCQII397.jpg

1 / 2 ?系統框圖

使用 Wifi Dongle 連接到 Wifi

要連接到 wifi,我需要一個 microUSB 接口、USB 轉 microUSB 適配器和一個 wifi 加密狗。在PocketBeagle上,我首先將引腳VBUS(P1_5)和VIN(P1_7)焊接在一起,并將引腳ID(P1_13)和GND(P1_15)焊接在一起,以備使用。然后,我將 microUSB 分線板連接到 PocketBeagle 上的 USB1 總線(引腳 7-15)。最后,我將 wifi 適配器插入 USB 轉 microUSB 適配器。有了 wifi 加密狗的硬件,我繼續進行連接到 wifi 的軟件方面。

pYYBAGOW5XqALkI7AARwDxYdY1I797.jpg

USB-A 適配器和 wifi 加密狗。

Linux Cloud9 終端中,我運行以下代碼來連接到 wifi:

debian@beaglebone:/var/lib/cloud9/ENGI301/Project_01$ connmanctl

connmanctl》 enable wifi

Error wifi: Already enabled

connmanctl》 scan wifi

Scan completed for wifi

connmanctl》 services

*AR Rice IoT wifi_74da38de508b_5269636520496f54_managed_none

*A Rice Visitor wifi_74da38de508b_526963652056697369746f72_managed_none

Rice Owls wifi_74da38de508b_52696365204f776c73_managed_ieee8021x

eduroam wifi_74da38de508b_656475726f616d_managed_ieee8021x

DIRECT-f3-HP M15 LaserJet wifi_74da38de508b_4449524543542d66332d4850204d3135204c617365724a6574_managed_psk

connmanctl》 agent on

Agent registered

connmanctl》 connect wifi_74da38de508b_526963652056697369746f72_managed_none

Connected wifi_74da38de508b_526963652056697369746f72_managed_none

檢索天氣數據

為了檢索每日預報,我使用了 PyOWM,它是 OpenWeatherMap 的客戶端 Python 包裝庫。OpenWeatherMap ( http://openweathermap.com/ ) 是一種 API,可用于通過 API 密鑰檢索天氣數據。

from pyowm import OWM

我創建了一個免費帳戶并收到了一個 API 密鑰(免費訂閱*)。

API_key = ‘ada0a3424a34c9445c81fba49df33410’

owm = OWM(API_key)

接下來,對于我想要收集數據的位置,我找到了得克薩斯州休斯頓市的城市 ID,即 4699006。

#For Houston (city ID = 46990066)

obs = owm.weather_at_id(4699066)

定義這些變量后,我使用 get_weather 和 get_temperature 收集了三個溫度測量值。可以在 PyOWM 文檔的以下鏈接中找到其他查詢和電話:

https://buildmedia.readthedocs.org/media/pdf/pyowm/latest/pyowm.pdf

# Retrieve daily lows and highs as well as the current temperature

w = obs.get_weather()

temp = w.get_temperature(‘fahrenheit’)

*免費訂閱對您可以調用和訪問的數據有限制。幸運的是,我可以訪問當前溫度以及當天的高低溫。有關訂閱訪問的更多信息,請訪問http://openweathermap.com/。

檢索新聞標題

為了檢索每日新聞標題,我導入了許多庫:

要求

bs4(美麗湯)

JSON

約會時間

“requests”是一個庫,當我從紐約時報網站上抓取數據(頭條新聞)時,它可以幫助我們發出 HTTP 請求。

import requests

url = “https://www.nytimes.com/”

r = requests.get(url)

“bs4”是一個幫助從 HTML 中解析數據的庫。有關 bs4 用法的更多信息,請訪問:https ://www.crummy.com/software/BeautifulSoup/bs4/doc/ 。

from bs4 import BeautifulSoup

r_html = r.text

soup = BeautifulSoup(r_html, “html.parser”)

scripts = soup.find_all(‘script’)

“json”是一個可以編碼和解碼 JSON 的庫,JSON 是用 JavaScript 對象表示法編寫的文本。我使用 json 將 JSON 從網絡抓取的數據解碼為 Python。

import json

for script in scripts:

if ‘preloadedData’ in script.text:

jsonStr = script.text

jsonStr = jsonStr.split(‘=’, 1)[1].strip()

jsonStr = jsonStr.rsplit(‘;’, 1)[0]

jsonObj = json.loads(jsonStr)

使用這些庫,我可以找到并抓取新聞標題,以便稍后在 LCD 屏幕上顯示。

設置 LCD 屏幕

硬件:

pYYBAGOW5aKAbUq9AAuVpJz9eKo848.jpg

從 LCD 屏幕到 PocketBeagle 上的 GPIO 和 SPI0 的連接。

為了將 LCD 屏幕物理連接到 PocketBeagle,我在 LCD 屏幕上使用了引腳 Vin、GND、CLK、MISO、MOSI、CS、D/C 和 RST。我將這些引腳連接到 PocketBeagle(SPI0 和 GPIO)上它們各自的引腳。可以在本文檔末尾的燒結圖中找到這些連接。

我遵循了 LCD 屏幕制造商提供的說明,可在此處找到:https://learn.adafruit.com/adafruit-2-dot-8-color-tft-touchscreen-breakout-v2/overview。*

*起初,盡管連接正確,但我的 LCD 屏幕并未與 PocketBeagle 連接。后來我發現是因為我錯過了關鍵的一步;必須通過焊接閉合 LCD 屏幕背面的 IM1、IM2 和 IM3 跳線:

poYBAGOW5aeAZ5BVAACpoZPR1rw529.png

使用前先將液晶屏上的IM1、IM2、IM3插孔焊好。

軟件:

為了在 PocketBeagle 上設置和使用 LCD 屏幕,我導入了幾個庫。我設置和使用 LCD 屏幕的分步過程基于制造商在此處提供的一組基本說明:http ://learn.adafruit.com/adafruit-2-dot-8-color- tft-touchscreen-breakout-v2 。

數碼

木板

太平船務

adafruit_rgb_display

Adafruit_BBIO

時間

文本換行

“digitalio”是一個提供基本數字引腳支持的庫。

“板”是一個庫,用于描述和設置使用的引腳和板。“digitalio”和“board”一起使用:

import board

import digitalio

cs_pin = digitalio.DigitalInOut(board.P2_2)

dc_pin = digitalio.DigitalInOut(board.P2_4)

reset_pin = digitalio.DigitalInOut(board.P2_6)

spi = board.SPI()

“PIL”是 Python 圖像庫。我特別發現此鏈接對于了解模塊和與模塊相關的用法非常有用:https ://pillow.readthedocs.io/en/stable/ 。該庫用于實際顯示文本(天氣更新和新聞標題)液晶屏。

from PIL import Image, ImageDraw, ImageFont

“adafruit_rgb_display”是用于連接 LCD 屏幕 (ILI9341) 的庫。該庫是通過 LCD 屏幕的供應商推薦的。我按照此驅動程序的說明操作:https ://github.com/adafruit/Adafruit_CircuitPython_RGB_Display 。

import adafruit_rgb_display.ili9341 as ili9341

disp = ili9341.ILI9341(spi, rotation=90, cs=cs_pin, dc=dc_pin, rst=reset_pin,

baudrate=BAUDRATE)

為了遵循這一點,我還必須在安裝驅動程序之前安裝驅動程序的依賴項。說明可在此處找到:https ://github.com/adafruit/CircuitPython_Community_Bundle 。為了將此驅動程序用于 ILI9341,還進行了其他安裝(在驅動程序的 README 文件中進行了描述)。通常,我按照以下步驟安裝必要的驅動程序:

sudo pip3 install Adafruit_Blinka

# if the Adafruit_Blinka installation does not work:

# sudo apt-get install python-setuptools

# sudo apt-get install python-dev

pip3 install adafruit-circuitpython-lis3dh

# Download the bundle zip file from the (CircuitPython_Community_Bundle link)

git submodule init

git submodule update

sudo apt-get install python3-venv

python3 -m venv .env

source .env/bin/activate

pip install circuitpython-build-tools

source .env/bin/activate

circuitpython-build-bundles --filename_prefix adafruit-circuitpython-bundle --library_location libraries --library_depth 2

sudo pip3 install adafruit-circuitpython-rgb-display

Adafruit_Blinka 鏡像 CircuitPython,這樣我就可以使用其他庫,例如“board”和“digitalio”。Digitalio 和板用于定義和描述 PocketBeagle 的引腳輸出,以便我們可以設置顯示。

使用“Adafruit_BBIO”以便我可以使用 GPIO 引腳,特別是按鈕。使用這個庫,用戶可以通過按下按鈕來控制顯示。

import Adafruit_BBIO.GPIO as GPIO

“時間”是一個庫,我專門用來記錄按下按鈕時經過的時間。記錄時間是必不可少的,因為當按下按鈕超過 2 秒時,設備將停止運行腳本。當按下按鈕少于 2 秒時,用戶可以在查看當天的天氣預報和新聞標題之間切換。

在液晶屏上顯示

為了在 LCD 屏幕上顯示內容,我們使用 PIL 庫,如下所示。此外,我還下載了一個不同字體的 zip 文件來幫助定義“fnt”。

def createRGB(disp):

if disp.rotation % 180 == 90:

height = disp.width # we swap height/width to rotate it to landscape!

width = disp.height

else:

width = disp.width # we swap height/width to rotate it to landscape!

height = disp.height

image = Image.new(‘RGB’, (width, height))

# Reset the display

draw = ImageDraw.Draw(image)

draw.rectangle((0, 0, width, height), outline=0, fill=(0, 0, 0))

disp.image(image)

# Display the desired output

fnt = ImageFont.truetype(‘Pillow-master/Tests/fonts/FreeMono.ttf’, 16)

draw.text((0,0), text=cleand, fill = (255,255,255), font=fnt)

disp.image(image)

return createRGB(disp)

使用按鈕控制顯示

我的設備允許用戶通過按下按鈕來控制他們希望看到的信息(天氣預報或新聞標題)。

我使用一個 1k 歐姆電阻將按鈕添加到從一個輸入到按鈕的 3.3V 輸入,并將對角線引腳從 3.3V 輸入連接到 PocketBeagle 上的 GPIO(白線)。

pYYBAGOW5fSAFVdnAAuvX80VGBI268.jpg

按鈕的電路連接。

具體來說,如果按鈕被按下的次數是奇數,則顯示天氣預報。連接后,設備將開始運行。如果用戶按下按鈕一次,就會顯示當天的天氣預報。如果再按一次該按鈕,新聞標題就會顯示在 LCD 屏幕上。連續按下按鈕將導致新聞標題和天氣預報在 LCD 屏幕上交替顯示。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費