0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕

電子森林 ? 來源:FPGA入門到精通 ? 作者:FPGA入門到精通 ? 2020-10-30 16:51 ? 次閱讀

昨天我們看了圈圈和Rudy做的詳細(xì)介紹,包括入門和連接阿里云。今天我們來看看嵌入式網(wǎng)絡(luò)工程師Argon講述怎么連上另一個(gè)IOT平臺(tái)——OneNET,還有騎驢玩兒漂移的漂移菌帶來的講解以及他為大家準(zhǔn)備的Github/Gitee倉(cāng)庫(kù)。

Argon

自我介紹

很有幸參與到這次Digi-key和硬禾學(xué)堂聯(lián)合舉辦的這次開發(fā)板體驗(yàn)活動(dòng)。我叫Argon,來自浙江杭州是一名從事安防行業(yè)的嵌入式網(wǎng)絡(luò)工程師。從大學(xué)開始就對(duì)微電子充滿了興趣,在閑暇的時(shí)間也會(huì)利用手頭的元器件自己搭建一些好玩的DIY產(chǎn)品。

實(shí)現(xiàn)功能敘述

1. Seeed STM32MP1開發(fā)板教程(0)前期準(zhǔn)備篇: https://blog.csdn.net/Argon_Ghost/article/details/109006612 2. Seeed STM32MP1開發(fā)板教程(1)Wi-Fi的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986471 3. Seeed STM32MP1開發(fā)板教程(2)GPIO的簡(jiǎn)單操作: https://blog.csdn.net/Argon_Ghost/article/details/109009824 4. Seeed STM32MP1開發(fā)板教程(3)IIC設(shè)備AHT10的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986562

心得體會(huì)

工作從事的一直Linux網(wǎng)絡(luò)開發(fā),公司對(duì)代碼的封裝較為良好很少涉及到需要手動(dòng)去驅(qū)動(dòng)外設(shè)的情況。通過這次活動(dòng)我自己手動(dòng)去編譯設(shè)備樹,修改設(shè)備樹文。我對(duì)設(shè)備樹以及l(fā)inux內(nèi)核的編譯有了更深層是的理解,同時(shí)也要感謝@圈圈BG3MDO、@漂移菌 大佬的細(xì)心指導(dǎo),編寫驅(qū)動(dòng)的過程也是我們共同探索的過程。在十一期間的多個(gè)夜晚我們和大洋彼岸的圈圈大佬視頻會(huì)議來探討設(shè)備樹相關(guān)的技術(shù)難點(diǎn),也讓我想起了大學(xué)期間在實(shí)驗(yàn)室熬夜攻關(guān)的日子。非常感謝硬禾舉辦的這次體驗(yàn)活動(dòng),讓更多的學(xué)生以及工程師能了解到ST等大廠最新的產(chǎn)品和技術(shù)。 希望之后硬禾多增加宣傳活動(dòng)的力度,這個(gè)活動(dòng)我也是從朋友那里得知的。之前對(duì)硬禾的了解非常有限,希望硬禾以此為契機(jī)來提高自己的知名度。

漂移菌

個(gè)人介紹

我是李偉斌, AKA 騎驢玩兒漂移,漂移菌。我是伍艾信息科技的一名工程師,我的日常就是打雜。長(zhǎng)期使用樹莓派,并熟悉 linux 的系統(tǒng)管理和網(wǎng)絡(luò)應(yīng)用,熟悉 python 編程和 C 語(yǔ)言編程,精通 shell 腳本編程。 在 STM32MP157C 上最先完成了一系列的 linux 系統(tǒng)級(jí)別的操作。 例如,配置 uEnv。txt 并加載全驅(qū)動(dòng) dtb 并開啟 wifi ,聯(lián)網(wǎng)后,更新了軟件源,切換到清華國(guó)內(nèi)的源。 安裝了 vim 工具,編譯工具等等,并進(jìn)行了磁盤的擴(kuò)展,默認(rèn)磁盤空間大概只有 2GB,通過計(jì)算和配置,將磁盤擴(kuò)展到 32GB,并通過 USB 接口實(shí)現(xiàn)了兩個(gè)U 盤合并的磁盤整列。軟 Raid。 通過 stm32mp157c的 A7 核運(yùn)行的 linux,搭建了一個(gè)簡(jiǎn)易 web 和群友共享資源。 后面實(shí)現(xiàn)了點(diǎn)燈,pwm 呼吸燈, spi 驅(qū)動(dòng)屏幕等操作。

代碼內(nèi)容

1.小夜燈 I2C 驅(qū)動(dòng)(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 的驅(qū)動(dòng)步驟簡(jiǎn)單講述為: 2.1 下載 seeed 官方主線內(nèi)核
2.2 生成.config 配置文件, 通過 zcat /proc/config.gz > .config
2.3 編譯內(nèi)核并啟用 framebuffer(小屏幕)fbtft_deivce 的驅(qū)動(dòng)模塊
2.4 編譯,建議交叉編譯,我是直接在 mp157c 上進(jìn)行編譯的,時(shí)間為 244 分 34 秒 2.5 替換內(nèi)核和安裝驅(qū)動(dòng)模塊 2.6 掛載 spi 的 dtbo 設(shè)備樹文件,并根據(jù) dtbs 和 dtbi 文件找到引腳映射 2.7 接駁設(shè)備并加載 fbtft_device 驅(qū)動(dòng) 2.8 利用 fbset 工具將終端映射到屏幕上: con2fbmap 1 1
3. OLED 0.96 屏幕驅(qū)動(dòng): 利用 luma 的驅(qū)動(dòng)比較方便,通過python 驅(qū)動(dòng).避免了直接底層操作 I2C.
4. 創(chuàng)建了 github 和 gitee 的倉(cāng)庫(kù),方便后續(xù)代碼共享. https://github.com/stm32mp/157c.git https://gitee.com/yoyojacky/stm32mp157c.git 5. PWM 驅(qū)動(dòng),使用了核間通信機(jī)制,IPCC,在選擇了 PA3 腳并切換至 TIM2/CH2,通過 cubeIDE 生成了代碼后,加入了 pwm 的函數(shù)。 5.1 點(diǎn)燈部分

/* 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 函數(shù)部分

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 */? 主程序部分寫了個(gè)死循環(huán)

/* 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); } }

心得體會(huì)

對(duì)這次活動(dòng)非常滿意, 感覺很有意思! 活動(dòng)建議:希望項(xiàng)目可以繼續(xù)持續(xù)下去,并且持續(xù)更新和持續(xù)開展不同level 的應(yīng)用要求,例如,使用 ble ,大家都用 ble 做應(yīng)用, 使用核間通信,就都用核間通信來做應(yīng)用,然后分析和交流。

責(zé)任編輯:xj

原文標(biāo)題:Funpack第一期精彩之二:Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕

文章出處:【微信公眾號(hào):FPGA入門到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11326

    瀏覽量

    209961
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    653

    瀏覽量

    22588
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    473

    瀏覽量

    16503
  • OneNET
    +關(guān)注

    關(guān)注

    1

    文章

    51

    瀏覽量

    12833

原文標(biāo)題:Funpack第一期精彩之二:Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕

文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    杰和課堂|帶你認(rèn)識(shí)算力

    杰和課堂|帶你認(rèn)識(shí)算力人工智能浪潮洶涌的今天,算力一詞頻繁出現(xiàn)在各類科技新聞、產(chǎn)業(yè)發(fā)展報(bào)告中。了解過杰和科技產(chǎn)品的讀者們,也會(huì)在杰和各產(chǎn)品參數(shù)中發(fā)現(xiàn)算力這一概念,比如AI一體機(jī)主板CB4-411,該
    的頭像 發(fā)表于 12-06 10:24 ?356次閱讀
    杰和課堂|<b class='flag-5'>帶你</b>認(rèn)識(shí)算力

    智慧公交是什么?一文帶你詳解智慧公交的解決方案!

    智慧公交是什么?一文帶你詳解智慧公交的解決方案!
    的頭像 發(fā)表于 11-05 12:26 ?341次閱讀
    智慧公交是什么?一文<b class='flag-5'>帶你</b>詳解智慧公交的解決方案!

    【教程】設(shè)備通過MQTT協(xié)議接入OneNET平臺(tái),建立可視化界面

    在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信、信息的收集以及MQTT協(xié)議都是可以考慮的方案之一。MQTT通常用于需要低功耗和低帶寬的場(chǎng)景,如物聯(lián)網(wǎng)設(shè)備、傳感器網(wǎng)絡(luò)、移動(dòng)應(yīng)用等。它的輕量級(jí)和高效特性使其非常適合
    的頭像 發(fā)表于 10-25 08:06 ?1007次閱讀
    【教程】設(shè)備通過<b class='flag-5'>MQTT</b>協(xié)議接入<b class='flag-5'>OneNET</b>平臺(tái),建立可視化界面

    MQTT調(diào)試助手中文版(物聯(lián)網(wǎng)開發(fā)必備)

    MQTT調(diào)試助手中文版(物聯(lián)網(wǎng)開發(fā)必備)。?支持模擬設(shè)備鏈接各種MQTT云服務(wù)器、 ?阿里云、騰訊云、華為云、原子云、onenet等等。
    發(fā)表于 10-12 14:23 ?7次下載

    MQTT.fx 連接Onenet 多協(xié)議接入平臺(tái) MQTT協(xié)議(舊版)詳解

    TCP dtu.heclouds.com 183.230.40.40 1811 打開Onenet平臺(tái),多協(xié)議接入 選擇MQTT協(xié)議(舊版),點(diǎn)擊添加產(chǎn)品,輸入
    的頭像 發(fā)表于 09-30 15:20 ?896次閱讀
    <b class='flag-5'>MQTT</b>.fx 連接<b class='flag-5'>Onenet</b> 多協(xié)議接入平臺(tái) <b class='flag-5'>MQTT</b>協(xié)議(舊版)詳解

    小白也會(huì)的,在linuxandroid應(yīng)用的方案

    介紹一個(gè)可以在linux安卓應(yīng)用的linux桌面——OpenFDE
    的頭像 發(fā)表于 08-23 11:14 ?728次閱讀
    小白也會(huì)的,在<b class='flag-5'>linux</b>上<b class='flag-5'>跑</b>android應(yīng)用的方案

    合宙Air780EP模塊——AT指令MQTT接入OneNET開發(fā)指南

    物聯(lián)網(wǎng)設(shè)備要互動(dòng),Air780EP模塊是橋梁。AT指令告訴MQTT:“幫我把話帶給OneNET吧!”MQTT就忙著打包數(shù)據(jù),像寄信一樣傳給OneN
    的頭像 發(fā)表于 08-19 16:40 ?2343次閱讀
    合宙Air780EP模塊——AT指令<b class='flag-5'>MQTT</b>接入<b class='flag-5'>OneNET</b>開發(fā)指南

    Air780EP模塊 AT開發(fā)-MQTT接入OneNET移動(dòng)物聯(lián)網(wǎng)平臺(tái)應(yīng)用指南

    應(yīng)用概述??使用AT方式通過MQTT協(xié)議連接onenetstudio。官網(wǎng)地址:https://open.iot.10086.cn/材料準(zhǔn)備Air780EP(V)開發(fā)板一套,包括天線SIM卡,USB
    的頭像 發(fā)表于 07-24 14:24 ?949次閱讀
    Air780EP模塊 AT開發(fā)-<b class='flag-5'>MQTT</b>接入<b class='flag-5'>OneNET</b>移動(dòng)物聯(lián)網(wǎng)平臺(tái)應(yīng)用指南

    使用SDK中的MQTT連接服務(wù)器,導(dǎo)致mqtt永遠(yuǎn)斷開,請(qǐng)問是什么原因?

    使用SDK中的MQTT連接服務(wù)器,由于wifi信號(hào)不好會(huì)經(jīng)常出現(xiàn)斷網(wǎng)重新連接的情況,重次數(shù)多了以后MQTT_Connect函數(shù)中的espconn_gethostbyname返回Out of memory error,導(dǎo)致
    發(fā)表于 07-19 14:37

    ESP32CE MQTT斷線重后內(nèi)存未釋放怎么解決?

    idf v5.2.1 開啟mqtt 連接手機(jī)wifi 然后關(guān)閉數(shù)據(jù)流量和打開數(shù)據(jù)流量(模擬網(wǎng)絡(luò)超時(shí))esp_get_free_heap_size 獲取到的內(nèi)存越來越小 ,只有wifi重才會(huì)釋放
    發(fā)表于 07-19 07:12

    esp32s3聯(lián)網(wǎng)操作時(shí)會(huì)有短暫的屏幕整體左右漂移怎么解決?

    使用RGB屏幕,在掃碼配網(wǎng)或者智能配網(wǎng)時(shí),中間看串口回調(diào)函數(shù)的時(shí)間好像是少了6,7幀畫面,如圖下圖日志所示,應(yīng)該是WIFI寫flash原因?qū)е聀sram進(jìn)不去,時(shí)序不對(duì)了而整體漂移,有什么方法可以解決這個(gè)協(xié)調(diào)問題呢?resta
    發(fā)表于 06-27 08:08

    請(qǐng)問esp32-c3 wifi和mqtt實(shí)現(xiàn)重方法有哪些?

    問題請(qǐng)教,esp32-c3 wifi和mqtt實(shí)現(xiàn)重方法有哪些? 目前只實(shí)現(xiàn)了一種: static void mqtt_event_handler(void *handler_args
    發(fā)表于 06-17 07:41

    esp32-s3mqtt沒有反應(yīng)的原因?

    在esp-c3上參照例程的,功能都正常 但是移植到s3上后進(jìn)入MQTT_Connect就卡住了沒有返回,的core_mqtt的庫(kù), 具體是在sendPacket時(shí)執(zhí)行 bytesS
    發(fā)表于 06-05 06:50

    天線設(shè)計(jì)攻略簡(jiǎn)要概述 帶你玩轉(zhuǎn)PCB和WIFI

    給大家分享干貨啦!天線設(shè)計(jì)全攻略,帶你玩轉(zhuǎn)PCB和WIFI
    的頭像 發(fā)表于 05-08 14:42 ?1551次閱讀
    天線設(shè)計(jì)攻略簡(jiǎn)要概述 <b class='flag-5'>帶你</b>玩轉(zhuǎn)PCB和WIFI

    帶你探索穩(wěn)壓器的優(yōu)缺點(diǎn)和選擇技巧

    TOREX特瑞仕(KOYUELEC光與電子):帶你探索穩(wěn)壓器的優(yōu)缺點(diǎn)和選擇技巧
    的頭像 發(fā)表于 01-24 10:35 ?922次閱讀
    <b class='flag-5'>帶你</b>探索穩(wěn)壓器的優(yōu)缺點(diǎn)和選擇技巧