1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ thống tưới thông minh sử dụng năng lượng mặt trời

123 40 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN – ĐIỆN TỬ HỆ THỐNG TƯỚI THÔNG MINH SỬ DỤNG NĂNG LƯỢNG MẶT TRỜI GVHD:TRẦN QUANG THỌ SVTH: PHÙNG THANH HẢI MSSV: 15142027 SVTH: PHẠM THẾ SƠN MSSV: 15142102 SKL 0 Tp Hồ Chí Minh, tháng 7/2019 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG TƯỚI THÔNG MINH SỬ DỤNG NĂNG LƯỢNG MẶT TRỜI SVTH : PHÙNG THANH HẢI – PHẠM THẾ SƠN MSSV : 15142027 - 15142102 Khoá : 2015 Ngành : CNKT ĐIỆN – ĐIỆN TỬ GVHD: TS TRẦN QUANG THỌ Tp Hồ Chí Minh, tháng năm 2019 Khoa ĐT CLC – ĐH SPKT TP.HCM i NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Khoa ĐT CLC – ĐH SPKT TP.HCM ii PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Khoa ĐT CLC – ĐH SPKT TP.HCM iii CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc _*** _ PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên sinh viên: Phùng Thanh Hải Phạm Thế Sơn MSSV: 15142027 MSSV: 15142102 Ngành: CNKT Điện – Điện tử Lớp: 15142CL1 Tên đề tài: Hệ thống tưới thông minh sử dụng lượng mặt trời Giáo viên phản biện: Thầy Lê Thanh Lâm NHẬN XÉT: Về nội dụng đề tài khối lượng thực hiện: Nội dung Đồ án đầy đủ, mức Khá Ưu điểm: – Giải pháp đưa có tính – Tính ứng dụng cao – Phương pháp nghiên cứu phù hợp Khuyết điểm: Cần chỉnh sửa Đề nghị cho bảo vệ hay không ? Được bảo vệ Đánh giá loại: Khá Điểm: (Bằng chữ: ) Tp Hồ Chí Minh, ngày 12 tháng năm 2019 Giáo viên phản biện ( Ký & ghi rõ họ tên ) Khoa ĐT CLC – ĐH SPKT TP.HCM iv LỜI CẢM ƠN  Trong suốt thời gian học tập rèn luyện trường Đại học Sư Phạm Kỹ Thuật, em dạy bảo tận tình tập thể Thầy Cơ trường Những kiến thức mà em có hơm nhờ dạy bảo Thầy Cô Em xin gởi lời cảm ơn sâu sắc đến quý Thầy Cô, người tận tâm truyền đạt tri thức khoa học kiến thức chuyên ngành cho em Đặc biệt em xin cảm ơn quý Thầy Cô khoa Điện - Điện Tử khoa Đào Tạo Chất Lượng Cao, người bỏ bao tâm huyết để truyền đạt tri thức, kỹ năng, kinh nghiệm quý báu chuyên môn để chúng em vững tin bước vào sống Đây kết tổng kết trình năm học tập em kinh nghiệm thực tế thân cịn chưa nhiều nên khó tránh khỏi nhiều thiếu sót, cần phải có hướng dẫn, giúp đỡ giảng viên Qua em xin gửi lời cảm ơn chân thành đến thầy Trần Quang Thọ tận tình bảo, hướng dẫn giúp đỡ em suốt trình làm đồ án tốt nghiệp, tạo điều kiện cho em hoàn thành tốt đồ án tốt nghiệp Chúng em xin gửi đến Thầy lời chúc sức khỏe ngày thành công bục giảng Cuối cùng, xin cảm ơn tất bạn bè thân mến động viên, góp ý để hồn thành tốt đồ án Khoa ĐT CLC – ĐH SPKT TP.HCM v MỞ ĐẦU   TÍNH CẤP THIẾT CỦA ĐỀ TÀI Nền nơng nghiệp nước ta nơng nghiệp cịn lạc hậu chưa có nhiều ứng dụng khoa học kĩ thuật áp dụng vào thực tế Có thể nói nơng học ngồi kĩ thuật trồng trọt, chăm sóc tưới nước khâu quan trọng trồng trọt, để đảm bảo sinh trưởng phát triển tốt, tưới tưới đủ theo yêu cầu nông học trồng không sinh sâu bệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt suất, hiệu cao Bên cạnh vấn đề nhiễm mơi trường cấp bách đòi hỏi việc sử dụng nguồn lượng cần ưu tiên Hệ thống tưới tự động (tưới nhỏ giọt, phun sương …) hệ thống thiết bị tưới tốt đáp ứng theo yêu cầu sinh trưởng trồng ứng dụng rộng nước phát triển Hệ thống tưới nước tự động hình thức tưới nước hợp lý, tiết kiệm sức lao động chi phí nhân cơng Vốn phổ biến từ nhiều nước giới Tuy nhiên Việt Nam vài ba năm trở lại việc vận dụng hệ thống thông qua điện thoại di động trở thành xu hướng Hệ thống tưới nước tự động trở nên phổ biến với người nông dân nông thôn với q trình đại hóa nơng nghiệp nơng thôn Tuy nhiên, người dân mạnh dạn đưa vào sử dụng chi phí đầu tư cao Do đó, nhu cầu sử dụng hệ thống điều khiển tự động hóa ứng dụng IoT với giá thành thấp trở nên cấp thiết Xuất phát từ vấn đề thực tiễn trên, tác giả nghiên cứu thiết kế: “Hệ Thống Tưới Thông Minh Sử Dụng Năng Lượng Mặt Trời”  MỤC TIÊU Nghiên cứu thiết kế mơ hình vật lý hệ thống tưới thơng minh sử dụng lượng mặt trời có tính điều khiển từ xa thơng qua giao tiếp với điện thoại di động  PHẠM VI NGHIÊN CỨU Đề tài tập trung nghiên cứu thiết kế hệ thống điều khiển dựa vi điều khiển sử dụng điện thoại thông minh Các tác giả thi cơng mơ hình hệ thống động lực sử dụng pin mặt trời Khoa ĐT CLC – ĐH SPKT TP.HCM vi  PHƯƠNG PHÁP NGHIÊN CỨU Để thực nội dung đề tài nghiên cứu, nhóm thực tiến hành phương pháp nghiên cứu sau: - Phương pháp phân tích: phân tích cơng trình nghiên cứu đề tài có lý thuyết phương pháp tổng hợp ưu nhược điểm - Phương pháp mô phần mềm để tăng tính trực quan tiết kiệm thời gian công suất - Phương pháp thực nghiệm để tăng khả ứng dụng thực tiễn chuyển giao công nghệ  CẤU TRÚC NỘI DUNG ĐỀ TÀI Chương 1: Tổng quan đề tài Nội dung chương đưa khái niệm hệ thống tự động, hệ thống tưới, ưu nhược điểm giải pháp có, từ đưa giải pháp hợp lý cho đề tài Chương : Cơ sở lý thuyết Nội dung chương giới hệ thống điện mặt trời độc lập, cấu trúc, nguyên lý hoạt động PIC 18F4550, Modue sim900, số tập lệnh Chương 3: Xây dựng hệ thống Chương 4: Thiết kế thi cơng mơ hình hệ thống Chương 5: Kết luận hướng phát triển đề tài  Ý NGHĨA Ý nghĩa khoa học: Đề tài thiết kế hệ thống chế độ tự động chế độ tay linh động Kết hợp sử dụng nguồn điện từ pin mặt trời cho mạch điều khiển mạch động lực Ý nghĩa thực tiễn: Kết nghiên cứu giúp tác giả làm chủ công nghệ chế tạo thiết bị điều khiển đại với giá thành rẻ góp phần phát triển lĩnh vực nông nghiệp đại Hệ thống sử dụng nguồn lượng tái tạo góp phần bảo vệ môi trường Khoa ĐT CLC – ĐH SPKT TP.HCM vii MỤC LỤC ĐỒ ÁN TỐT NGHIỆP I NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP II PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN IV LỜI CẢM ƠN V MỞ ĐẦU VI MỤC LỤC VIII DANH MỤC CÁC TỪ VIẾT TẮT X DANH MỤC BẢNG BIỂU XI DANH MỤC HÌNH ẢNH XII CHƯƠNG : TỔNG QUAN VỀ ĐỀ TÀI 1.1 Khái niệm hệ thống tự động 1.2 Vai trò tự động hóa q trình sản xuất 1.3 Ứng dụng tự động hóa tưới tiêu cho trồng 1.4 Các nghiên cứu nước 1.5 Các nghiên cứu nước 1.6 Các vấn đề cần nghiên cứu bổ sung 1.7 Phương án thiết kế CHƯƠNG : CƠ SỞ LÝ THUYẾT 2.1 Vi điều khiển PIC 18F4550 2.1.1 Sơ đồ chân, chức chân 2.1.2 Cấu trúc bên PIC18F4550 13 2.1.3 Các cổng xuất nhập 15 2.1.4 Khối chức ngoại vi 17 2.1.5 Tổ chức nhớ 17 2.1.6 Chế độ Reset, Sleep 19 2.1.7 Ngắt (interput) 20 2.1.8 Bộ chuyển đổi ADC PIC18F4550 21 2.2 Giới thiệu Module SIM900 22 2.2.1 Tổng quan Module SIM900 22 2.2.2 Đặc điểm module SIM900 23 2.2.3 Khảo sát sơ đồ chân chức chân Breakout SIM 900 24 2.3 Khảo sát tập lệnh AT Command Module SIM 900 26 Khoa ĐT CLC – ĐH SPKT TP.HCM viii 2.3.1 Khởi tạo cấu hình mặc định cho modem 27 2.3.2 Delete tin nhắn SIM 28 2.3.3 Thực gọi 29 2.3.4 Nhận gọi đến 30 2.3.5 Đọc tin nhắn 31 2.3.6 Gửi tin nhắn 32 2.3.7 Các lệnh khác 34 2.4 Giao tiếp PIC18F4550 module SIM900 34 2.5 Real Time Clock ( RTC ) – DS1307 35 Giao tiếp PIC18F4550 Module RTC 36 2.7 Hệ thống điện mặt trời độc lập 38 2.7.1 Cấu hình hệ thống điện mặt trời độc lập 38 2.7.2 Các thành phần cấu tạo hệ thống pin lượng mặt trời độc lập 41 CHƯƠNG : XÂY DỰNG HỆ THỐNG 51 3.1 Các yêu cầu tưới thiết yếu 51 3.1.1 Xác định nhu cầu tưới 51 3.1.2 Điều kiện tưới 52 3.1.3 Phân chia khu tưới, vị trí vịi phun 53 3.2 Đề xuất giải pháp cho hệ thống tưới thông minh sử dụng NLMT 54 3.2.1 Phần cứng 55 3.2.2 Phần mềm 58 CHƯƠNG : THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG 64 4.1 Mạch điều khiển 64 4.2 Phần mềm 69 4.2.1 Phần mềm PIC 69 4.2.2 APP điều khiển 75 4.3 Kết đạt 79 CHƯƠNG : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 80 5.1 Kết luận 80 5.2 Hướng phát triển đề tài 80 TÀI LIỆU THAM KHẢO 82 PHỤ LỤC PHẦN MỀM 82 Khoa ĐT CLC – ĐH SPKT TP.HCM ix year = i2c_read(0); i2c_stop(); ds1307_display(); // Read year from register // Stop I2C // Diaplay results } // - Define for Module Sim -void USART_Init(long baud_rate); void USART_TxChar(char); unsigned int cnt = 0; const unsigned char numberDontCare = 8; // number character of buffer don't care const unsigned char numberOfMess = 5; // number character of message volatile unsigned char mess[5] = {0,0,0,0,0};// message to processing unsigned char send_msg[30]; // message to send SMS volatile unsigned char buffer[120], xbuffer=0, sdt_admin[]="+84923818275"; volatile unsigned char rev, rev1, rev2, rev3, rev4, dau_nhay; volatile int new_sms = 0,new_call = 0, isSend = 0, sent = 0, called = 0; void send_AT_OK (char *lk); void SIM900L_sendSMS(unsigned char* tel_number, unsigned char* msg); void SIM900L_readSMS(); void SIM900L_delSMS(); void clear_buffer(void); void reset_var(); char *at="AT"; char *atcm="AT+CMGF=1"; char *test = ""; // ADC char str1[20], str2[20], str3[20]; int st1=0,st2=0,st3=0; char *sv1 = ""; char *sv2 = ""; char *sv3 = ""; int adc_value1, adc_value2, adc_value3; void readADC(); void show(); void lcd(char *str); char *str_out = ""; Khoa ĐT CLC – ĐH SPKT TP.HCM ANDROID APP Main activity package com.example.wateringsystem; import import import import import import import import import import import import import android.Manifest; android.app.NotificationManager; android.app.PendingIntent; android.content.Context; android.content.Intent; android.content.pm.PackageManager; android.support.v4.app.ActivityCompat; android.support.v4.app.NotificationCompat; android.support.v4.content.ContextCompat; android.support.v7.app.AppCompatActivity; android.os.Bundle; android.view.View; android.widget.Button; public class MainActivity extends AppCompatActivity { public static Context appContext; RSSPullService service; Button controlBtn, settingBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); controlBtn = (Button)findViewById(R.id.controlBtn); controlBtn.setOnClickListener(controlBtnOnClickListener); settingBtn = (Button) findViewById(R.id.settingBtn); settingBtn.setOnClickListener(settingBtnOnClickListener); appContext = this; Khoa ĐT CLC – ĐH SPKT TP.HCM if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_SMS}, 1); } } View.OnClickListener settingBtnOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { OpenSettingIntent(); } }; View.OnClickListener controlBtnOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { OpenControlIntent(); } }; private void OpenServiceIntent(){ Intent intent = new Intent(this, RSSPullService.class); startService(intent); } private void OpenControlIntent(){ Intent intent = new Intent(this, ControlActivity.class); startActivity(intent); } private void OpenSettingIntent(){ Intent intent = new Intent(this, SettingActivity.class); startActivity(intent); } Khoa ĐT CLC – ĐH SPKT TP.HCM private void AddNotification() { NotificationCompat.Builder builder = new NotificationCompat.Builder(this) setSmallIcon(R.drawable.bell) setContentTitle("Notifications Example") setContentText("This is a test notification"); Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(0, builder.build()); } } Global class ackage com.example.wateringsystem; import android.content.Context; import android.content.SharedPreferences; public class GlobalClass { private static volatile GlobalClass _globalClass; public static String phoneNo; public static String messageSMS; public static final int MY_PERMISSIONS_REQUEST_SEND_SMS = 0; public static GlobalClass getInstance(){ if (_globalClass == null){ synchronized (_globalClass.getClass()){ if (_globalClass == null){ _globalClass = new GlobalClass(); } } Khoa ĐT CLC – ĐH SPKT TP.HCM } return _globalClass; } } RSSPullService package com.example.wateringsystem; import import import import import import import import import import import android.app.IntentService; android.app.Notification; android.app.NotificationManager; android.app.PendingIntent; android.content.Context; android.content.Intent; android.os.Handler; android.os.Looper; android.support.v4.app.NotificationCompat; android.support.v4.app.NotificationManagerCompat; android.util.Log; public class RSSPullService extends IntentService { /** * Creates an IntentService Invoked by your subclass's constructor * * @param name Used to name the worker thread, important only for debugging */ Handler handler = new Handler(Looper.getMainLooper()); public RSSPullService(){ super("RSSPULLSERVICE"); } public RSSPullService(String name) { super(name); } @Override protected void onHandleIntent(Intent intent) { if (intent != null) { Khoa ĐT CLC – ĐH SPKT TP.HCM Thread currThread = Thread.currentThread(); Log.d("aaaa", "MyIntentService child thread info."); handler.postDelayed(new Runnable() { @Override public void run() { handler.postDelayed(this, 10000 ); } },10000); Log.d("aaa", "DONE"); } } @Override public void onCreate() { super.onCreate(); Log.d("aaa", "MyIntentService onCreate() method is invoked."); } @Override public void onDestroy() { super.onDestroy(); Log.d("aaa", "MyIntentService onDestroy() method is invoked."); } private void addNotification() { NotificationCompat.Builder builder = new NotificationCompat.Builder(this) setSmallIcon(R.drawable.bell) setContentTitle("Notifications Example") setContentText("This is a test notification") setDefaults(Notification.DEFAULT_ALL); Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); Khoa ĐT CLC – ĐH SPKT TP.HCM NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(0, builder.build()); } } SettingActivity package com.example.wateringsystem; import import import import import import import import android.content.Context; android.content.SharedPreferences; android.support.v7.app.AppCompatActivity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.EditText; android.widget.Toast; public class SettingActivity extends AppCompatActivity { EditText phoneNo; Button savePhoneNoBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_setting); phoneNo = (EditText) findViewById(R.id.phoneNo); savePhoneNoBtn = (Button) findViewById(R.id.savePhoneNoBtn); savePhoneNoBtn.setOnClickListener(savePhoneNoBtnOnClickListener); SharedPreferences pre = getSharedPreferences("Saved_Setting", Context.MODE_PRIVATE); phoneNo.setText(pre.getString("phoneNumber", "0")); } Khoa ĐT CLC – ĐH SPKT TP.HCM View.OnClickListener savePhoneNoBtnOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences pre = getSharedPreferences("Saved_Setting", Context.MODE_PRIVATE); SharedPreferences.Editor editor = pre.edit(); if (!String.valueOf(phoneNo.getText()).isEmpty()){ editor.putString("phoneNumber", String.valueOf(phoneNo.getText())); editor.apply(); Toast.makeText(SettingActivity.this, "Saved", Toast.LENGTH_SHORT).show(); } GlobalClass.phoneNo = String.valueOf(phoneNo.getText()); } }; } ControlActivity package com.example.wateringsystem; import import import import import import import import import import import import import import android.Manifest; android.content.Context; android.content.SharedPreferences; android.content.pm.PackageManager; android.support.v4.app.ActivityCompat; android.support.v4.content.ContextCompat; android.support.v7.app.AppCompatActivity; android.os.Bundle; android.telephony.SmsManager; android.view.View; android.widget.Button; android.widget.CompoundButton; android.widget.Switch; android.widget.Toast; Khoa ĐT CLC – ĐH SPKT TP.HCM public class ControlActivity extends AppCompatActivity { Switch modeSwitch, valveSwitch1, valveSwitch2, valveSwitch3, pumpSwitch; Button sendSMSBtn; String modeStt = "0", valve1Stt = "0", valve2Stt = "0", valve3Stt = "0", pumpStt = "0"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_control); sendSMSBtn = (Button) findViewById(R.id.sendSMSBtn); sendSMSBtn.setOnClickListener(sendSMSBtnOnClickListener); modeSwitch = valveSwitch1 valveSwitch2 valveSwitch3 pumpSwitch = (Switch) findViewById(R.id.modeSwitch); = (Switch) findViewById(R.id.valveSwitch1); = (Switch) findViewById(R.id.valveSwitch2); = (Switch) findViewById(R.id.valveSwitch3); (Switch) findViewById(R.id.pumpSwitch); modeSwitch.setOnCheckedChangeListener(modeSwitchOnCheckedChangeListen er); valveSwitch1.setOnCheckedChangeListener(valveSwitch1OnCheckedChangeLi stener); valveSwitch2.setOnCheckedChangeListener(valveSwitch2OnCheckedChangeLi stener); valveSwitch3.setOnCheckedChangeListener(valveSwitch3OnCheckedChangeLi stener); pumpSwitch.setOnCheckedChangeListener(pumpSwitchOnCheckedChangeListen er); Khoa ĐT CLC – ĐH SPKT TP.HCM SharedPreferences pre = getSharedPreferences("Saved_Setting", Context.MODE_PRIVATE); GlobalClass.phoneNo = pre.getString("phoneNumber", "0"); AllowSMS(); } CompoundButton.OnCheckedChangeListener modeSwitchOnCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (modeSwitch.isChecked()){ modeStt = "1"; } else{ modeStt = "0"; } } }; CompoundButton.OnCheckedChangeListener valveSwitch1OnCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (valveSwitch1.isChecked()){ valve1Stt = "1"; } else{ valve1Stt = "0"; } } }; Khoa ĐT CLC – ĐH SPKT TP.HCM CompoundButton.OnCheckedChangeListener valveSwitch2OnCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (valveSwitch2.isChecked()){ valve2Stt = "1"; } else{ valve2Stt = "0"; } } }; CompoundButton.OnCheckedChangeListener valveSwitch3OnCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (valveSwitch3.isChecked()){ valve3Stt = "1"; } else{ valve3Stt = "0"; } } }; CompoundButton.OnCheckedChangeListener pumpSwitchOnCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (pumpSwitch.isChecked()){ pumpStt = "1"; } else{ Khoa ĐT CLC – ĐH SPKT TP.HCM pumpStt = "0"; } } }; View.OnClickListener sendSMSBtnOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { String msgToSend = modeStt + valve1Stt + valve2Stt + valve3Stt + pumpStt; GlobalClass.messageSMS = msgToSend; sendSMSMessage(msgToSend); } }; protected void AllowSMS() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.SEND_SMS)) { } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, GlobalClass.MY_PERMISSIONS_REQUEST_SEND_SMS); } } } protected void sendSMSMessage(String msg){ try{ SmsManager smgr = SmsManager.getDefault(); smgr.sendTextMessage(GlobalClass.phoneNo,null,msg,null,null); Toast.makeText(ControlActivity.this, "SMS Sent Successfully", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Khoa ĐT CLC – ĐH SPKT TP.HCM Toast.makeText(ControlActivity.this, "SMS Failed to Send, Please try again", Toast.LENGTH_SHORT).show(); } } } SMSReceiver package com.example.wateringsystem; import import import import import import import import import android.content.BroadcastReceiver; android.content.Context; android.content.Intent; android.os.Bundle; android.preference.PreferenceManager; android.telephony.SmsManager; android.telephony.SmsMessage; android.util.Log; android.widget.Toast; import java.util.HashSet; import java.util.Set; import java.util.StringTokenizer; public class SMSReceiver extends BroadcastReceiver { public static final String SMS_BUNDLE = "pdus"; @Override public void onReceive(Context context, Intent intent) { Log.d("GOTCHA", "RECEIVED"); Bundle intentExtras = intent.getExtras(); if (intentExtras != null) { Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE); String smsMessageStr = ""; for (int i = 0; i < sms.length; ++i) { SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]); Khoa ĐT CLC – ĐH SPKT TP.HCM String smsBody = smsMessage.getMessageBody().toString(); String address = smsMessage.getOriginatingAddress(); smsMessageStr += "SMS From: " + address + "\n"; smsMessageStr += smsBody + "\n"; Log.d("GOTCHA", smsMessageStr); } Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show(); } } } Khoa ĐT CLC – ĐH SPKT TP.HCM ... Đồng thời kết hợp sử dụng nguồn lượng mặt trời làm nguồn lượng cho hệ thống [2] Hệ thống thiết kế: - Hệ thống an toàn, thân thiện với môi trường sử dụng nguồn cung cấp từ lượng mặt trời - Cấu trúc... 2.7 Hệ thống điện mặt trời độc lập 38 2.7.1 Cấu hình hệ thống điện mặt trời độc lập 38 2.7.2 Các thành phần cấu tạo hệ thống pin lượng mặt trời độc lập 41 CHƯƠNG : XÂY DỰNG HỆ... việc sử dụng nguồn lượng cần ưu tiên Hệ thống tưới tự động (tưới nhỏ giọt, phun sương …) hệ thống thiết bị tưới tốt đáp ứng theo yêu cầu sinh trưởng trồng ứng dụng rộng nước phát triển Hệ thống tưới

Ngày đăng: 07/01/2022, 23:59

Xem thêm:

HÌNH ẢNH LIÊN QUAN

Hình 2. 1: Sơ đồ chân PIC18F4550 - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 1: Sơ đồ chân PIC18F4550 (Trang 24)
Hình 2. 2: Sơ đồ tổng quát của PIC18F4550 - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 2: Sơ đồ tổng quát của PIC18F4550 (Trang 28)
Hình 2. 3: là sơ đồ khối cấu trúc bên trong PIC18F4550 bao gồm: - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 3: là sơ đồ khối cấu trúc bên trong PIC18F4550 bao gồm: (Trang 29)
Hình 2. 7: Sơ đồ thiết kế Breakout của Module SIM900 - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 7: Sơ đồ thiết kế Breakout của Module SIM900 (Trang 40)
2.3.1. Khởi tạo cấu hình mặc định cho modem. - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
2.3.1. Khởi tạo cấu hình mặc định cho modem (Trang 42)
Hình 2. 10: Cấu hình gọi điện cho SIM900 - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 10: Cấu hình gọi điện cho SIM900 (Trang 44)
Hình 2. 11: Cấu hình nhận cuộc gọi - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 11: Cấu hình nhận cuộc gọi (Trang 46)
Hình 2. 1 3: Cấu hình gửi tinnhắn - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 1 3: Cấu hình gửi tinnhắn (Trang 48)
Hình 2.2 2: Sự phụ thuộc của đường đặc tính vào nhiệt độ của pin - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2.2 2: Sự phụ thuộc của đường đặc tính vào nhiệt độ của pin (Trang 59)
Hình 2. 2 3: Các chế độ nạp ắc quy - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 2 3: Các chế độ nạp ắc quy (Trang 61)
Hình 2. 2 4: Sơ đồ hệ thống - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 2. 2 4: Sơ đồ hệ thống (Trang 63)
Hình 3. 1: Các sơ đồ bố trí vòi phun mưa - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 3. 1: Các sơ đồ bố trí vòi phun mưa (Trang 68)
- Tốc độ gió từ 1,5 m/s đến 3,5 m/s: áp dụng sơ đồ b (kiểu hình vuông); - Tốc độ gió từ 3,5 m/s đến dưới 5,0 m/s:  áp dụng sơ đồ c hoặc sơ đồ d;   - Tốc độ gió từ 5,0 m/s trở lên :   ngừng tưới - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
c độ gió từ 1,5 m/s đến 3,5 m/s: áp dụng sơ đồ b (kiểu hình vuông); - Tốc độ gió từ 3,5 m/s đến dưới 5,0 m/s: áp dụng sơ đồ c hoặc sơ đồ d; - Tốc độ gió từ 5,0 m/s trở lên : ngừng tưới (Trang 69)
Hình 3. 3: Sơ đồ bố trí kiểu tam giác - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 3. 3: Sơ đồ bố trí kiểu tam giác (Trang 71)
Hình 3. 5: Giao diện phần mềm Protues - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 3. 5: Giao diện phần mềm Protues (Trang 72)
Hình 3. 6: Sơ đồ nguyên lý hoạt độn gở chế độ MANUAL - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 3. 6: Sơ đồ nguyên lý hoạt độn gở chế độ MANUAL (Trang 74)
Hình 3. 7: Sơ đồ nguyên lý hoạt độn gở chế độ AUTO - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 3. 7: Sơ đồ nguyên lý hoạt độn gở chế độ AUTO (Trang 75)
Hình 3. 8: Giao diện phần mềm CC SC Compiler - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 3. 8: Giao diện phần mềm CC SC Compiler (Trang 77)
– Lệnh (2) là khai báo cấu hình của vi điều khiển – (3) là khai báo biến sử dụng trong chương trình  - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
nh (2) là khai báo cấu hình của vi điều khiển – (3) là khai báo biến sử dụng trong chương trình (Trang 78)
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH HỆ THỐNG  - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
4 THIẾT KẾ VÀ THI CÔNG MÔ HÌNH HỆ THỐNG (Trang 79)
Bảng 4. 1: Danh sách kết nối chân - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Bảng 4. 1: Danh sách kết nối chân (Trang 80)
Hình 4. 4: Mạch nguồn ổn áp - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 4: Mạch nguồn ổn áp (Trang 82)
Hình 4. 6: Mô hình hoàn chỉnh - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 6: Mô hình hoàn chỉnh (Trang 84)
Hình 4. 7: Lưu đồ chương trình chính - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 7: Lưu đồ chương trình chính (Trang 85)
Hình 4. 8: Lưu đồ đọc dữ liệu tinnhắn - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 8: Lưu đồ đọc dữ liệu tinnhắn (Trang 86)
Hình 4. 10: Lưu đồ xử lý tinnhắn - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 10: Lưu đồ xử lý tinnhắn (Trang 87)
Hình 4. 11: Lưu đồ điều khiển thiết bị - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 11: Lưu đồ điều khiển thiết bị (Trang 88)
Hình 4. 12: Lưu đồ quá trình chạy tự động - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 12: Lưu đồ quá trình chạy tự động (Trang 89)
Hình 4. 14: Back End - Hệ thống tưới thông minh sử dụng năng lượng mặt trời
Hình 4. 14: Back End (Trang 91)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w