- Internet of Things Programming with JavaScript
- Rubén Oliva Ramos
- 365字
- 2021-04-02 20:31:20
Raspberry Pi GPIO header
The following screenshot is a chart of the GPIO pins of the Raspberry Pi Zero. In this case, we will use the SPI configuration interface (SPI_MOSI, SPI_MISO, SPI_CLK, SPI_CE0_N
):

The following diagram shows the name of the pins of the MCP3008 chip that you connect to the Raspberry Pi:

The following image shows the temperature sensor:

You need to connect the following pins according to the next description:
- VDD to 3.3 volts
- VREF to 3.3 volts from the Raspberry Pi Zero
- Pin AGND to GND
- Pin CLK (clock) to GPIO11 of the Raspberry Pi
- DOUT to GPIO9
- Pin DIN to GPIO10
- Pin CS to GPIO8 and the pin
- Pin the MCP3008D GND to Ground
This connection is represented in the following figure:

The following image shows the connections of the sensor to the ADC MCP3008 and the Raspberry Pi:

Reading the data with a Python script
In the next section, you will create the MCP3008.py
file; you need to follow the next steps:
- Open the terminal on your Raspberry Pi Zero.
- Enter the interface in your Pi terminal.
- It's important to use
nano
before. - Type
sudo nano MCP3008.py
.
It will appear on the screen and we will describe the following lines:
- Import libraries:
import spidev1 import os1
- Open the SPI bus:
spi1 = spidev1.SpiDev1() spi1.open(0,0)
- Define the channels from the ADC MCP2008:
def ReadChannel1(channel1): adc1 = spi1.xfer2([1,(8+channel1)<<4,0]) data1 = ((adc1[1]&3) << 8) + adc1[2] return data1
- The function to convert volts is as follows:
def volts(data1,places1): volts1 = (data1 * 3.3) / float(1023) volts1 = round(volts1,places1) return volts1
- The function to convert temperature is as follows:
def Temp(data1,places1): temp1 = (data1 * 0.0032)*100 temp1 = round(temp1,places1) return temp1
- Define channels from the ADC:
channels = 0
- Define the reading time:
delay = 10
- The function to read the temperature is as follows:
while True: temp = Channels(temp) volts = Volts(temp1,2) temp = Temp(temp1,2)
- Print the results:
print"**********************************************" print("Temp : {} ({}V) {} degC".format(temp1,volts,temp))
- Wait every 5 seconds:
Time1.sleep(delay)
- Run the Python file using the following command:
sudo python MCP3008.py
- On the following screen, we can see the temperature, the ADC measurements, and the volts according to the temperature:
推薦閱讀
- 數(shù)據(jù)庫基礎(chǔ)教程(SQL Server平臺)
- LibGDX Game Development Essentials
- 企業(yè)數(shù)字化創(chuàng)新引擎:企業(yè)級PaaS平臺HZERO
- Python絕技:運(yùn)用Python成為頂級數(shù)據(jù)工程師
- PySpark大數(shù)據(jù)分析與應(yīng)用
- 商業(yè)分析思維與實(shí)踐:用數(shù)據(jù)分析解決商業(yè)問題
- 大話Oracle Grid:云時(shí)代的RAC
- SQL應(yīng)用及誤區(qū)分析
- 云數(shù)據(jù)中心網(wǎng)絡(luò)與SDN:技術(shù)架構(gòu)與實(shí)現(xiàn)
- Construct 2 Game Development by Example
- Chef Essentials
- Access數(shù)據(jù)庫開發(fā)從入門到精通
- 數(shù)據(jù)庫原理及應(yīng)用:SQL Server 2016
- C# 7 and .NET Core 2.0 High Performance
- Hive性能調(diào)優(yōu)實(shí)戰(zhàn)