一、前言
随着科技的发展和全球气候变化的挑战,农业生产的效率和可持续性越来越受到人们的关注。为了提高农业生产的效率和可持续性,需要进行长期的的农作物观测和监控。传统的农作物观测站通常需要大量的人力物力进行维护,而且受到时间和空间的制约,无法做到实时的观测和监控。因此,基于大数据的农作物观测站监控平台的研究和应用,对于提高农作物观测和监控的效率和可持续性具有重要的意义。
目前,农作物观测站的数据采集和监控主要依靠人工操作,不仅需要大量的人力物力,而且受到时间和空间的制约,无法做到实时的观测和监控。同时,由于农作物生长受到多种因素的影响,包括气候、土壤、病虫害等,因此需要更加齐全、精细的数据采集和监控。但是,现有的解决方案无法满足这一需求,因此需要一种基于大数据的农作物观测站监控平台来解决这个问题。
本课题的研究目的是开发一种基于大数据的农作物观测站监控平台,实现以下功能:
农气站在线情况:监控农气站的运行状态,包括在线和离线状态,以及离线原因。
观测作物分类统计:对观测的作物进行分类统计,包括作物种类、生长情况、产量预测等。
离线站点清单:列出所有离线的站点,包括站点名称、位置、离线时间等。
站点实时数据:实时采集站点的数据,包括气候数据、土壤数据、病虫害数据等。
站点实时监控图片数据:实时采集站点的监控图片,包括作物生长情况、病虫害情况等。
本课题的研究意义在于提高农作物观测和监控的效率和可持续性,为农业生产提供更加精细的数据支持,有助于提高农业生产的效率和可持续性。同时,本课题的研究成果也可以为其他领域的数据采集和监控提供参考和借鉴。
二、开发环境
- 大数据技术:Hadoop、Spark、Hive
- 开发技术:Python、Django框架、Vue、Echarts、机器学习
- 软件工具:Pycharm、DataGrip、Anaconda、VM虚拟机
三、系统界面展示
- 基于大数据的农作物观测站综合监控平台界面展示:
四、部分代码设计
- 大数据项目实战-代码参考:
body = {}
semaphore = threading.Semaphore(0)
def value_1():
while True:
time.sleep(2)
localtime = time.time()
global body
value = uart.uart_read()
value_send = float(value)
body = {
"datastreams": [
{
"id": "temperature", # 对应OneNet的数据流名称
"datapoints": [
{
"value": value_send # 数据值
}
]
}
]
}
link_db.sql_insert(localtime, value_send)
print("接受的数据(%.1f)" % value_send)
semaphore.release()
def build_payload(type, payload):
datatype = type
packet = bytearray()
packet.extend(struct.pack("!B", datatype))
if isinstance(payload, str):
udata = payload.encode('utf-8')
length = len(udata)
packet.extend(struct.pack("!H" + str(length) + "s", length, udata))
return packet
# 当客户端收到来自服务器的CONNACK响应时的回调。也就是申请连接,服务器返回结果是否成功等
def on_connect(client, userdata, flags, rc):
print("连接结果:" + mqtt.connack_string(rc))
# 上传数据
global body
json_body = json.dumps(body)
print(json_body)
packet = build_payload(TYPE_JSON, json_body)
client.publish("$dp", packet, qos=1) # qos代表服务质量
# 当消息已经被发送给中间人,on_publish()回调将会被触发
def on_publish(client, userdata, mid):
print("回调次数" + str(mid))
def mqtt_up_main():
semaphore.acquire()
client = mqtt.Client(client_id=DEV_ID, protocol=mqtt.MQTTv311)
client.on_connect = on_connect
client.on_publish = on_publish
client.on_message = on_message
client.username_pw_set(username=PRO_ID, password=AUTH_INFO)
client.connect('183.230.40.39', port=6002, keepalive=120) # 端口、ip地址、生存期
client.loop_forever()
time.sleep(1)
if __name__ == '__main__':
while True:
# link_db.sql_create_db()
t1 = threading.Thread(target=value_1, args=())
t2 = threading.Thread(target=mqtt_up_main, args=())
t1.start()
t2.start()
t1.join()
t2.join()
time.sleep(3)
五、论文参考
- 计算机毕业设计选题推荐-基于大数据的农作物观测站综合监控平台-论文参考:
六、系统视频
基于大数据的农作物观测站综合监控平台-项目视频:
大数据毕业设计选题推荐-农作物观测站监控平台-Hadoop
结语
大数据毕业设计选题推荐-农作物观测站综合监控平台-Hadoop-Spark-Hive
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我