發表文章

目前顯示的是 6月, 2022的文章

天氣光環時鐘+農曆提醒(NODE-RED)專題作品-micropython

圖片
天氣光環時鐘+農曆提醒(node-red)專題作品 前言: 前陣子參加益師傅發起的micropython,讓我再次提起興趣,因為擔任了技術支援的角色 ,所以送我一套慧手科技的套件,由於我個人不會白白拿了東西放著,所以也讓自己動 起來參予這次的實作,但我個人不較不喜歡用搬運和模仿程式碼,所以加了一點自己的 創意在這套件裡,所以在完成階段性的作品,趁這時來紀錄一下筆記。 材料: 慧手科技esp32集成板 DHT11 可調電阻 adafriut_neopixels LED燈環 連接線數條  接線圖: 功能演示 $末節附上程式碼下載 1.按鍵(1)近一小時天氣概況,溫濕度 2.按鍵(2)調控燈環,node-red調控燈環  3.按鍵(3)顯示logo 4.農曆提醒-Line, 燈環同步 5.未實現:每日補充維它命並配發一顆維他命 天氣光環時鐘+農曆提醒(NODE-RED)專題作品-micropython.zip 程式碼區塊解析: 即時天氣- openweather API 這個得去open-weather公開網站申請api 以下的程式碼是抓取天氣的icon # 即時天氣icons data = requests . get ( 'https://api.openweathermap.org/data/2.5/weather?q=Taipei,TW&lang=zh_tw&units=metric&appid=f7922c4d99e223e7380d80a7f3db6b64' ) jsondatas = ujson . loads ( data . text ) print ( jsondatas [ 'weather' ][ 0 ][ 'icon' ]) def checkIcon ( n ):     path = "icons/" + n     try :         os . stat ( path )         return path   ...

可變電阻+OLED_0.96進度條顯示-micropython

圖片
 可變電阻+OLED_0.96進度條顯示-micropython 前言:     記得在Arduino的應用裡,ssd1306的程式庫裡有進度條的函式,很久以前一直有個 疑惑,為什麼mpython沒有,今天再次回顧重溫,找了些資料,發現其實只要知道公式 要做成進度條也是很容易。 材料: 可變電阻 OLED0.96 ESP32(燒錄micropython) 接線: ssd1306.py 先匯入esp32 程式碼: from machine import Pin, SoftI2C, ADC ,PWM import ssd1306 import time p = ADC(Pin( 34 )) p. atten( ADC . ATTN_11DB ) ADC. width( ADC . WIDTH_10BIT ) i2c = SoftI2C( scl = Pin( 22 ), sda = Pin( 21 )) display = ssd1306. SSD1306_I2C( 128 , 64 , i2c) #類似於c裡面的map()函式 def scale_value ( value , in_min , in_max , out_min , out_max ):   scaled_value = (value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min   return scaled_value while True :     pwmVal = p. read()     print(pwmVal)     display. text( "vaule: " + str (pwmVal), 10 , 0 )     display. show()     display. rect( 10 , 30 , 90 , 20 , 1 )       # draw a rectangle outline 10,10 to 117,53, colour=1     display. ...