超简单!只需简单几步即可为TA定制天气小助理!!

微信图片_20190623161158.jpg

 

 

前提

虽然我们每天都会查看天气,但是如果你能够用限制微信每天早上七点定时为TA推送天气预报,生活指数。直接为TA提供过滤好的天气信息,让TA一目了然。而且操作简单上手,任何人都可以零基础搭建,为你的TA带来一丝小惊喜。

效果如图

 

微信图片_20190623160937.jpg

 

 

准备

  1. 运行环境 win10 Linux
  2. python 3.7 版本
  3. 一个微信小号
  4. 和风天气api
  5. 一个编辑器,就是文本编辑器也可以

主要代码

1. 安装 python 3.7 版本

小伙伴如果是 window 电脑可以直接在 Python官网 选择 **download **直接下载

 

微信截图_20190623145509.png

 

 

直接点击下载好的exe文件进行安装,记得将环境变量配置选项勾选上。如下图:

 

微信图片_20190623145702.png

 

 

安装完成之后,我们可以新建文件夹,从git 上将代码clone 下来。我们直接在文件夹中摁住 shift + 鼠标右键 唤出 powerShell 查看 Python 版本。

2. 为项目安装相关模块

可通过 pip install 直接安装相关模块,如运行时还有因模块报错,也可以直接pip install 模块名直接安装即可。本项目以及后续相关都依赖于以下模块。

#coding=utf8
import requests
from urllib.request import urlopen
from bs4 import BeautifulSoup
from urllib.parse import urlencode
from threading import Timer
import re
from wxpy import *
import  schedule
import  time
import http
import  json 
import datetime
import random
复制代码

重要: 其中 wxpy 模块是本项目以及后续项目中很重要的模块,就是因为这个开源项目,我们才能使其与微信产生交互。

wxpy

控制路由器、智能家居等具有开放接口的玩意儿
运行脚本时自动把日志发送到你的微信
加群主为好友,自动拉进群中
跨号或跨群转发消息
自动陪人聊天
逗人玩
...
复制代码

项目介绍以及安装方法,大家可以去主页想看wxpy

3. 初始化机器人

bot = Bot(cache_path=True,console_qr = 1)
// 初始化机器人,扫码登录 console_qr 是用于登录的二维码展示默认为1
bot.enable_puid('wxpy_puid.pkl')
// 机器人启用 puid 属性,并指定 puid 所需的映射数据保存/载入路径
复制代码

4. 设置模拟请求接口相关

def api(url):
    header = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.8',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'
    }
    timeout = random.choice(range(80, 180))
    data = requests.get(url, headers=header, timeout=timeout)

    return data.json()
复制代码

header 中用来设置模拟请求接口的浏览器相关参数防止api 以为我们是爬虫抓取。并设定随机请求时间。

5. 设置相关请求,以及需要的信息字段拼接

def sendweather(city, xx):
    url = 'https://free-api.heweather.com/s6/weather/forecast?location='+city+'&key=和风key'
    PMurl = 'https://free-api.heweather.com/s6/air/now?parameters&location='+city+'&key=和风key'
    lifeurl = 'https://free-api.heweather.com/s6/weather/lifestyle?location='+city+'&key=和风key'
    
    temp = api(url)
    temp = temp['HeWeather6'][0]
    update = temp['update']
    now = temp['daily_forecast'][0]
    nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

    pm = api(PMurl)
    pm = pm['HeWeather6'][0]
    airnow = pm['air_now_city']

    life = api(lifeurl)
    
    life = life['HeWeather6'][0]
    life = life['lifestyle']
    result =  xx + city +' ---' + '\n'+ '\n'\
    + '          今天天气:'+ now['cond_txt_d'] + ' 转 ' + now['cond_txt_n'] + '\n'\
    + '          今天温度:'+ now['tmp_min'] + '°C ~ ' + now['tmp_max'] + '°C' + '\n'\
    + '          风向:'+ now['wind_dir'] + ' ' + now['wind_sc'] + '级 '+ now['wind_spd'] + '公里/小时'+ '\n'\
    + '          相对湿度:'+ now['hum'] + '%' + '\n'\
    + '          降水量:'+ now['pcpn'] + 'ml' + ',降水概率:'+ now['pop'] + '%' + '\n'\
    + '          能见度:'+ now['vis'] + '公里' + '\n'\
    + '------------------------------------------' + '\n'\
    + '今天空气质量:'+'\n'\
    + '          空气质量指数:'+ airnow['aqi']+'\n'\
    + '          主要污染物:'+ airnow['main']+'\n'\
    + '          空气质量:'+ airnow['qlty']+'\n'\
    + '          二氧化氮指数:'+ airnow['no2']+'\n'\
    + '          二氧化硫指数:'+ airnow['so2']+'\n'\
    + '          一氧化碳指数:'+ airnow['co']+'\n'\
    + '          pm10指数:'+ airnow['pm10']+'\n'\
    + '          pm25指数:'+ airnow['pm25']+'\n'\
    + '          臭氧指数:'+ airnow['o3'] +'\n'\
    + '------------------------------------------' + '\n'\
    + '1、'+ life[0]['txt']+'\n\n'\
    + '2、'+ life[1]['txt']+'\n\n'\
    + '3、'+ life[2]['txt']+'\n\n'\
    + '??????????'+'\n\n'\
        
    result =  result + '发送时间:' +  nowTime + '\n'

    return result
复制代码

小伙伴可以在和风官网注册账户,其中有免费的天气、生活指数api可以使用。免费的已经可以满足我们的需求。

6. 获取发送对象

def auto_send(msg):
    weather = sendweather('苏州', msg) 
    // 用来请求刚刚封装的请求天气
    
    Lie = bot.friends().search(u'Lie')[0]
    // 查找你要发送的对象,必须在你的好友列表里也可以为群
    后面是好友的昵称,记得不是备注名哦!
    
    WxpyChat = bot.groups().search('? (๑• . •๑) ')
    // 获取要发送的群
    
    Lie.send(weather)
    // 发送
    
    WxpyChat.send(weather)
    // 可以设置多个发送对象
复制代码

7. 设置定时发送事件

8. 为程序设置持续运行保证项目一直在线

while True:
    schedule.run_pending()
    time.sleep(1)
复制代码

9. 至此,一个简单的天气小助理就完成了,可以按照以上步骤来实验一下。

10. 扩展

我们还可以为其添加主动询问操作,比如发送城市,直接获得当前城市的天气,只需要在第6步添加如下代码即可。

Lie = bot.friends().search(u'Lie')
@bot.register(Lie)
// 注册对哪个好友的回复生效
def auto_reply_all(msg):
if '苏州' in msg.text:
    nowWeather = sendweather(msg.text, msg) 
    msg.sender.send(nowWeather)
复制代码

git

本项目的代码以上传我的github,如有需要大家可以clone下载

wepython

注意事项

  1. 在window 下 可以用 powerShell 来运行python 程序。
  2. 微信号要用2017年之前注册的微信号,新注册的微信号不能在web网页登录无法使用。
  3. 大家如果没有小号,需要购买的请注意对方诚信度。不要为了这个上当受骗。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
-------------------------------------------------------------------------------------------------------------<br><br>今天有空把原来的程序精简了下,聊天菜单现在可以打开,另外邮件群发BUG修正,DeskHelper_V3绿色版本Release.rar (3.53MB)http://www.91files.com/?8U27MBWPMGWT0WAK75IL<br><br>--------------------------------------------------------------------------------------------------------------<br><br>说明:下面我说的BUG已经修正!安装包实在没时间做了!!!大家请下载下面的免安装版本吧<br><br>+免安装最新版本v3.0.226.2008Release.rar (9.33MB)下载地址:http://www.91files.com/?M6B6JF4DBH2XL95I1BYA<br><br>---------------------------------------------------------------------------------------------------------------<br><br>窗口(服务器监视)帮手版本说明!(Rains工作组 QQ群29482702,作者RAINS<QQ:233685340>)<br><br>说明:最新版本v3.0.226.2008已经发布(注意:本程序要.net2.0环境):<br><br>安装版DeskHelper安装版本.rar (5.73MB) 下载地址http://www.91files.com/?4JP13GOYJ87OCGX1LRW9<br><br>免安装 DeskHelper绿色免安装Release版.rar 下载地址http://www.91files.com/?1B9XS0UW6BI78I93614R<br><br>老用户升级请先清空update目录下的文件再使用在线更新功能!谢谢大家对我的支持!!!<br><br>------------------------------------------------------------------------------------<br><br>-BUG:1.找不到聊天程序文件,大家在主目录下找到chat.exe就能局域网聊天和传送文件了,2.扫雷游戏错误!3.其他bug没测试!大家发现了请告诉我!<br><br>-先声明一下:抱歉,由于没时间测试就发布,汗个先!实在没时间来修改和完善程序了,又要去找工作!!!有可能的话我会继续完善这个版本的!!!谢谢大家使用我的程序!!!!<br><br>-------------------------------------------------------------------------------------<br><br>v3.0.226.2008<br><br>+重新编写局域网聊天功能,现在可以支持局域网点对点文件传输!可以替代飞鸽了<br><br>---------------------------------------------------------------------------------------<br><br>v2.9<br><br>+修改邮件接受器,现在可以显示邮件网页形式!有关附件问题开发中^.^<br><br>-----------------------------------------------------------------------------------------<br><br>v2.8<br><br>+加入24点益智游戏<br><br>------------------------------------------------------------------------------------------<br><br>v2.7<br><br>+加入扫雷游戏功能<br><br>--------------------------------------------------------------------------------------------<br><br>v2.6<br><br>+播放音乐功能(仿千千静听)<br><br>----------------------------------------------------------------------------------------------<br><br>v2.5<br><br>+添加日记本功能<br><br>------------------------------------------------------------------------------------------------<br><br>窗口(服务器监视)帮手版本说明!(Rains工作组 QQ群29482702,作者RAINS<QQ:233685340>)<br><br>说明:最新版本已经发布:<br><br>安装版(v2.4.216.2008)4.75M 下载地址http://www.91files.com/?HUMQ1ZQIRHR4B32I2O4F<br><br>免安装(v2.4.216.2008)Release版2.78M 下载地址http://www.91files.com/?A72YR7P141H9NUXQ29X1<br><br>老用户升级请先清空update目录下的文件再使用在线更新功能!谢谢大家对我的支持!!!<br><br>------------------------------------------------------------------------------------------------<br><br>v2.4.216.2008<br><br>+加入注册表编辑功能<br><br>+现在可以设置本程序开机启动<br><br>+集成Ascent数据库管理工具,支持2.0以及2.34版本<br><br>-------------------------------------------------------------------------------------------------<br><br>v2.3.215.2008<br><br>+加入点对点通讯功能(分别为服务器端和客户端,目前很简陋,方便局域网聊天,基于Socket套字节协议)<br><br>+实现网络邮件本地读取功能(比如163的邮件,基于pop3协议)<br><br>-------------------------------------------------------------------------------------------------<br><br>v2.2.214.2008<br><br>+加入文件分割功能<br><br>+加入文件合并功能<br><br>-------------------------------------------------------------------------------------------------<br><br>v2.1.213.2008<br><br>+集成ADE1.0.4.0(Ascent功能强服务器工具)最新版本汉化,支持2.0-2.3.4Asent(Antrix)服务器版本<br><br>+集成ManGos-UI最新修改汉化版本,支持2.0Mangos以上版本<br>---------------------------------------------------------------------------------------------------<br><br>DeskHelper(免安装v2).rar (3.29MB)下载地址http://www.91files.com/?PISJKAGQ03I9NGIHAWBY<br>DeskHelper安装版v2.rar (4.13MB)下载地址http://www.91files.com/?U239BAK7MAS24SUNKZGF<br><br>-----------------------------------------------------------------------------------------------------<br><br>v2.0.130.2210<br><br>+修改在线更新功能,现在可以断点续传了并且有进度条了<br><br>+修复定时启动服务器会启动多次的BUG<br><br>+修复监视程序退出的一个BUG<br><br>+移除与Rains在线聊天(向Rains发短信功能)<br><br>---------------------------------------------------------------------------------------------------<br><br>v2.0.129.8845<br><br>+添加隐藏和显示桌面加进程功能<br><br>(注意:请不要轻易使用,因为还原显示隐藏的程序显示会加载某些未知的窗口)<br><br>+添加在线升级功能<br><br>+与Rains在线聊天功能<br><br>+悬浮窗口功能<br><br>+气泡通知功能<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.9.129.5916<br><br>+添加显示本机IP,农历以及当天天气查看<br><br>+修正定时关机功能退出的一个BUG<br><br>+添加热键呼出主程序功能(CTRL+Q)<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.8.128.5529<br><br>+添加使用本程序实现结束任意进程功能(当然有些系统进程是关不掉的^.^)<br><br>+美化加载网页过程,有进度条显示了<br><br>+修正进程显示信息的一个小BUG<br><br>+修正进程数目刷新问题<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.7.127.8923<br><br>+添加程序界面显示当天日期,时间<br><br>+添加在线查看版本更新情况,(用户可以直接在程序中向作者反映问题以及要求添加什么功能)<br><br>+添加进程信息查看,包括进程标识,内存使用量(K),句柄数量,程序优先级等<br><br>+显示当前进程数目<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.6.126.4491<br><br>+再次美化界面,修正程序隐藏,显示的一些小BUG<br><br>+添加程序显示进程<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.5.125.1128<br><br>+修正监视服务器程序的一些BUG,添加监视程序隐藏功能<br><br>+修改邮件发送程序,实现群发邮件功能<br><br>+修正主程序不断添加数据的BUG,解决内存不断增长问题!<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.4.124.4432<br><br>+加入截取屏幕功能,默认保存在程序目录下的RainsJP文件夹内<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.3.123.1122<br><br>+加入联系作者功能(给Rains发送邮件)<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.2.122.4421<br><br>+重新编写Ascent(Antrix,Mangos)服务器监视程序,实现定时关闭,重启以及启动功能<br><br>+实现定时关机,重新启动以及注销电脑功能<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.1.121.3845<br><br>+网络检查功能,看本机是否连网<br><br>+加入3种程序界面风格<br><br>+添加远程关机功能<br><br>---------------------------------------------------------------------------------------------------<br><br>v1.0.120.00<br><br>+第一个版本实现IE弹出窗口查杀<br><br>+Mangos,Ascent(Antrix)服务器监视,关闭服务器,服务器自动重新启动<br><br>---------------------------------------------------------------------------------------------------<br><br>欢迎使用!本程序由Rains工作组(石雨@啊熊QQ:233685340)编写,要帮助请加技术群29482702,官方网站http://hi.baidu.com/andyhebear/<br><br>---------------------------------------------------------------------------------------------------<br>AutoStart(wow)安装版v1.rar (1.42MB)<br><br>http://www.91files.com/?2RFHI1P421TYCECY48EY<br><br>AutoStart(wow)免安装debug版v1.rar (1.27MB)<br><br>http://www.91files.com/?42QO6T9ZI1EDQYPS5E0N<br><br>----------------------------------------------------------------------------------------------------
当然可以!如果你想将P1.2配置为TA1.1功能,你可以按照以下方式修改代码: ```c #include <msp430.h> #define PWM_PERIOD 20000 // PWM周期为20ms,对应20,000个时钟周期 #define PWM_MIN 1000 // 舵机最小脉宽,对应1ms #define PWM_MAX 2000 // 舵机最大脉宽,对应2ms void delay_us(unsigned int us) { __delay_cycles(us * (F_CPU / 1000000)); } void servo_init() { P1DIR |= BIT2; // 配置P1.2为输出引脚 P1SEL |= BIT2; // 配置P1.2为TA1.1功能 TA1CCTL1 = OUTMOD_7; // 设置输出模式为PWM模式 TA1CCR0 = PWM_PERIOD - 1; // 设置PWM周期 TA1CCR1 = PWM_MIN; // 设置初始脉宽为最小值 TA1CTL = TASSEL_2 + MC_1; // 设置时钟源为SMCLK,以及计数模式为增计数 } void servo_set_angle(unsigned int angle) { unsigned int duty_cycle = PWM_MIN + (angle * (PWM_MAX - PWM_MIN) / 180); // 根据角度计算脉宽 TA1CCR1 = duty_cycle; // 设置脉宽 delay_us(10000); // 延时10ms等待舵机转动到指定位置 } int main(void) { WDTCTL = WDTPW | WDTHOLD; // 停用看门狗定时器 servo_init(); // 初始化舵机 while (1) { servo_set_angle(0); // 设置舵机角度为0度 __delay_cycles(1000000); // 延时1秒 servo_set_angle(90); // 设置舵机角度为90度 __delay_cycles(1000000); // 延时1秒 servo_set_angle(180); // 设置舵机角度为180度 __delay_cycles(1000000); // 延时1秒 } } ``` 上述代码将P1.2配置为TA1.1功能,并使用了TA1模块来生成PWM信号。请确保你正确设置了时钟源,并使用正确的频率定义`F_CPU`。同样,你要将MG995舵机的信号线连接到MSP430F5529的P1.2引脚。 如果你有任何疑问,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值