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

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

3天内不再提示

Argon带你用mqtt连OneNET,漂移菌带你跑Linux和驱屏幕

电子森林 来源:FPGA入门到精通 作者:FPGA入门到精通 2020-10-30 16:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

昨天我们看了圈圈和Rudy做的详细介绍,包括入门和连接阿里云。今天我们来看看嵌入式网络工程师Argon讲述怎么连上另一个IOT平台——OneNET,还有骑驴玩儿漂移的漂移菌带来的讲解以及他为大家准备的Github/Gitee仓库。

Argon

自我介绍

很有幸参与到这次Digi-key和硬禾学堂联合举办的这次开发板体验活动。我叫Argon,来自浙江杭州是一名从事安防行业的嵌入式网络工程师。从大学开始就对微电子充满了兴趣,在闲暇的时间也会利用手头的元器件自己搭建一些好玩的DIY产品。

实现功能叙述

1. Seeed STM32MP1开发板教程(0)前期准备篇: https://blog.csdn.net/Argon_Ghost/article/details/109006612 2. Seeed STM32MP1开发板教程(1)Wi-Fi的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986471 3. Seeed STM32MP1开发板教程(2)GPIO的简单操作: https://blog.csdn.net/Argon_Ghost/article/details/109009824 4. Seeed STM32MP1开发板教程(3)IIC设备AHT10的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986562

心得体会

工作从事的一直Linux网络开发,公司对代码的封装较为良好很少涉及到需要手动去驱动外设的情况。通过这次活动我自己手动去编译设备树,修改设备树文。我对设备树以及linux内核的编译有了更深层是的理解,同时也要感谢@圈圈BG3MDO、@漂移菌 大佬的细心指导,编写驱动的过程也是我们共同探索的过程。在十一期间的多个夜晚我们和大洋彼岸的圈圈大佬视频会议来探讨设备树相关的技术难点,也让我想起了大学期间在实验室熬夜攻关的日子。非常感谢硬禾举办的这次体验活动,让更多的学生以及工程师能了解到ST等大厂最新的产品和技术。 希望之后硬禾多增加宣传活动的力度,这个活动我也是从朋友那里得知的。之前对硬禾的了解非常有限,希望硬禾以此为契机来提高自己的知名度。

漂移菌

个人介绍

我是李伟斌, AKA 骑驴玩儿漂移,漂移菌。我是伍艾信息科技的一名工程师,我的日常就是打杂。长期使用树莓派,并熟悉 linux 的系统管理和网络应用,熟悉 python 编程和 C 语言编程,精通 shell 脚本编程。 在 STM32MP157C 上最先完成了一系列的 linux 系统级别的操作。 例如,配置 uEnv。txt 并加载全驱动 dtb 并开启 wifi ,联网后,更新了软件源,切换到清华国内的源。 安装了 vim 工具,编译工具等等,并进行了磁盘的扩展,默认磁盘空间大概只有 2GB,通过计算和配置,将磁盘扩展到 32GB,并通过 USB 接口实现了两个U 盘合并的磁盘整列。软 Raid。 通过 stm32mp157c的 A7 核运行的 linux,搭建了一个简易 web 和群友共享资源。 后面实现了点灯,pwm 呼吸灯, spi 驱动屏幕等操作。

代码内容

1.小夜灯 I2C 驱动(shell 脚本)

root@npi:/home/debian/bin# cat led.sh

#!/bin/bash

while true

do

i2cset -y 1 0x15 0x01 0xff sleep 0.2 i2cset -y 1 0x15 0x02 0xff sleep 0.2 i2cset -y 1 0x15 0x03 0xff sleep 0.2 i2cset -y 1 0x15 0x04 0xff sleep 0.2 i2cset -y 1 0x15 0x05 0xff sleep 0.2 i2cset -y 1 0x15 0x06 0xff sleep 0.2 i2cset -y 1 0x15 0x07 0xff sleep 0.2 i2cset -y 1 0x15 0x08 0xff sleep 0.2 i2cset -y 1 0x15 0x09 0xff sleep 0.2 i2cset -y 1 0x15 0x0a 0xff sleep 0.2 i2cset -y 1 0x15 0x0b 0xff sleep 0.2 i2cset -y 1 0x15 0x0c 0xff sleep 0.2 i2cset -y 1 0x15 0x0d 0xff sleep 0.2 i2cset -y 1 0x15 0x0e 0xff sleep 0.2 i2cset -y 1 0x15 0x0f 0xff sleep 0.2 i2cset -y 1 0x15 0x10 0xff sleep 0.2 i2cset -y 1 0x15 0x11 0xff sleep 0.2 i2cset -y 1 0x15 0x12 0xff sleep 0.2 i2cset -y 1 0x15 0x13 0xff sleep 0.2 i2cset -y 1 0x15 0x14 0xff sleep 0.2 i2cset -y 1 0x15 0x15 0xff sleep 0.2 i2cset -y 1 0x15 0x16 0xff sleep 0.2 i2cset -y 1 0x15 0x17 0xff sleep 0.2 i2cset -y 1 0x15 0x18 0xff sleep 0.2 i2cset -y 1 0x15 0x19 0xff sleep 0.2 i2cset -y 1 0x15 0x01 0x00 sleep 0.2 i2cset -y 1 0x15 0x02 0x00 sleep 0.2 i2cset -y 1 0x15 0x03 0x00 sleep 0.2 i2cset -y 1 0x15 0x04 0x00 sleep 0.2 i2cset -y 1 0x15 0x05 0x00 sleep 0.2 i2cset -y 1 0x15 0x06 0x00 sleep 0.2 i2cset -y 1 0x15 0x07 0x00 sleep 0.2 i2cset -y 1 0x15 0x08 0x00 sleep 0.2 i2cset -y 1 0x15 0x09 0x00 sleep 0.2 i2cset -y 1 0x15 0x0a 0x00 sleep 0.2 i2cset -y 1 0x15 0x0b 0x00 sleep 0.2 i2cset -y 1 0x15 0x0c 0x00 sleep 0.2 i2cset -y 1 0x15 0x0d 0x00 sleep 0.2 i2cset -y 1 0x15 0x0e 0x00 sleep 0.2 i2cset -y 1 0x15 0x0f 0x00 sleep 0.2 i2cset -y 1 0x15 0x10 0x00 sleep 0.2 i2cset -y 1 0x15 0x11 0x00 sleep 0.2 i2cset -y 1 0x15 0x12 0x00 sleep 0.2 i2cset -y 1 0x15 0x13 0x00 sleep 0.2 i2cset -y 1 0x15 0x14 0x00 sleep 0.2 i2cset -y 1 0x15 0x15 0x00 sleep 0.2 i2cset -y 1 0x15 0x16 0x00 sleep 0.2 i2cset -y 1 0x15 0x17 0x00 sleep 0.2 i2cset -y 1 0x15 0x18 0x00 sleep 0.2 i2cset -y 1 0x15 0x19 0x00 sleep 0.2

done

2. 屏幕 ili9341 的驱动步骤简单讲述为: 2.1 下载 seeed 官方主线内核
2.2 生成.config 配置文件, 通过 zcat /proc/config.gz > .config
2.3 编译内核并启用 framebuffer(小屏幕)fbtft_deivce 的驱动模块
2.4 编译,建议交叉编译,我是直接在 mp157c 上进行编译的,时间为 244 分 34 秒 2.5 替换内核和安装驱动模块 2.6 挂载 spi 的 dtbo 设备树文件,并根据 dtbs 和 dtbi 文件找到引脚映射 2.7 接驳设备并加载 fbtft_device 驱动 2.8 利用 fbset 工具将终端映射到屏幕上: con2fbmap 1 1
3. OLED 0.96 屏幕驱动: 利用 luma 的驱动比较方便,通过python 驱动.避免了直接底层操作 I2C.
4. 创建了 github 和 gitee 的仓库,方便后续代码共享. https://github.com/stm32mp/157c.git https://gitee.com/yoyojacky/stm32mp157c.git 5. PWM 驱动,使用了核间通信机制,IPCC,在选择了 PA3 脚并切换至 TIM2/CH2,通过 cubeIDE 生成了代码后,加入了 pwm 的函数。 5.1 点灯部分

/* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(led0_GPIO_Port,led0_Pin, GPIO_PIN_SET); HAL_Delay(200); HAL_GPIO_WritePin(led0_GPIO_Port,led0_Pin, GPIO_PIN_RESET); HAL_Delay(200); HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET); HAL_Delay(200); HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_RESET); HAL_Delay(200); }/* USER CODE END 3 */ 5.2 PWM 函数部分

void user_pwm_setvalue(uint16_t value){ TIM_OC_InitTypeDef sConfigOC; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = value; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2); HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);}/* USER CODE END 0 */‍ 主程序部分写了个死循环

/* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ for(int i=0; i<2000; i+=20) { user_pwm_setvalue(i); HAL_Delay(10); } for(int i=2000; i>0; i-=20) { user_pwm_setvalue(i); HAL_Delay(10); } }

心得体会

对这次活动非常满意, 感觉很有意思! 活动建议:希望项目可以继续持续下去,并且持续更新和持续开展不同level 的应用要求,例如,使用 ble ,大家都用 ble 做应用, 使用核间通信,就都用核间通信来做应用,然后分析和交流。

责任编辑:xj

原文标题:Funpack第一期精彩之二:Argon带你用mqtt连OneNET,漂移菌带你跑Linux和驱屏幕

文章出处:【微信公众号:FPGA入门到精通】欢迎添加关注!文章转载请注明出处。

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

    关注

    88

    文章

    11814

    浏览量

    219527
  • MQTT
    +关注

    关注

    5

    文章

    738

    浏览量

    25249
  • GitHub
    +关注

    关注

    3

    文章

    489

    浏览量

    18759
  • OneNET
    +关注

    关注

    1

    文章

    53

    浏览量

    13981

原文标题:Funpack第一期精彩之二:Argon带你用mqtt连OneNET,漂移菌带你跑Linux和驱屏幕

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PSOC™ Edge Edgi Talk AI实战培训4城巡回报名开启,带你通LLM+LVGL | 知行工坊

    RT-Thread携手英飞凌半导体正式推出PSOC™ Edge Edgi Talk硬核培训,开启报名!四场培训分别于3月21日在北京、成都,3月28日在深圳、上海举行。内容聚焦边缘AI落地实战,带你
    的头像 发表于 03-12 11:58 4495次阅读
    PSOC™ Edge Edgi Talk AI实战培训4城巡回报名开启,<b class='flag-5'>带你</b><b class='flag-5'>跑</b>通LLM+LVGL | 知行工坊

    一文带你彻底搞懂K8s网络

    说实话,K8s 网络是我见过最让新手头疼的知识点,没有之一。记得我刚接触 K8s 那会儿,看着流量在 Pod、Service、Node 之间穿梭,完全是一脸懵逼。后来踩了无数坑,熬了无数夜,总算把这套网络模型摸透了。今天这篇文章,我会用最接地气的方式,带你彻底搞懂 K8s 网络。
    的头像 发表于 02-06 10:15 701次阅读

    ESP32-C5迷你开发板上手指南!轻松驱动SPI屏幕

    本文将带你一步步完成WT9932C5-TINY开发板的烧录与SPI屏幕驱动,从硬件连接到软件烧录,直至最终的效果演示。无需复杂的前期准备,跟着教程操作即可快速上手。硬件连接1准备材料1
    的头像 发表于 01-19 18:04 1164次阅读
    ESP32-C5迷你开发板上手指南!轻松驱动SPI<b class='flag-5'>屏幕</b>!

    DR1平台Linux应用开发指南:含GDB调试、Python及MQTT实战

    本文为创龙科技DR1 系列评估板 Linux 应用开发手册,系统讲解开发环境搭建、GDB 调试、多类型应用案例及 MQTT 通信实现。核心内容包括 LinuxSDK 与工具链配置、GDB 远程调试
    的头像 发表于 01-05 16:48 4809次阅读
    DR1平台<b class='flag-5'>Linux</b>应用开发指南:含GDB调试、Python及<b class='flag-5'>MQTT</b>实战

    RK3588快速上云OneNET!CMCC_Express_SDK MQTT部署实战

          在嵌入式 Linux 开发中,设备上云是核心需求之一。 RK3588 作为性能强劲的嵌入式平台,搭配中国移动 CMCC Express SDK ,可快速实现基于 MQTT 协议
    的头像 发表于 12-17 07:10 935次阅读
    RK3588快速上云<b class='flag-5'>OneNET</b>!CMCC_Express_SDK <b class='flag-5'>MQTT</b>部署实战

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!
    的头像 发表于 11-19 13:56 1841次阅读
    迅为Hi3403开发板极速启航 | 手把手<b class='flag-5'>带你</b>玩转核心例程,轻松上手AI视觉!

    【RK3568 NPU实战】别再闲置你的NPU!手把手带你迅为资料通Android AI检测Demo,附完整流程与效果

    【RK3568 NPU实战】别再闲置你的NPU!手把手带你迅为资料通Android AI检测Demo,附完整流程与效果
    的头像 发表于 11-10 15:58 1241次阅读
    【RK3568 NPU实战】别再闲置你的NPU!手把手<b class='flag-5'>带你</b><b class='flag-5'>用</b>迅为资料<b class='flag-5'>跑</b>通Android AI检测Demo,附完整流程与效果

    使用esp8266onenet物联网平台报错MQTT_BAD_USERNAME_OR_PASSWORD怎么解决?

    在使用onenet_mqtt_init后就开始报错了
    发表于 09-12 07:40

    揭秘Air8000对讲黑科技:AirTalk+MQTT开发示例深度解析

    的实时传输,带你深度理解这一黑科技背后的技术奥秘。 Air8000 系列的 Airtalk 是基于 LuatOS 核心库的对讲方案,采用 MQTT 协议实现设备端、手机端、网页端的跨终端对讲,支持服务器
    的头像 发表于 08-06 17:16 963次阅读
    揭秘Air8000对讲黑科技:AirTalk+<b class='flag-5'>MQTT</b>开发示例深度解析

    Linux三大主流文件系统解析

    还在为选择哪个文件系统而纠结?作为一名摸爬滚打多年的运维老鸟,我将用最接地气的方式,带你彻底搞懂 Linux 三大主流文件系统的奥秘。
    的头像 发表于 08-05 17:37 1729次阅读

    第二十三章 W55MH32 MQTT_OneNET示例

    本文讲解了如何在 W55MH32 芯片上实现 MQTT 协议并连接 OneNET 平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT 协议
    的头像 发表于 07-24 14:59 1337次阅读
    第二十三章 W55MH32 <b class='flag-5'>MQTT_OneNET</b>示例

    一文带你了解电源测试系统的功能!

    在当今电子与电力技术飞速发展的时代,各类电子设备、电力系统以及新能源相关产品的研发、生产和维护过程中,电源测试系统扮演着至关重要的角色。本文将带你了解源仪电子的电源测试系统的功能。
    的头像 发表于 07-02 09:10 1209次阅读
    一文<b class='flag-5'>带你</b>了解电源测试系统的功能!

    漫画科普 | 功率放大器到底有哪些应用?带你解锁功放经典应用场景!(一)

    漫画科普 | 功率放大器到底有哪些应用?带你解锁功放经典应用场景!(一)
    的头像 发表于 06-20 20:00 1109次阅读
    漫画科普 | 功率放大器到底有哪些应用?<b class='flag-5'>带你</b>解锁功放经典应用场景!(一)

    Linux权限管理基础入门

    Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的系统管理更加得心应手,还能有效防止未授权访问和数据泄露。本文将带你深入探索Linu
    的头像 发表于 05-06 13:44 914次阅读
    <b class='flag-5'>Linux</b>权限管理基础入门

    linux+rtos系统如何适配linux小核屏幕驱动?

    我希望使用小核运行lvgl对大核程序进行控制,运行小核lvgldemo的时候发现linux下的屏幕没有做适配,查看dts发现几乎所有的dts都用的是hx8399作为dsi的显示,但是现在市面上
    发表于 04-25 07:16