树莓派学习(C语言版)day1

本文围绕树莓派4B在Ubuntu 22.04.3 LTS(arm64)系统下的部署、SSH远程控制及wiringpi库安装展开。详细阐述了烧录镜像报错、系统初始化、xshell连接报错等问题的原因及解决办法,还提及获取root权限和wiringpi安装要点,亲测方案有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Error 1: Partition does not have a FAT file system

        硬件方面使用的是树莓派4B,RAM=4G,tf卡用的是闪迪64G。

        系统方面使用的是Ubuntu 桌面 22.04.3 LTS(arm64)

         注:在第一次安装的时候一定要注意自己安装的系统是arm64的还是armhf,这在后面的wiringpi库安装会很有用。(当时因为没有注意这个问题导致在安装wiringpi上面消耗了很多时间)ubuntu下载地址:在树莓派上安装Ubuntu | Ubuntuicon-default.png?t=N7T8https://cn.ubuntu.com/download/raspberry-pi

下载完成后你将会得到:这个时候我们就完成了系统的下载。接下来我们需要准备一个TF卡,使用烧录软件将系统文件烧录入tf卡中。

烧录软件链接:Raspberry Pi OS – Raspberry Piicon-default.png?t=N7T8https://www.raspberrypi.com/software/

问题一:第一次烧录的时候,出现了提示Partition does not have a FAT file system.

问题分析:

        这个问题产生原因是镜像文件出现问题。建议检查镜像文件是否为树莓派使用的Ubuntu镜像文件(是否下载成光盘映像文件)

错误文件长这样:

解决方案:使用烧录软件中的清除SD卡,将错误系统删除,重新烧录正确的系统镜像

注:这里需要注意,sd卡插入电脑后在文件管理器中是无法识别的,如果需要格式化磁盘会提示有写保护,这里不要慌,直接用烧录软件里的清楚SD卡即可。

Error2:系统init

SSH远程登陆对于没有显示屏的小伙伴来说是非常有效远程控制树莓派的好东西。

如果要实现SSH远程控制,则需要使电脑和树莓派在同一个局域网下(可以电脑开个热点啦)

电脑软件需求:xshell

在我做SSH远程控制之前,翻阅了很多别的大佬的文章,大径相同的解决方案就是在sd卡中加入两个文件,但是我经过好几次尝试,依旧很难将树莓派连接到我电脑的热点上,后来借用同学的显示屏才找到问题。

这里插入一下一个大佬的文档,内部有xshell的教程大家可以参考一下:

【树莓派】保姆级教程,如何优雅的使用ssh连接树莓派_树莓派ssh_Yuki i i i i i i i的博客-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/u014576547/article/details/123495010言归正传:在接入显示器后,发现系统还没完成初始化,需要等待5min左右让系统完成初始化。初始化过程中就可以完成wifi连入电脑局域网,初始化期间需要注意保持电脑网络通畅。

完成系统初始化后,可以通过电脑的热点查看树莓派的地址,根据上面文档的教程完成xshell的配置。

Error3:xshell报port 22错误

在完成找到查找到树莓派ip地址后,xshell依旧无法远程登陆树莓派,提示port 22错误。

该问题应该是 新的系统没有安装ssh端or没有打开ssh导致的,我最后参考了一个大佬的文档解决该问题,参考文档如下:

解决Xshell连接服务器失败:Could not connect to ‘192.168.191.128‘ (port 22): Connection failed._何极光的博客-优快云博客icon-default.png?t=N7T8https://luckylifes.blog.youkuaiyun.com/article/details/107796879根据上面的步骤进行调试,即可完成xshell和树莓派的连接

Suggest:关于获得root权限

因为我用的是C语言编写gpio,需要获得系统root超级权限,获得root权限方法可见以下文件:

Raspberry pi 获取root权限_树莓派 提权_flyingool的博客-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/linuxpassion/article/details/53972003

Error4:wiringpi安装

如果想要使用C语言编写树莓派,需要wiringpi的库。

在安装wiringpi之前,如果您是和我一样安装Ubuntu(arm64)系统的,可以参考我的操作,如果您是安装了树莓派官方系统或者32位操作系统,参考一下文档(一定要确定您装的系统64位还是32位):

树莓派4B-WiringPi库的安装和使用 (C和Python版)_树莓派4b安装wiringpi_电子芯吧客的博客-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/ICXBK/article/details/108461743如果是arm64的系统,推荐从github安装:

sudo apt-get install git //安装git
sudo apt upset //回车
sudo apt upgrade //回车
sudo apt-get install build//回车
git clone https://github.com/WiringPi/WiringPi.git//建议流量下载,回车
cd WiringPi//回车
./build//安装
gpio -v //回车
gpio readall //回车

完成后界面如下:

注:4B的wiringpi的版本必须要高于2.52,否则执行不了gpio readall。

suggest:最后编译.c文件的时候,可以使用:

gcc xxx.c -lwiringPi

以上是树莓派在ubuntu(arm64)系统部署,ssh,wiringpi时遇到的问题,个人解决查询的资料和个人的最终解决方案,解决方案亲测有效,最后成功成为点灯大师。

<think>好的,我现在需要帮助一位零基础的小白制定一份物联网学习路线。用户之前已经给出了一份详细的分阶段学习路径,但现在需要的是针对完全新手的版本,所以需要简化内容,并且从最基础的知识开始。首先,我应该回顾之前提供的物联网学习路径,看看哪些部分适合新手,哪些可能需要调整。 之前的路径分为基础、中级、高阶阶段,每个阶段都有硬件、通信协议、编程等内容。但针对零基础用户,可能需要更循序渐进的步骤,避免使用太多专业术语,并确保每个阶段的知识点容易理解和实践。例如,基础阶段可能需要先介绍什么是物联网,再逐步引入电子元件、基础编程等。 接下来,我需要考虑用户可能的起点。作为小白,用户可能对物联网的概念、硬件、编程都不了解,甚至可能没有接触过电路或代码。所以学习路线应该从最基础的概念开始,比如解释物联网的定义、应用场景,然后逐步引导到硬件基础知识,如传感器、微控制器,接着是简单的编程语言,如Python或Arduino,然后是通信协议和云平台的使用。 还要考虑学习资源的选择,确保推荐的是适合新手的教程、平台和工具,比如Arduino和树莓派这样的开发板对新手比较友好,同时推荐一些在线课程或社区,帮助用户解决问题。此外,实践项目非常重要,应该设计一些简单的项目,让用户能够动手操作,巩固所学知识,比如环境监测系统或智能家居原型。 需要避免过于复杂的内容,比如在初级阶段可能不需要深入网络层的IPv6或高级加密技术,而是先掌握基本的MQTT协议和HTTP通信。同时,要强调基础的重要性,打好电子基础和编程基础,才能顺利进入更复杂的中级阶段。 可能还需要加入一些学习方法和建议,比如如何制定学习计划,如何利用免费资源,如何加入学习社区等。此外,提醒用户常见误区,比如选择不适合的硬件或协议,帮助他们在学习过程中少走弯路。 最后,确保整个路线结构清晰,分阶段明确,每个阶段的目标、学习内容和推荐资源都一目了然。使用简单的语言,避免技术术语过多,必要时进行解释,并附上实例或项目,增强实用性。</think>### 零基础物联网学习路线(小白友好版) #### 一、认知入门(第1-2周) **1. 理解物联网概念** - **核心定义**:物联网 = 物理设备联网 + 数据交互(如智能手环同步心率$> 100\ \text{bpm}$时报警) - **典型应用**: - 智能家居(温湿度自动调节) - 智慧农业(土壤湿度$< 30\%$自动灌溉) - 可穿戴设备(步数统计$\sum_{day} \geq 10000$步) **2. 建立技术框架认知** - **四层架构模型**: ```mermaid graph TD A[感知层] -->|传感器数据| B(网络层) B -->|WiFi/4G传输| C[平台层] C -->|数据分析| D[应用层] ``` #### 二、基础技能搭建(第1-3个月) **1. 硬件入门** - **必学工具包**: | 工具类型 | 推荐型号 | 学习重点 | |----------------|-------------------|------------------------------| | 开发板 | Arduino Uno | 点亮LED(延时$\Delta t=500\ \text{ms}$) | | 传感器 | DHT11温湿度模块 | 串口输出(波特率$9600\ \text{bps}$) | | 执行器 | SG90舵机 | 角度控制(PWM脉宽$500\sim2500\ \mu s$) | - **电路基础**: - 欧姆定律实践:用$V=IR$计算LED限流电阻(如$5V$电源驱动红色LED需串联$220\ \Omega$电阻) **2. 编程初探** - **Arduino C语言**: ```arduino // 第一个物联网程序:温湿度监测 #include <DHT.h> #define DHTPIN 2 DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); // 设置串口波特率 dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("Humidity: "); Serial.print(h); Serial.print("% Temperature: "); Serial.println(t); delay(2000); // 每2秒采集一次 } ``` **3. 通信初体验** - **蓝牙控制案例**: - HC-05模块配对(默认密码$1234$) - 手机APP发送指令控制舵机(如发送角度值$90$) #### 三、系统实践阶段(第3-6个月) **1. 物联网平台接入** - **阿里云IoT平台入门**: - 创建产品(如产品Key:`a1xY6b****`) - 定义物模型(温度属性:float型,单位$^{\circ}\text{C}$) - 设备三元组连接(ProductKey+DeviceName+DeviceSecret) **2. 完整项目实战** - **智能花盆系统**: ```mermaid sequenceDiagram 传感器->>开发板: 土壤湿度数据(ADC值=620) 开发板->>云平台: MQTT上传数据(QoS1) 云平台-->>手机APP: 微信推送通知(湿度<40%) APP->>开发板: HTTP指令启动水泵 ``` **3. 进阶通信协议** - **MQTT协议实践**: - 使用PubSubClient库 - 主题订阅示例:`/device/001/temp` - 保留消息设置(Last Will消息:`status:offline`) #### 四、学习资源推荐 **1. 新手工具包**: ```python # 预算1000元入门套装配置 starter_kit = { "主控板": "Arduino Uno R3(国产版)", "传感器": ["DHT11", "土壤湿度传感器", "光敏电阻"], "通信模块": "ESP8266-01S(WiFi)", "配件包": "杜邦线(20根)+面包板+USB线" } ``` **2. 分阶段学习方案**: | 学习阶段 | 每日投入 | 里程碑项目 | |----------|----------|------------| | 第1个月 | 1小时 | 完成LED流水灯+串口打印"Hello IoT" | | 第3个月 | 2小时 | 实现温湿度数据微信推送 | | 第6个月 | 3小时 | 搭建完整的智能家居原型系统 | #### 五、避坑指南 **1. 硬件选购原则**: - 优先选择兼容Arduino的模块(标识有`GND/VCC/OUT`引脚) - 避免直接购买树莓派(复杂度$\propto$价格),先用国产ESP32开发板 **2. 代码调试技巧**: - 串口调试法:输出关键变量值(如`Serial.println("当前温度:"+String(t))`) - 分模块验证:先单独测试DHT11,再集成到主程序 **3. 学习效率提升**: - 使用**番茄工作法**:25分钟专注学习 + 5分钟休息 - 加入创客社区(如`DFRobot`论坛),提问格式: ``` [问题描述]:我的DHT11始终返回NaN [已尝试方案]:更换引脚/检查接线 [现象截图]:(贴出串口监视器截图) ``` *建议学习路径:先从淘宝购买¥200左右的Arduino入门套件,完成3个基础实验后,逐步添加WiFi/蓝牙模块。每完成一个阶段,可在B站发布作品视频(标签#物联网小白成长记),获得反馈与动力。*
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值