個人專案——基於STM32的太陽能供電智慧花盆

唯戀殊雨發表於2018-06-10

        最近考完試是真的無聊,突然想起來之前有想做過智慧花盆的,而且零件也買了,因為沒有時間一直沒做,正好現在有空,就把它做了吧。

        總體來說專案比較簡單,所以做起來還是很快的,軟硬體全部做完大概花個了四個小時,其中大部分時間在焊接硬體,老規矩,先來看我錄的專案視訊介紹

        點選觀看視訊

        接下來當然是專案的原始碼,也給大家準備好了

        點選下載程式碼

        這次沒有單獨設計APP,只用了機智雲的Demo APP,大家有需要單獨設計的請檢視我的部落格:“個人專案——機智雲開源APP基礎修改教程(Android)”    https://blog.csdn.net/tichimi3375/article/details/80621362,裡面有詳細的修改步驟,包看包會。同樣的用STM32連線機智雲的教程也有:https://blog.csdn.net/tichimi3375/article/details/80292336

        先上幾張成品圖


        雲端的資料點有


        硬體連線如下


        關鍵部分的程式碼如下

adcx=Get_Adc_Average(ADC_Channel_1,10);//獲取PA1的adc值
		adcy=Get_Adc_Average(ADC_Channel_2,10);//獲取PA2的adc值
		temp=(float)adcx*(3.3/4096);//得到電壓
		temp1=((float)adcy*(3.3/4096))*5;//得到電壓再乘5,因為電壓檢測模組將檢測到的電壓縮小了5倍再輸出給微控制器
		percent=(3.3-temp)/3.3*100;//自定義溼度百分比
		adcz=Lsens_Get_Val();//得到光照強度
		currentDataPoint.valueHumidity = percent;//上傳溼度百分比
		currentDataPoint.valueVoltage = temp1;//上傳電池電壓
		currentDataPoint.valueLight = adcz;	//上傳光照強度
		//printf("Humity:%f   %%\r\n",percent);
		//printf("ADC_channel2:%f\r\n",temp1);
		if(0x01 == currentDataPoint.valueAutomatic)//如果自動模式開啟
		{
			currentDataPoint.valueWatering=0;//澆水功能不能使用
			if(percent<40)//如果溼度小於40%
			{
					LED0=1;//閉合繼電器澆水
			}else
			{
					LED0=0;//否則不動作
			}
		}else
		{
				if(0x01 == currentDataPoint.valueWatering)//如果自動模式關閉,澆水功能開啟
        {
          //user handle
					LED0=1;//閉合繼電器澆水
        }
        else
        {
          //user ha.ndle
					LED0=0;//否則不澆水
        }
		}	
		if(temp1<2)
		{
				currentDataPoint.valueWarning = 1;//如果電池電壓小於2V,開啟報警
		}else
		{
				currentDataPoint.valueWarning = 0;
		}

        專案基本就是這樣了,其實並不難,大家可以認真閱讀學習。

        至此,教程結束,謝謝大家,也歡迎大家關注我的個人技術與資源分享公眾號“linkutures”


相關文章