37创客科创中心

 找回密码
 立即注册
查看: 2395|回复: 11

MIND+下载

  [复制链接]

45

主题

84

帖子

905

积分

版主

Rank: 7Rank: 7Rank: 7

积分
905
发表于 2024-10-24 18:50:49 | 显示全部楼层 |阅读模式
mind+最新版1.8.1 rc1.0
=======================================================
37创客快速下载:https://p.37ck.cn/#s/_QG4YWZw
=======================================================
行空板K10学习资料

教程

保护壳3D打印文件




------------------------------------------------------------------------------------------------------------

行空板扩展板资料




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-9 12:12:03 | 显示全部楼层
  1. import sqlite3
  2. import tkinter as tk
  3. from ttkbootstrap import Style
  4. from ttkbootstrap.dialogs import Messagebox
  5. from wxauto import WeChat

  6. # 初始化数据库
  7. def init_db():
  8.     conn = sqlite3.connect('wechat_data.db')
  9.     c = conn.cursor()
  10.     c.execute('''CREATE TABLE IF NOT EXISTS contacts
  11.                  (id INTEGER PRIMARY KEY AUTOINCREMENT,
  12.                  name TEXT NOT NULL,
  13.                  type TEXT NOT NULL)''')
  14.     c.execute('''CREATE TABLE IF NOT EXISTS messages
  15.                  (id INTEGER PRIMARY KEY AUTOINCREMENT,
  16.                  content TEXT NOT NULL)''')
  17.     conn.commit()
  18.     conn.close()

  19. # 插入联系人
  20. def insert_contact(name, contact_type):
  21.     conn = sqlite3.connect('wechat_data.db')
  22.     c = conn.cursor()
  23.     c.execute("INSERT INTO contacts (name, type) VALUES (?,?)", (name, contact_type))
  24.     conn.commit()
  25.     conn.close()
  26.     refresh_contacts_listbox()

  27. # 插入消息
  28. def insert_message(content):
  29.     conn = sqlite3.connect('wechat_data.db')
  30.     c = conn.cursor()
  31.     c.execute("INSERT INTO messages (content) VALUES (?)", (content,))
  32.     conn.commit()
  33.     conn.close()
  34.     refresh_messages_listbox()

  35. # 删除联系人
  36. def delete_contact():
  37.     selected_index = contacts_listbox.curselection()
  38.     if selected_index:
  39.         selected_id = contacts[selected_index[0]][0]
  40.         conn = sqlite3.connect('wechat_data.db')
  41.         c = conn.cursor()
  42.         c.execute("DELETE FROM contacts WHERE id=?", (selected_id,))
  43.         conn.commit()
  44.         conn.close()
  45.         refresh_contacts_listbox()
  46.     else:
  47.         Messagebox.show_warning("请选择一个联系人", "警告")

  48. # 删除消息
  49. def delete_message():
  50.     selected_index = messages_listbox.curselection()
  51.     if selected_index:
  52.         selected_id = messages[selected_index[0]][0]
  53.         conn = sqlite3.connect('wechat_data.db')
  54.         c = conn.cursor()
  55.         c.execute("DELETE FROM messages WHERE id=?", (selected_id,))
  56.         conn.commit()
  57.         conn.close()
  58.         refresh_messages_listbox()
  59.     else:
  60.         Messagebox.show_warning("请选择一条消息", "警告")

  61. # 更新联系人
  62. def update_contact():
  63.     selected_index = contacts_listbox.curselection()
  64.     if selected_index:
  65.         selected_id = contacts[selected_index[0]][0]
  66.         new_name = contact_name_entry.get()
  67.         new_type = contact_type_var.get()
  68.         conn = sqlite3.connect('wechat_data.db')
  69.         c = conn.cursor()
  70.         c.execute("UPDATE contacts SET name=?, type=? WHERE id=?", (new_name, new_type, selected_id))
  71.         conn.commit()
  72.         conn.close()
  73.         refresh_contacts_listbox()
  74.     else:
  75.         Messagebox.show_warning("请选择一个联系人", "警告")

  76. # 更新消息
  77. def update_message():
  78.     selected_index = messages_listbox.curselection()
  79.     if selected_index:
  80.         selected_id = messages[selected_index[0]][0]
  81.         new_content = message_content_entry.get()
  82.         conn = sqlite3.connect('wechat_data.db')
  83.         c = conn.cursor()
  84.         c.execute("UPDATE messages SET content=? WHERE id=?", (new_content, selected_id))
  85.         conn.commit()
  86.         conn.close()
  87.         refresh_messages_listbox()
  88.     else:
  89.         Messagebox.show_warning("请选择一条消息", "警告")

  90. # 查询联系人
  91. def refresh_contacts_listbox():
  92.     conn = sqlite3.connect('wechat_data.db')
  93.     c = conn.cursor()
  94.     c.execute("SELECT * FROM contacts")
  95.     global contacts
  96.     contacts = c.fetchall()
  97.     conn.close()
  98.     contacts_listbox.delete(0, tk.END)
  99.     for contact in contacts:
  100.         contacts_listbox.insert(tk.END, f"{contact[1]} ({contact[2]})")

  101. # 查询消息
  102. def refresh_messages_listbox():
  103.     conn = sqlite3.connect('wechat_data.db')
  104.     c = conn.cursor()
  105.     c.execute("SELECT * FROM messages")
  106.     global messages
  107.     messages = c.fetchall()
  108.     conn.close()
  109.     messages_listbox.delete(0, tk.END)
  110.     for message in messages:
  111.         messages_listbox.insert(tk.END, message[1])

  112. # 发送消息
  113. def send_messages():
  114.     wx = WeChat()
  115.     for contact in contacts:
  116.         for message in messages:
  117.             wx.ChatWith(contact[1])
  118.             wx.SendMsg(message[1])

  119. # 初始化数据库
  120. init_db()

  121. # 创建主窗口
  122. style = Style(theme='flatly')
  123. root = style.master
  124. root.title("微信消息发送程序")

  125. # 联系人管理部分
  126. contact_frame = tk.Frame(root)
  127. contact_frame.pack(pady=10)

  128. contact_label = tk.Label(contact_frame, text="联系人管理")
  129. contact_label.pack()

  130. contact_name_label = tk.Label(contact_frame, text="联系人姓名:")
  131. contact_name_label.pack(side=tk.LEFT)
  132. contact_name_entry = tk.Entry(contact_frame)
  133. contact_name_entry.pack(side=tk.LEFT)

  134. contact_type_label = tk.Label(contact_frame, text="类型 (好友/群):")
  135. contact_type_label.pack(side=tk.LEFT)
  136. contact_type_var = tk.StringVar()
  137. contact_type_var.set("好友")
  138. contact_type_option = tk.OptionMenu(contact_frame, contact_type_var, "好友", "群","公众号")
  139. contact_type_option.pack(side=tk.LEFT)

  140. add_contact_button = tk.Button(contact_frame, text="添加联系人", command=lambda: insert_contact(contact_name_entry.get(), contact_type_var.get()))
  141. add_contact_button.pack(side=tk.LEFT)

  142. delete_contact_button = tk.Button(contact_frame, text="删除联系人", command=delete_contact)
  143. delete_contact_button.pack(side=tk.LEFT)

  144. update_contact_button = tk.Button(contact_frame, text="更新联系人", command=update_contact)
  145. update_contact_button.pack(side=tk.LEFT)

  146. contacts_listbox = tk.Listbox(root)
  147. contacts_listbox.pack(pady=10)
  148. refresh_contacts_listbox()

  149. # 消息管理部分
  150. message_frame = tk.Frame(root)
  151. message_frame.pack(pady=10)

  152. message_label = tk.Label(message_frame, text="消息管理")
  153. message_label.pack()

  154. message_content_label = tk.Label(message_frame, text="消息内容:")
  155. message_content_label.pack(side=tk.LEFT)
  156. message_content_entry = tk.Entry(message_frame)
  157. message_content_entry.pack(side=tk.LEFT)

  158. add_message_button = tk.Button(message_frame, text="添加消息", command=lambda: insert_message(message_content_entry.get()))
  159. add_message_button.pack(side=tk.LEFT)

  160. delete_message_button = tk.Button(message_frame, text="删除消息", command=delete_message)
  161. delete_message_button.pack(side=tk.LEFT)

  162. update_message_button = tk.Button(message_frame, text="更新消息", command=update_message)
  163. update_message_button.pack(side=tk.LEFT)

  164. messages_listbox = tk.Listbox(root)
  165. messages_listbox.pack(pady=10)
  166. refresh_messages_listbox()

  167. # 发送消息按钮
  168. send_button = tk.Button(root, text="发送消息", command=send_messages)
  169. send_button.pack(pady=20)

  170. # 运行主循环
  171. root.mainloop()
复制代码
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2024-10-26 22:51:47 | 显示全部楼层
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2024-10-27 08:53:27 | 显示全部楼层
通过网盘分享的文件:Mind+1.8.0_RC1.0_test_20241012.zip 链接: https://pan.baidu.com/s/1fZUm9rFBjiio0uEY3u5Lzg?pwd=392n 提取码: 392n  --来自百度网盘超级会员v8的分享
回复

使用道具 举报

45

主题

84

帖子

905

积分

版主

Rank: 7Rank: 7Rank: 7

积分
905
 楼主| 发表于 2024-10-27 11:16:15 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-4 20:57:35 | 显示全部楼层
deepseek代码
  1. import requests
  2. import json
  3. from typing import Dict, Any
  4. from openai import OpenAI
  5. # from deepseek import *
  6. # from config import *
  7. # from flaskwx.MQTT.config import *
  8. # deepseek
  9. dapi_key = "sk-520a3aea160a4370b022144722d54724" #sk-7198a4930e5e459494d01984a684e3e9
  10. dapi_url = "https://api.deepseek.com"
  11. def OASK(ask="你是谁?"):
  12.     # 安装库文件: `pip3 install openai`   
  13.     client = OpenAI(api_key=dapi_key, base_url=dapi_url)
  14.     response = client.chat.completions.create(
  15.         model="deepseek-chat",
  16.         messages=[
  17.             # {"role": "system", "content": "You are a helpful assistant"},
  18.             {"role": "system", "content": ask},
  19.             # {"role": "user", "content": ask},
  20.         ],
  21.         max_tokens=1024,
  22.         temperature=0.7,
  23.         stream=False,
  24.     )
  25.     res = response.choices[0].message.content
  26.     print(res)
  27.     return res

  28. # OASK()
  29. # pass

  30. def GKEY(js="config.json"):
  31.     with open(js) as f:
  32.         config = json.load(f)
  33.     api_key = config["deepseek_api_key"]
  34.     api_url = config["deepseek_url"]
  35.     print(api_key)
  36.     return api_key, api_url

  37. class DeepSeekClient:
  38.     def __init__(self, api_key: str):
  39.         self.api_key = api_key
  40.         self.base_url = "https://api.deepseek.com/v1"
  41.         self.headers = {
  42.             "Authorization": f"Bearer {self.api_key}",
  43.             "Content-Type": "application/json",
  44.         }

  45.     def chat_completion(
  46.         self, messages: list, model: str = "deepseek-chat", temperature: float = 0.7
  47.     ) -> Dict[str, Any]:
  48.         """与DeepSeek AI进行对话"""
  49.         endpoint = f"{self.base_url}/chat/completions"
  50.         payload = {"model": model, "messages": messages, "temperature": temperature}
  51.         try:
  52.             response = requests.post(endpoint, headers=self.headers, json=payload)
  53.             response.raise_for_status()
  54.             return response.json()
  55.         except requests.exceptions.RequestException as e:
  56.             print(f"API请求失败: {e}")
  57.             return {}


  58. def HASK(ask="你是谁?"):
  59.     # 从配置文件读取API密钥
  60.     with open("config.json") as f:
  61.         config = json.load(f)
  62.     api_key = config["deepseek_api_key"]
  63.     client = DeepSeekClient(api_key)

  64.     # 示例对话
  65.     messages = [{"role": "user", "content": ask}]
  66.     response = client.chat_completion(messages)
  67.     if response:
  68.         print("AI回复:", response["choices"][0]["message"]["content"])
复制代码


回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-4 20:57:51 | 显示全部楼层
UI代码
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-4 20:58:07 | 显示全部楼层
MQTT代码
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-4 20:58:17 | 显示全部楼层
微信代码
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-4 20:58:30 | 显示全部楼层
传感器代码
回复

使用道具 举报

194

主题

324

帖子

2399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2399
发表于 2025-2-4 20:58:46 | 显示全部楼层
扩展板代码

  1. import requests
  2. from unihiker import GUI
  3. from pinpong.board import Board
  4. from pinpong.board import IRRecv
  5. from pinpong.board import NeoPixel
  6. from pinpong.board import Board, Pin
  7. from pinpong.board import SR04_URM10
  8. from pinpong.extension.unihiker import *
  9. from pinpong.libs.dfrobot_urm09 import URM09

  10. # 自定义函数
  11. def ShengCheng_NSuDu(SuDu, Miao, CiShu):
  12.     DangQianHao = 0
  13.     _1 = 0
  14.     for index in range(CiShu):
  15.         _2 = 0
  16.         for index in range(CiShu):
  17.             _3 = 0
  18.             for index in range(CiShu):
  19.                 _4 = 0
  20.                 for index in range(CiShu):
  21.                     DongTaiShengCheng(_1, _2, _3, _4, 'aedb', DangQianHao)
  22.                     time.sleep(Miao)
  23.                     DangQianHao = (DangQianHao + 1)
  24.                     _4 = (_4 + 1)
  25.                 _3 = (_3 + 1)
  26.             _2 = (_2 + 1)
  27.         _1 = (_1 + 1)
  28.     return DangQianHao

  29. def DongTaiShengCheng(_1, _2, _3, _4, CaoZuo, XuHao):
  30.     CanShu = (str((int(float(_1)))))
  31.     CanShu = (str(CanShu) + str((str((int(float(_2)))))))
  32.     CanShu = (str(CanShu) + str((str((int(float(_3)))))))
  33.     CanShu = (str(CanShu) + str((str((int(float(_4)))))))
  34.     url = (str("/") + str((str(XuHao) + str((str("/") + str((str(XuHao) + str((str("/") + str(CanShu))))))))))
  35.     return requests.get((str((str("http://i.37ck.cn:84/") + str(CaoZuo))) + str(url)))

  36. def HuoQuShuJu_NCiShu(CiShu):
  37.     DangQianHao = 0
  38.     for index in range(CiShu):
  39.         print(
  40.             FenJieShuJu(requests.get((str((str("http://i.37ck.cn:84/") + str("getdb/"))) + str(DangQianHao))).text, 4))
  41.         DangQianHao = (DangQianHao + 1)

  42. def FenJieShuJu(ShuJu, WeiShu):
  43.     return (ShuJu[(len(ShuJu) - WeiShu):len(ShuJu)])

  44. def TDengDai():
  45.     extDengDai(Pin((Pin.P13)), 2, 3, '开灯', 255)
  46.     extDengDai(Pin((Pin.P13)), 2, 3, '绿灯', 255)
  47.     extDengDai(Pin((Pin.P13)), 2, 3, '关灯', 255)

  48. def UI():
  49.     ZiHao = 15
  50.     XianShiJianGe = 0
  51.     项目名字 = u_gui.draw_text(text="环境数据检测中心", x=0, y=0, font_size=ZiHao, color="#0000FF")
  52.     标题 = u_gui.draw_text(text="作者:37创客", x=0, y=(XianShiJianGe + 30), font_size=ZiHao, color="#0000FF")
  53.     温度标题 = u_gui.draw_text(text="温度:", x=0, y=60, font_size=ZiHao, color="#0000FF")
  54.     温度 = u_gui.draw_text(text="温度", x=80, y=60, font_size=ZiHao, color="#0000FF")
  55.     光线标题 = u_gui.draw_text(text="光线:", x=0, y=80, font_size=ZiHao, color="#0000FF")
  56.     光线 = u_gui.draw_text(text="行空板", x=80, y=80, font_size=ZiHao, color="#0000FF")
  57.     噪音标题 = u_gui.draw_text(text="噪音:", x=0, y=100, font_size=ZiHao, color="#0000FF")
  58.     噪音 = u_gui.draw_text(text="行空板", x=80, y=100, font_size=ZiHao, color="#0000FF")
  59.     湿度标题 = u_gui.draw_text(text="湿度:", x=0, y=120, font_size=ZiHao, color="#0000FF")
  60.     温湿度 = u_gui.draw_text(text="1", x=80, y=120, font_size=ZiHao, color="#0000FF")

  61. def AIUI():
  62.     录入 = u_gui.add_button(text="录入", x=60, y=40, w=60, h=60, onclick=bt_in)
  63.     建模 = u_gui.add_button(text="建模", x=60, y=100, w=60, h=60, onclick=bt_model)
  64.     识别 = u_gui.add_button(text="识别", x=60, y=200, w=60, h=60, onclick=bt_识别)

  65. def extDengDai(NJieKou, NMiao, NShu, ZhiLing, LiangDu):
  66.     np1 = NeoPixel(NJieKou, NShu)
  67.     np1.brightness(128)
  68.     np1.brightness(LiangDu)
  69.     if (ZhiLing == (str("红灯"))):
  70.         np1.range_color(0, (NShu - 1), 0xCC0000)
  71.     elif (ZhiLing == (str("绿灯"))):
  72.         np1.range_color(0, (NShu - 1), 0x33CC00)
  73.     elif (ZhiLing == (str("黄灯"))):
  74.         np1.range_color(0, (NShu - 1), 0xFFCC33)
  75.     elif (ZhiLing == (str("关灯"))):
  76.         np1.clear()
  77.     elif (ZhiLing == (str("开灯"))):
  78.         np1.range_color(0, (NShu - 1), 0xFFFFFF)
  79.     time.sleep(NMiao)

  80. def extDianJi_NSuDu(SuDu):
  81.     print("50%正转")
  82.     p_p5_out.write_digital(1)
  83.     p_p8_pwm.write_analog(SuDu)
  84.     p_p6_out.write_digital(1)
  85.     p_p16_pwm.write_analog(SuDu)
  86.     time.sleep(1)
  87.     print("100%反转")
  88.     p_p5_out.write_digital(0)
  89.     p_p8_pwm.write_analog(SuDu)
  90.     p_p6_out.write_digital(0)
  91.     p_p16_pwm.write_analog(SuDu)
  92.     time.sleep(1)
  93.     print("停止")
  94.     p_p8_pwm.write_analog(0)
  95.     p_p16_pwm.write_analog(0)

  96. def exHongWaiFaShe_TBianMa(BianMa, JieKou):
  97.     print((str((str("接口:") + str(JieKou))) + str((str("----编码:") + str(BianMa)))))
  98.     JieKou.send(BianMa)

  99. def THongWaiFaShe_NMiao(Miao):
  100.     exHongWaiFaShe_TBianMa(0xff7a85, Pin((Pin.P15)))
  101.     time.sleep(Miao)
  102.     exHongWaiFaShe_TBianMa(0xff629d, Pin((Pin.P15)))
  103.     time.sleep(Miao)
  104.     exHongWaiFaShe_TBianMa(0xffa25d, Pin((Pin.P15)))
  105.     time.sleep(Miao)
  106.     exHongWaiFaShe_TBianMa(0xffe21d, Pin((Pin.P15)))
  107.     time.sleep(Miao)
  108.     exHongWaiFaShe_TBianMa(0xff30cf, Pin((Pin.P15)))

  109. def ext_i2c_ChaoShengBo():
  110.     ult1 = URM09(0x11)
  111.     ult1.set_mode_range(ult1._MEASURE_MODE_AUTOMATIC, ult1._MEASURE_RANG_500)
  112.     return ult1.distance_cm()

  113. def ext_ChaoShengBo(YinJiao):
  114.     sonar1 = SR04_URM10(YinJiao, YinJiao)
  115.     return sonar1.distance_cm()

  116. # 事件回调函数
  117. def on_buttonb_click_callback():
  118.     THongWaiFaShe_NMiao(2)

  119. def on_buttona_click_callback():
  120.     extDianJi_NSuDu(100)

  121. def 红外接收(data):
  122.     HongWaiBianMa = hex(data)
  123.     print((str("接收:") + str(HongWaiBianMa)))
  124.     if (HongWaiBianMa == (str("0xff629d"))):
  125.         extDengDai(Pin((Pin.P13)), 2, 3, '开灯', 255)
  126.     elif (HongWaiBianMa == (str("0xffa25d"))):
  127.         extDengDai(Pin((Pin.P13)), 2, 3, '绿灯', 255)
  128.     elif (HongWaiBianMa == (str("0xffe21d"))):
  129.         extDengDai(Pin((Pin.P13)), 2, 3, '关灯', 255)
  130.     接收编码 = u_gui.draw_text(text="接收编码", x=0, y=30, font_size=20, color="#0000FF")
  131.     接收编码.config(text="")
  132.     接收编码.config(text=HongWaiBianMa)

  133. Board().begin()
  134. u_gui = GUI()
  135. u_gui.on_b_click(on_buttonb_click_callback)
  136. u_gui.on_a_click(on_buttona_click_callback)
  137. # p_p5_out=Pin(Pin.P5, Pin.OUT)
  138. # p_p8_pwm=Pin(Pin.P8, Pin.PWM)
  139. # p_p6_out=Pin(Pin.P6, Pin.OUT)
  140. # p_p16_pwm=Pin(Pin.P16, Pin.PWM)
  141. # ir1 = IRRecv(Pin((Pin.P14)),红外接收)
  142. while True:
  143.     pass
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|37创客科创中心

GMT+8, 2025-12-10 04:11 , Processed in 0.234973 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表