谁进我屋了之“无线门户报警器”

前面我们讲到了简易门户报警器的实现。

相关链接:

这次来做一个升级,实现网络报警。

项目需求:

当有人打开门或没关上门时,Micro:bit马上通过无线网络向你报警。

实现原理:

Micro:bit上面有个磁力计,这里可以设定每2秒测量一次磁场强度。当磁场低于某个特定水平(阈值)时,它会发送一个无线信号“door open”。如果磁性读数超过阈值,则会发送“door closed”。

当警报器Micro:bit收到“door closed”信息时,其 LED显示屏上会显示一个勾号。 当收到“door open”无线电讯息时,它会显示一个大叉并发出警报声。

所需材料:

Micro:bit 2个
电池包 2个
磁铁 1个
万能胶或类似工具,用以将磁铁固定在门上,并将Micro:bit固定在门框上。
可选的蜂鸣器或扬声器
鳄鱼夹引线

门户端代码:

from microbit import *
import radio
radio.config(group=17)
compass.calibrate()
radio.on()

while True:
    if button_a.was_pressed():
        display.scroll(compass.get_field_strength())
    if compass.get_field_strength() < 100000:
        display.show(Image.DIAMOND_SMALL)
        radio.send('door open')
    else:
        display.clear()
        radio.send('door closed')
    sleep(2000)

报警端代码:

from microbit import *
import music
import radio
radio.config(group=17)
radio.on()

while True:
    message = radio.receive()
    if message:
        if message == 'door open':
            display.show(Image.NO)
            music.play(["C4:4"])
        if message == 'door closed':
            display.show(Image.YES)

离线编辑器:

在线编辑器:

https://makecode.microbit.org/#editor

https://python.microbit.org/v/3?l=zh-CN

进阶:

1、按下Micro:bit上的按键A,以帮助校准磁力的最佳阈值。在MakeCode中将其设置为100 microteslas,与在Python中的10000 nanoteslas相同。
2、使用多个Micro:bit来发送不同的无线电消息(例如“back door open”)以追踪多门的状态。
3、使用变量来计算门保持打开状态的时间。

谁进我屋了之“简易门户警报器”

这是写给物联网新手的教程,熟手如果好奇也可以看一下。

有人来过你的房间吗?使用Micro:bit,电池组和磁铁,你可以让门发出警报,以提醒有人闯入。

关于Micro:bit:

Micro:bit是一个卡片大小的计算机,它有一个LED显示屏、按键、传感器和一些输入/输出引脚,可以在Scratch和Python程序的控制下,与你的世界交互。

原理:

Micro:bit上面内建了一个compass sensor,称为磁力计。 你可以使用它来测量地球的磁场,以作为指南针-或感应到附近的磁场强度!

代码:

当磁力强度感应低于200,就显示愤怒的表情。

当按钮A按下时,显示当前磁力强度。

如果用Python的话,这样写:

# Python uses nanoteslas to measure magnetism.
# Experiment with different numbers depending on the
# strength of your magnet, which you can read by 
# pressing button A.

from microbit import *

while True:
    if button_a.was_pressed():
        display.scroll(compass.get_field_strength())
    if compass.get_field_strength() < 200000:
        display.show(Image.ANGRY)

做法:

将磁铁固定在门上,然后将写入开门警报器程序的Micro:bit靠近它,固定在墙上。

接好电源。这样一个简单的报警装置就做好啦。

进阶:

1、添加声音警报。

2、使用一个变量来计算门被打开的次数,这里需要添加一个程序来感应门是否被打开或关闭。

3、创建一个定时器计算门被打开多长时间

好了,拿去玩吧。

本文主要内容来自:

microbit.org

相关视频:

谁进我屋了之“简易门户警报器” (qq.com)

树莓派+电子墨水屏+Spotify = 实时播歌

Spotify是一个流行的流媒体服务,允许用户收听音乐、播客和有声读物。作为一个开发者,你可以使用Spotify Web API来访问Spotify的音乐目录和用户数据,并将Spotify的功能整合到你自己的应用程序中。

如何用树莓派和5.7英寸的电子墨水屏创建一个电子相框,来实时显示你在Spotify上听的歌曲封面?说实话,这个让我想起了以前实时显示歌曲封面的CD机。

操作步骤:

首先你要有一个Spotify的开发者账号,注册地址:

https://developer.spotify.com/

在仪表盘中编辑应用程序的设置。比如:

http://localhost/redirect

设置完成后,登录树莓派。

运行“raspi-config”命令,找到“Interface Options”,把SPI和I2C设置为可用。 

下载以下文件,并在树莓派上执行。最后根据提示,填写你的Spotify账号和API信息即可。

wget https://raw.githubusercontent.com/ryanwa18/spotipi-eink/main/setup.sh
chmod +x setup.sh
bash setup.sh

相关配件:

Raspberry Pi Zero 2
Inky Impression 5.7

关于外壳的3D打印文件:

https://cults3d.com/en/3d-model/gadget/spotipi-e-ink-inky-impression-5-7-case

相关视频地址:

https://mp.weixin.qq.com/s/tMx-RSDyAZZMUo04oYRRqw

为年轻人做的在线代码编辑器

树莓派官方最近出了一款免费的在线编辑器,以帮助 7 岁以上的年轻人学习程序开发。比较有意思的是,这个在线编辑器支持emoji表情。

在线编辑界面

不管你是参加 Code Clubs 和 CoderDojos 的选手,还是普通的在校学生,树莓派用户……都可以用它在线调试自己的程序。

目前该编辑器还在公测阶段,主要目标是让使学习者能够:

  • 直接在浏览器中编写和运行 Python 代码,无需任何设置。界面简单直观,这使得基于文本的编码更加容易。
  • 让那些拥有Raspberry Pi Foundation 帐户的人可以在线保存他们的代码。树莓派基金会希望代码学习者不管是在家里,还是在课堂上,都可以更方便的构建自己的项目。

目前,树莓派基金会选择了Python 作为代码编辑器支持的第一个语言,因为它在学校、CoderDojos 和代码俱乐部中很流行,很多专业开发人员也在用它。

将来会向编辑器添加对 Web 开发语言 (HTML/CSS/JavaScript) 的支持,以及项目共享和协作等功能。树莓派基金会希望这个编辑器是安全、易于访问且适龄的。

关于ICO 的适龄设计规范:

https://ico.org.uk/for-organisations/guide-to-data-protection/ico-codes-of-practice/age-appropriate-design-a-code-of-practice-for-online-services/

经过笔者的测试,目前该编辑器主要支持turtle在内的Python标准库,以及P5高级绘图库,大家可别在里面跑PyGame咯。

官方推荐的入门项目:

https://projects.raspberrypi.org/en/pathways/python-intro-code-editor

Windows 10查看Wi-Fi密码

确保wlansvc服务启动中,没有无线网络的台式机,该服务未启动
$ sc query wlansvc | findstr STATE
STATE : 4 RUNNING

查看曾经连接过的无线网络
$ netsh wlan show profiles

User profiles
All User Profile : any All User Profile : some All User Profile : meeting_5GHz All User Profile : meeting_2.4GHz

若wlansvc服务未启动,上述命令报错
$ netsh wlan show profiles
The Wireless AutoConfig Service (wlansvc) is not running.

假设一切顺利,如下命令可查看指定无线网络的明文密码
$ netsh wlan show profiles name=”some” key=clear | findstr /C:”Key Content”
Key Content : XXXXXXXXXXXXXXXX

来自:沈沉舟

基于ESP8266的智能配电板

This is the final curcuit: 

This is components you need for the project:

PZEM-004T: https://s.click.aliexpress.com/e/_9hYStD

ESP8266: https://s.click.aliexpress.com/e/_97j7kp

Resistors: https://s.click.aliexpress.com/e/_9AslPB

Electrolytic Capacitor: https://s.click.aliexpress.com/e/_A2atvx

PCB 6X8: https://s.click.aliexpress.com/e/_d7XpQnS

Pin Header: https://s.click.aliexpress.com/e/_AUvLzT

Female PCB Header: https://s.click.aliexpress.com/e/_AClQip

5V relay module: https://s.click.aliexpress.com/e/_AAXY9i

1602 I2C Display: https://s.click.aliexpress.com/e/_AF3L2o

Compilation

Use core 2.7.4 for this project (Tested with this version)  upd: 08/12/2021 made some changes, tested with 3.0.2 (works)

please download the necessary libraries: https://github.com/electrical-pro/SmartBoard/blob/main/libraries.zip copy them from the archive to: C:\Users\Documents\Arduino\libraries

P.S. I modified the LiquidCrystal_I2C library, I removed Wire.begin(5, 14);

Uploading files from data folder

The project uses SPIFFS to store files on ESP8266, upload them to the ESP8266 (read about SPIFFS if you dont know what that is.) 

 If you don’t see this option install the plugin from here: https://github.com/esp8266/arduino-esp8266fs-plugin

Connecting to router

After flashing connect to “PowerControlESP | Offline” pass is “PowerControlPass” then go to 192.168.4.1 (WI-Fi manager) and connect to your Wi-Fi router. 

Power server is at 192.168.x.x:8089 (port is 8089)

Very unusual authorization that I implemented

If it says “The file exists, but you are not authorized!” – is a simple safety feature that I implemented, so in order to access files you need to go to a secret URL first http://192.168.x.x:8089/me (you can program another one) When you go to http://192.168.x.x:8089/me it puts a cookie in your browser and you become an authorized user

to make it work right set it to false in the sketch

// set it to false, and then get auth cookie by going to 192.168.x.x:8089/me
bool PublicAccess = true;  // authorization 

If it is true it only allows you to go to http://192.168.x.x:8089

if it is false nothing is allowed unless you go to http://192.168.x.x:8089/me first

Serial

Note that I use Serial for PZEM004Tv30 module

PZEM004Tv30 pzem(&Serial);

Other information goes to Serial1 not Serial (so you will not see things in serial monitor)

Serial1.begin(115200);

远程连接AVH的主机

这里的AVH是指Arm Virtual Hardware,可以在线访问的虚拟开发板。

AVH支持两种模式远程登录内网的主机。

一是OpenVPN,下载配置文件导入即可。

二是SSH,添加密钥后即可。

OpenVPN的比较傻瓜,这里就不赘述了。

SSH的话,可以用以下命令:
ssh -J c9922a0f-edcb-486d-b84f-9508262abeb1@proxy.app.avh.arm.com pi@10.11.0.1

你也可以使用~/.ssh/config提前配置好跳转主机。

容器化构建聆思科技CSK6开发编译环境

聆思科技发布的新一代AI芯片CSK6,集成了安谋科技星辰“STAR-MC1”处理器。

采用 NPU+DSP+MCU 三核异构技术,算力达到 128 GOPS。使芯片能以较低功耗满足音频及图像视频的 AI 应用需求。

同时他们也发布了一个基于开发板的解决方案,并提供了相关工具和例程。

为了方便大家调试、编译聆思科技CSK6开发板,我在这里构建了一个容器化编译环境。一条命令拉取即可开始编译工作。

docker run -it verdureorange/listenai:latest

里面自带的Lisa工具,以及相关例程均来自聆思科技官方网站。

VERSION:

@listenai/lisa/2.4.5 linux-x64 node-v16.14.0

如果你正在使用聆思科技的CSK6开发板,又懒的自己配环境,可以用它试试。

教学视频:

容器化构建聆思科技CSK6开发编译环境_哔哩哔哩_bilibili

镜像:

https://hub.docker.com/r/verdureorange/listenai

相关文章:
带NPU和DSP的聆思科技MCU来了
https://aijishu.com/a/1060000…

有问题和意见可以联络:Medivh

邮箱:verdureorange@gmail.com

国内安装Ubuntu server速度慢的解决方法

在本地的 vmware 虚拟机管理系统中 安装 Ubuntu 20.x 时,发现全新系统安装的特别慢。一直卡在 installing kernel /  这个页面。

通过日志排查发现 在安装之前 系统源虽然自动切换到  http://cn.archive.ubuntu.com/ubuntu/ 这个官方系统源地址,但这个地址的数据服务器其实是在 美国数据中心,导致我们系统一直无法进行相关文件的下载。

解决方法:

将官方安装源:

http://cn.archive.ubuntu.com/ubuntu/ 

替换成 阿里云

http://mirrors.aliyun.com/ubuntu/

这样就可以很好的解决了 系统一直卡在安装界面中, 另外系统安装完成后,你更新 系统 以及 安装 各种组件时 都会默认使用 阿里云的镜像进行下载,而不会在通过 Ubuntu 官方的美国机器。

用树莓派自制反跟踪装置

马特·埃德蒙森(Matt Edmondson)是一名数字取证专家,也是国土安全部的联邦特工。

在一位朋友担心被跟踪后,他制作了一个基于Raspberry Pi的反跟踪工具。

马特·埃德蒙森的家伙什儿

它是由什么构成的?

整个设备都装在鞋盒大小的防水箱内。基础由树莓派3构成。

外接无线网卡和无线信号探测器,可查找附近的设备。

充电宝为一切提供动力,触摸屏显示设备发送的每个警报。

以便用户可以直观地看到哪些设备不断弹出以及多久弹出一次。

它是如何工作的?

该设备运行Kismet软件来检测附近正在寻找Wi-Fi或尝试连接到蓝牙设备的智能手机和平板电脑。Kismet 是一个网络检测器、数据包嗅探器和入侵检测系统,它可与任何支持原始监视模式的无线网卡一起运行。

我们都知道我们的手机会记录应用程序使用情况和位置。

但你可能不知道,你的手机也在不断寻找周围的无线网络。当它找到一个以前连接过的网络时,它会特别兴奋。

“特别兴奋”是指“做一些不同的事情,以一种特殊的方式通知Kismet”。

如果Kismet发现它在过去二十分钟内看过这个设备,它会发出一条警告,让用户知道他们可能被跟踪。

Matt用Python编写了一些代码,以便保留反跟踪工具接触过的设备列表,检查日志并查看上次遇到每个设备的时间。

这种自制的反跟踪设备专为人们在移动中设计。

如果你在一个地方坐了很长时间,而有些人总在你周围闲逛(比如电影院或餐馆),那你每二十分钟就会被提醒一次,让你知道周围可能有人跟踪你。

你可以在2022年8月的黑帽美国安全会议上看到Matt在此设备上的演示文稿,或者前往GitHub查看他针对此反跟踪构建的代码